Excel - 如何计算范围内(即各列)包含特定字符串的行数?
Excel - How to count number of rows in range (i.e. various columns) that contain certain string?
我有一个字符串列表 A,我想看看每个字符串在范围 B 中代表了多少行。我的数据看起来像这样:
列表 A:
E
1 aaa
2 bbb
3 ccc
范围 B:
A B C
1 aaa --- ---
2 bbb ccc bbb
3 aaa --- ---
我想要的结果是,在列表 A 中,"aaa" 会告诉我 2,"bbb" 1 和 "ccc" 1。一直在尝试使用在数组公式下方,但它似乎不起作用:
=SUM(IF(COUNTIF(Range B,List A($A1)>0,1,0))
尽管我很想避免鼓励使用 volatile OFFSET¹ function,但它似乎是这种情况下最有可能的候选者。
F2中的数组公式为,
=SUM(SIGN(COUNTIF(OFFSET(A, ROW(:)-1, 0, 1, 3), E2)))
数组公式需要用Ctrl+Shift+Enter↵完成。一旦正确输入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。
¹OFFSET 被认为是一个可变函数,只要工作簿中的任何内容发生变化就会重新计算。
下图中
B
是范围 A1:C4
的名称。在 F1 中(在列表中的第一个元素旁边 A
),输入:
=SUM(IF(COUNTIF(OFFSET(B,ROW(B)-1,0,1),E1)>0,1,0)
(Ctrl + Shift + Enter 输入)并向下复制。
它应该足够灵活以处理 B
增长到更多的行和列。
这里已经发布了一些很好的答案,但我想我会再添加一个。如果您正在处理大型数据集,这个公式在速度方面可能会派上用场。您可以将公式放在 F1 中(见下图)并向下复制。输入公式时需要使用 CTRL + SHIFT + ENTER。
=SUM(IF(FREQUENCY(IF(E1=$A:$C,ROW($A:$C)),IF(E1=$A:$C,ROW($A:$C)))>0,1))
我有一个字符串列表 A,我想看看每个字符串在范围 B 中代表了多少行。我的数据看起来像这样:
列表 A:
E
1 aaa
2 bbb
3 ccc
范围 B:
A B C
1 aaa --- ---
2 bbb ccc bbb
3 aaa --- ---
我想要的结果是,在列表 A 中,"aaa" 会告诉我 2,"bbb" 1 和 "ccc" 1。一直在尝试使用在数组公式下方,但它似乎不起作用:
=SUM(IF(COUNTIF(Range B,List A($A1)>0,1,0))
尽管我很想避免鼓励使用 volatile OFFSET¹ function,但它似乎是这种情况下最有可能的候选者。
F2中的数组公式为,
=SUM(SIGN(COUNTIF(OFFSET(A, ROW(:)-1, 0, 1, 3), E2)))
数组公式需要用Ctrl+Shift+Enter↵完成。一旦正确输入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。
¹OFFSET 被认为是一个可变函数,只要工作簿中的任何内容发生变化就会重新计算。
下图中
B
是范围 A1:C4
的名称。在 F1 中(在列表中的第一个元素旁边 A
),输入:
=SUM(IF(COUNTIF(OFFSET(B,ROW(B)-1,0,1),E1)>0,1,0)
(Ctrl + Shift + Enter 输入)并向下复制。
它应该足够灵活以处理 B
增长到更多的行和列。
这里已经发布了一些很好的答案,但我想我会再添加一个。如果您正在处理大型数据集,这个公式在速度方面可能会派上用场。您可以将公式放在 F1 中(见下图)并向下复制。输入公式时需要使用 CTRL + SHIFT + ENTER。
=SUM(IF(FREQUENCY(IF(E1=$A:$C,ROW($A:$C)),IF(E1=$A:$C,ROW($A:$C)))>0,1))