<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>SbMostFrequentPairs on Sulprobil</title>
    <link>https://www.sulprobil.de/tags/sbmostfrequentpairs/</link>
    <description>Recent content in SbMostFrequentPairs on Sulprobil</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Wed, 15 Jul 2026 09:35:00 +0100</lastBuildDate>
    <atom:link href="https://www.sulprobil.de/tags/sbmostfrequentpairs/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>sbMostFrequentPairs (VBA)</title>
      <link>https://www.sulprobil.de/sbmostfrequentpairs_en/</link>
      <pubDate>Wed, 15 Jul 2026 09:35:00 +0100</pubDate>
      <guid>https://www.sulprobil.de/sbmostfrequentpairs_en/</guid>
      <description>&lt;h2 id=&#34;abstract&#34;&gt;Abstract&lt;/h2&gt;&#xA;&lt;p&gt;Given a matrix of some club members and when they attended a club evening,&#xA;which member duo showed up most frequently at these club meetings?&lt;/p&gt;&#xA;&lt;p&gt;The input in sheet wsPresent:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://www.sulprobil.de/sbMostFrequentPairs_Input.png&#34; alt=&#34;sbMostFrequentPairs_Input&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The output in sheet wsPairs:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://www.sulprobil.de/sbMostFrequentPairs_Output.png&#34; alt=&#34;sbMostFrequentPairs_Output&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;appendix--sbmostfrequentpairs-code&#34;&gt;Appendix – sbMostFrequentPairs Code&lt;/h2&gt;&#xA;&lt;p&gt;Please read my &lt;a href=&#34;https://www.sulprobil.de/about/disclaimer_en/&#34; title=&#34;Disclaimer&#34;&gt;Disclaimer&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-VB.net&#34; data-lang=&#34;VB.net&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Option&lt;/span&gt; Explicit&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Sub&lt;/span&gt; sbMostFrequentPairs(vNames &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; &lt;span style=&#34;color:#2b91af&#34;&gt;Variant&lt;/span&gt;, _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    vInputArea &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; &lt;span style=&#34;color:#2b91af&#34;&gt;Variant&lt;/span&gt;, _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    rOutput &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; Range)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Source (EN): https://www.sulprobil.de/sbmostfrequentpairs_en/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Source (DE): https://www.berndplumhoff.de/sbmostfrequentpairs_de/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;(C) (P) by Bernd Plumhoff  09-Nov-2019 PB V1.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Dim&lt;/span&gt; vT &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; &lt;span style=&#34;color:#2b91af&#34;&gt;Variant&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Dim&lt;/span&gt; i &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; &lt;span style=&#34;color:#2b91af&#34;&gt;Long&lt;/span&gt;, j &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; &lt;span style=&#34;color:#2b91af&#34;&gt;Long&lt;/span&gt;, k &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; &lt;span style=&#34;color:#2b91af&#34;&gt;Long&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Dim&lt;/span&gt; sName &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; &lt;span style=&#34;color:#2b91af&#34;&gt;String&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Dim&lt;/span&gt; state &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; SystemState&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Set&lt;/span&gt; state = &lt;span style=&#34;color:#00f&#34;&gt;New&lt;/span&gt; SystemState&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;With&lt;/span&gt; Application.WorksheetFunction&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Get LBound und UBound address with vT(x, y):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;vT = .Transpose(.Transpose(vInputArea))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;For&lt;/span&gt; i = LBound(vT, 1) &lt;span style=&#34;color:#00f&#34;&gt;To&lt;/span&gt; UBound(vT, 1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#00f&#34;&gt;For&lt;/span&gt; j = LBound(vT, 2) &lt;span style=&#34;color:#00f&#34;&gt;To&lt;/span&gt; UBound(vT, 2)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#00f&#34;&gt;If&lt;/span&gt; vT(i, j) = &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;x&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;Or&lt;/span&gt; vT(i, j) = &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;X&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;Then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            vT(i, j) = 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#00f&#34;&gt;Else&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Detect non-empty other cells:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;            &lt;span style=&#34;color:#00f&#34;&gt;If&lt;/span&gt; vT(i, j) &amp;lt;&amp;gt; &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;Then&lt;/span&gt; Debug.Print i, j, &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;&amp;#39;&amp;#34;&lt;/span&gt; &amp;amp; vT(i, j) &amp;amp; &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            vT(i, j) = 0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#00f&#34;&gt;End&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;If&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#00f&#34;&gt;Next&lt;/span&gt; j&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Next&lt;/span&gt; i&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vT = .MMult(vT, .Transpose(vT)) &lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;This is the core calculation&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Range(rOutput, rOutput.Offset(0, 2)).FormulaArray = _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Array(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;Rank&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;Duo&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;Frequency&amp;#34;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;k = 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;For&lt;/span&gt; i = 2 &lt;span style=&#34;color:#00f&#34;&gt;To&lt;/span&gt; UBound(vT, 1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#00f&#34;&gt;For&lt;/span&gt; j = 1 &lt;span style=&#34;color:#00f&#34;&gt;To&lt;/span&gt; i - 1 &lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;We just need the lower left triangular matrix&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Sort the names:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;        sName = vNames(i) &amp;amp; &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34; &amp;amp; &amp;#34;&lt;/span&gt; &amp;amp; vNames(j)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#00f&#34;&gt;If&lt;/span&gt; vNames(i) &amp;gt; vNames(j) &lt;span style=&#34;color:#00f&#34;&gt;Then&lt;/span&gt; sName = vNames(j) &amp;amp; &lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34; &amp;amp; &amp;#34;&lt;/span&gt; &amp;amp; vNames(i)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        Range(rOutput.Offset(k, 0), rOutput.Offset(k, 2)).FormulaArray = _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            Array(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;, sName, vT(i, j))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        k = k + 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#00f&#34;&gt;Next&lt;/span&gt; j&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Next&lt;/span&gt; i&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Sort by frequency and then by name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#00f&#34;&gt;With&lt;/span&gt; rOutput.Worksheet.Sort&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    .SortFields.Clear&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    .SortFields.Add Key:=rOutput.Worksheet.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;C2:C&amp;#34;&lt;/span&gt; &amp;amp; k), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        Order:=xlDescending&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    .SortFields.Add Key:=rOutput.Worksheet.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;B2:B&amp;#34;&lt;/span&gt; &amp;amp; k), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        Order:=xlAscending&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    .SetRange rOutput.Worksheet.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;A1:C&amp;#34;&lt;/span&gt; &amp;amp; k)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    .Header = xlYes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    .Apply&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;End&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;With&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Add the rank&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;k = 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Do&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;While&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;Not&lt;/span&gt; IsEmpty(rOutput.Offset(k, 2))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#00f&#34;&gt;If&lt;/span&gt; rOutput.Offset(k, 2) &amp;lt;&amp;gt; rOutput.Offset(k - 1, 2) &lt;span style=&#34;color:#00f&#34;&gt;Then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#008000&#34;&gt;&amp;#39;Some fancy top border&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#008000&#34;&gt;&lt;/span&gt;        &lt;span style=&#34;color:#00f&#34;&gt;With&lt;/span&gt; Range(rOutput.Offset(k, 0), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            rOutput.Offset(k, 2)).Borders(xlEdgeTop)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            .LineStyle = xlContinuous&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            .Weight = xlThin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#00f&#34;&gt;End&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;With&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        rOutput.Offset(k, 0) = k&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#00f&#34;&gt;End&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;If&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    k = k + 1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Loop&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Range(rOutput.Offset(k, 0), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    rOutput.Offset(k, 2)).EntireColumn.AutoFit&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;End&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;With&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;End&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;Sub&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Sub&lt;/span&gt; sbGenerateListOfPairs()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Dim&lt;/span&gt; state &lt;span style=&#34;color:#00f&#34;&gt;As&lt;/span&gt; SystemState&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Set&lt;/span&gt; state = &lt;span style=&#34;color:#00f&#34;&gt;New&lt;/span&gt; SystemState&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wsPairs.Cells.EntireRow.Delete&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;Call&lt;/span&gt; sbMostFrequentPairs(Range(wsPresent.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;A3&amp;#34;&lt;/span&gt;), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wsPresent.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;A2&amp;#34;&lt;/span&gt;).End(xlDown)), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Range(wsPresent.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;A2&amp;#34;&lt;/span&gt;).End(xlDown).Offset(-1), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        wsPresent.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;A2&amp;#34;&lt;/span&gt;).End(xlToRight).Offset(0, -1)).Offset(1, 1), _&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wsPairs.Range(&lt;span style=&#34;color:#a31515&#34;&gt;&amp;#34;A1&amp;#34;&lt;/span&gt;))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#00f&#34;&gt;End&lt;/span&gt; &lt;span style=&#34;color:#00f&#34;&gt;Sub&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;download&#34;&gt;Download&lt;/h2&gt;&#xA;&lt;p&gt;Please read my &lt;a href=&#34;https://www.sulprobil.de/about/disclaimer_en/&#34; title=&#34;Disclaimer&#34;&gt;Disclaimer&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
