计算多列之间的匹配数

问题描述 投票:0回答:2

我需要计算多列之间的匹配数。

A 栏 B 栏 C 栏 D 栏
123 999 100 500
999 100 123 999
100 999 999 500

我想要一个公式来计算每列中出现的值的数量。因此,在本例中它应该返回 1,因为 A、B、C、D 列中只出现了 999。我还需要修改公式,以便它只检查 A、B 和 C 所有三列中出现了多少个值.因此,在此示例中,由于 100 和 999 出现在 A、B 和 C 列中,因此该值将为 2。

我试图寻找并回答,但我不能。我发现的唯一公式是用于计算两列

=ARRAYFORMULA(SUM(COUNTIF(A2:A5,B2:B5)))

但我无法修改它,因此它适用于三列或四列。我将不胜感激任何帮助。

google-sheets google-sheets-formula
2个回答
0
投票

这是您可以测试的一种方法:

=let(Σ,filter(A2:D,A1:D1), Λ,unique(tocol(Σ,1)),
     countif(map(Λ,lambda(x,sum(bycol(Σ,lambda(y,ifna(xmatch(x,y)^0)))))),columns(Σ)))

  • 使用
    row_1 checkboxes
    选择需要考虑的列

0
投票

您可以使用

UNIQUE
-
TOCOL
获取该范围内的唯一数字列表,并使用
BYCOL
计算它们在每列中出现的次数。

=LET(r,A2:D,SUMPRODUCT(MAP(UNIQUE(TOCOL(r,1)),LAMBDA(val,COLUMNS(r)=SUM(N(0<BYCOL(r,LAMBDA(c,COUNTIF(c,val)))))))))

© www.soinside.com 2019 - 2024. All rights reserved.