如图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列对应的结果。
评论 (0)