excel函数技巧:reduce+filter+xmatch统计共有数据-趣帮office教程网

如图B列是A列的友好城市,一个城市可以有几个友好城市。要求对比D列和E列每一列数据中共同的友好城市有几个,公式如下:

=DROP(REDUCE("",D2:D39,LAMBDA(x,y,LET(

city1,UNIQUE(FILTER(B:B,A:A=y)),

city2,UNIQUE(FILTER(B:B,A:A=OFFSET(y,,1))),

VSTACK(x,COUNT(XMATCH(city1,city2)))

))),1)

公式思路:REDUCE(VSTACK(COUNT(XMATCH是本例数据的主要架构,reducce将D列数据遍历后一一传递给city1,再将右偏移一个的数据传递给city2.

xmatch将city1、city2进行对比,找出相同的数据,count函数将数字进行计数,得出具体共同友好城市的数量。

vstack函数实现将累计结果一并显示。这样就完成了整个循环后的结果全部显示在表格中,但由于初始值为空格,所以会多一行。再用drop函数将多余的首行去掉,即形成了与D、E列对应的结果。