计算数字组合的频率(在使用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, 1
至5
包括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""))")