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

Excel counts the number of times a value appears in a group of columns but counts only one instance of the name per row

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

例如:我有以下范围...

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的名字出现在三行中。

非vba 解决方案,在 F 列中有辅助列。

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

J2公式=SUM(F1:F4)

根据需要更改 I1 的名称。

假设您输入您选择的名字,例如"Ted",在G1,数组公式**:

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

此致

**数组公式的输入方式与 'standard' 公式不同。您不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 将大括号 {} 放在公式周围(尽管不要尝试自己手动插入)。

将 OFFSET 与 SUMPRODUCT 结合使用。在 F7 中(根据提供的图像)作为,

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

SIGN 函数将每一行的任何正数变为 1。 ROW(1:4) 循环遍历每一行。