Excel计算值在一组列中出现的次数,但仅计算每行名称的一个实例

时间:2017-04-12 15:38:53

标签: excel excel-vba excel-formula countif vba

我需要查找名称出现在此列表中的次数,但我只想为每行计算一次名称实例,而不计算行中的重复名称。

例如:我在一个范围内有以下内容......

Red     Bill    Jack    Ruby    Bill
Blue    Ruby    Ivan    Raul    Ted
Green   Ted     James   Rick    Ted
Red     Ted     Phil    Ruby    Bill

在这个工作表中,我想计算名称Bill的实例数,得到2的答案,因为Bill的名字显示在两行中。同样,如果我选择计算Ted的名字,答案应该是3,因为Ted的名字显示在三行中。

3 个答案:

答案 0 :(得分:7)

在SUMPRODUCT中使用OFFSET。在F7(每个提供的图像)中,

=SUMPRODUCT(SIGN(COUNTIF(OFFSET(B$1:E$1, ROW($1:$4)-1, 0), E7)))

SIGN功能可将每行的正数转为1。 ROW(1:4)遍历每一行。

enter image description here

答案 1 :(得分:4)

假设您选择了自己的名字,例如: “Ted”,在G1数组公式**

=SUM(0+(MMULT(0+(A1:E4=G1),TRANSPOSE(COLUMN(A1:E4)))>0))

此致

**数组公式的输入方式与“标准”公式的输入方式不同。您只需按住CTRL和SHIFT键,然后按ENTER键,而不是按ENTER键。如果你已经正确地完成了它,你会注意到Excel在公式周围放置了大括号{}(虽然不要尝试自己手动插入这些)。

答案 2 :(得分:2)

F列中带有辅助列的非vba解决方案。

F栏公式=IF(COUNTIF(B1:E1,$I$1)>0,1,0)

J2公式=SUM(F1:F4)

根据名称更改I1。

enter image description here