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 复制下来以适应。
- 突出显示具有位
的列
- 数据-->排序&过滤-->高级
- 启用"Copy to another location"和"Unique records only"列表
- 范围应该是所有位所在的位置(已突出显示)
- 将条件范围留空
- 复制到的应该是同一个工作表中的空白单元格,下面的行中没有任何内容。
- 假设位在 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),""),"")
(这次没有数组公式);)
我在一列中有 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 复制下来以适应。
- 突出显示具有位 的列
- 数据-->排序&过滤-->高级
- 启用"Copy to another location"和"Unique records only"列表
- 范围应该是所有位所在的位置(已突出显示)
- 将条件范围留空
- 复制到的应该是同一个工作表中的空白单元格,下面的行中没有任何内容。
- 假设位在 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),""),"")
(这次没有数组公式);)