计算数字组合的频率(在使用VBA的Excel中)

我希望excel可以计算某些数字组合在excel(使用vba )中出现的列的FREQUENCY 。 我所有的数据都是这样写的:

A列(仅出现1,2,3,4,5,s,f)

1
2
小号
4
3
小号
4
2
F
2
小号
2
小号

我想要统计(1-s,2-s,3-s,4-s,5-s)的组合的次数,严格来说,当数字首先出现时(在更高的行中)。 我不想计算一个数字之前的数字(例如s-2)。 我知道如何使用countIf函数来统计单个字母/数字的数量。

我可能稍后想要扩展我的分析,以查看三个字母数字组合(例如2-s-3,2-s-5)

我是一个VBA noob。

尝试在列A的右侧插入一个新列。使用此公式=A1&A2并将其填入列中。 值将如下所示:

 +----------+----------+ | Column A | Column B | +----------+----------+ | 1 | 12 | | 2 | 2s | | s | s4 | | 4 | 43 | | 3 | 3s | | s | s4 | | 4 | 42 | | 2 | 2f | | f | f2 | | 2 | 2s | | s | s2 | | 2 | 2s | | s | s | +----------+----------+ 

现在,您可以像以前一样,预测出现的情况! :d


当然,可以通过公式=A1&A2&A3扩展到三字符频率分析。

似乎可能与COUNTIFS, 15包括C1:G1和C2:

 =COUNTIFS($A1:$A12,C1,$A2:$A13,"s") 

复制到适合。

你可以使用这个公式的VBA等价物

=SUMPRODUCT(--(ISNUMBER(A1:A12)),--(A2:A13="s"))

其中的数字,其次s在下面的行(4为您的示例)

 MsgBox Evaluate("SUMPRODUCT(--(ISNUMBER(A1:A12)),--(A2:A13=""s""))")