Excel - 统计一个位串在大范围内出现的次数

Excel - Counting number of occurrence in a bit string large range

我在一列中有 13 位字符串数据,我想计算具有唯一位组合的单元格的数量。该列中的单元格总数为 209066。我一直在研究如何使其成为可能。 因为,2^13 = 8192 个单元格,所以这也很忙,统计地找到唯一的组合,然后在相邻的单元格中写入该值出现的次数。

13 Bit String   Occurrence
1001111101011   
0011111010110   
0111110101101   
1111101011011   
1111010110110   
1110101101100   
1101011011000   
1010110110000   
0101101100001   
1011011000010   
0110110000101   
1101100001011   
1011000010111   
0110000101110   
1100001011101   
1000010111011   
0000101110111   
0001011101110   
0010111011100   
0101110111001   
1011101110011   
0111011100111   
1110111001110   
1101110011101   
1011100111010   
0111001110101   
1110011101011   
1100111010110   
1001110101100   
0011101011001   
0111010110011   
1110101100110   
1101011001100   
1010110011000   
0101100110000   
1011001100001   
0110011000011   
1100110000110   
1001100001100   
0011000011001   
0110000110011   
1100001100110
.......
[continued upto cell 209066]    

使用文本分列、固定宽度、每个字段单个字符来解析您的数据。在 Columns A:M 中说正在处理副本。然后:

=SUM(A2:M2) 

在 N2 中说:

=COUNTIF(N:N,N2)  

在 O2 中说,将 N2 和 O2 复制下来以适应。

  1. 突出显示具有位
  2. 的列
  3. 数据-->排序&过滤-->高级
  4. 启用"Copy to another location"和"Unique records only"列表
  5. 范围应该是所有位所在的位置(已突出显示)
  6. 将条件范围留空
  7. 复制到的应该是同一个工作表中的空白单元格,下面的行中没有任何内容。
  8. 假设位在 A 列中,Unique 在 D 列中。将此公式放入 E1 并沿着唯一值向下填充 =COUNTIF($A:$A,"="&D1) `

再次阅读所有内容后,您可能正在寻找这样的东西:

=SUM((COUNTIF(A2:A209066,A2:A209066)=1)*1)

This is an array formula and must be confirmed with ctrl+shift+enter.

计算范围内唯一的每个值。

但您可能正在寻找不同值的计数,即:

=SUM(IFERROR(1/COUNTIF(A2:A209066,A2:A209066),0))

This is an array formula and must be confirmed with ctrl+shift+enter.

编辑

如果您只想要第一个值的计数,那么这可能就是您所需要的(B1 并向下复制):

=IFERROR(IF(MATCH(A2,A:A,0)=ROW(),COUNTIF(A:A,A2),""),"")

(这次没有数组公式);)