计算两个范围之间的匹配数

时间:2017-10-19 15:15:35

标签: excel

我正在寻找一个公式来计算两个单元格范围之间匹配数的数量。我想用例子来解释。这可能令人困惑。

A1:E1={1,2,3,4,5}A2:E2={2,1,3,5,4}:这里有两组具有相同的数字,因此有5个匹配。 (订单并不重要)

A1:E1={1,1,1,1,1}A2:E2={1,2,1,1,1}:这里有两组有四个1,所以这是4场比赛。

A1:E1={2,2,1,1,1}A2:E2={2,2,2,1,1}:此处两组有两个2,两个1匹配,所以共有4个匹配。

A1:E1= {1,4,4,3,7}A2:E2={4,3,5,6,1},在这种情况下,两个组都有一个4,一个1,一个3.所以它总共有3个匹配。

如果有任何不清楚的地方,请告诉我。这里具有挑战性的部分是重复。

4 个答案:

答案 0 :(得分:3)

我知道有人会更简洁地做到这一点,但这确实有效

=SUM(IF(FREQUENCY(A1:E1,N(OFFSET(A1,ROW(A1:E2)-ROW(A1),COLUMN(A1:E2)-COLUMN(A1),1,1)))<
FREQUENCY(A2:E2,N(OFFSET(A1,ROW(A1:E2)-ROW(A1),COLUMN(A1:E2)-COLUMN(A1),1,1))),
FREQUENCY(A1:E1,N(OFFSET(A1,ROW(A1:E2)-ROW(A1),COLUMN(A1:E2)-COLUMN(A1),1,1))),
FREQUENCY(A2:E2,N(OFFSET(A1,ROW(A1:E2)-ROW(A1),COLUMN(A1:E2)-COLUMN(A1),1,1)))))

我们的想法是使用偏移量组合两个列表,然后比较频率。较低的频率是将要采用的频率。

enter image description here

添加了一个额外的案例 - 前四个给出了正确的答案,如果你只是对两个列表进行排序并进行比较,但最后一个没有。

答案 1 :(得分:0)

尝试以下两次尝试:

{=SUM(COUNTIF(A1:A5,B1:B5))}

或者

{=SUM(IF(COUNTIF(A1:A5,B1:B5)=1,1,0))+SUM(IF(COUNTIF(A1:A5,B1:B5)>1,1,0))}

两者都需要使用 Ctrl + Shift + Enter

作为数组输入

答案 2 :(得分:0)

这可以做到,但它只需要很少的步骤。它仅在匹配值为0-9时才有效。 首先,在单元格=CONCATENATE(A2,B2,C2,D2,E2)中输入此公式I2并将其拖到底部。 enter image description here

然后在单元格J2中输入此公式=SUBSTITUTE(I2,A1,"",1),并将其拖到列N和底部。

enter image description here

最后,在单元格=5-LEN(N2)中输入此公式G2,然后将其复制/粘贴到搜索值旁边。

enter image description here

答案 3 :(得分:0)

不确定这是否能解决您的问题,但数组公式(点击 Ctrl + Shift + 输入在一起)会得到与你在这里说的相同的结果:

=SUMPRODUCT(--(SMALL($A2:$E2,COLUMN($A2:$E2))=SMALL($A1:$E1,COLUMN($A1:$E1))))

我所做的是对两行进行排名并计算匹配的数量。但请告诉我这是否涵盖了您所拥有的所有情景。