EXTJOIN是Excel2016(某些版本有某些没有)、365上更新的函数,千呼万唤才出来。
遗憾的是,很多旧版本并没有这个函数。废话不说,直奔例子。
例子
要求:根据姓名,查询其所有参加的运动,显示在一个单元格内。
1、辅助列公式:
=IF(COUNTIF(A$2:A2,A2)=1,B2,LOOKUP(1,0/(A$1:A1=A2),C$1:C1)&"、"&B2)
解释:
1.1 、COUNTIF(A$2:A2,A2)=1,B2
第一个姓名直接显示其对应的运动。
1.2、第二个姓名起,同样是运用了错位的方法。LOOKUP函数求每个姓名的最后一个数据。
如,小乔为例子。
小乔第2个数据在第6行。
LOOKUP(1,0/(A$1:A5=A6),C$1:C5)&"、"&B6
LOOKUP(1,0/(A$1:A5=A6),C$1:C5)返回的是其第一条数据C1单元格,然后和B6的数据合并,此时为其第2条数据。
如有第3条数据,则同样原理,第2条数据 & "、" & 第3个数据.......
2、查询公式:同样选择用Lookup函数。
=LOOKUP(1,0/(A2:A11=E1),C2:C11)
如果不要重复的可以加个判断
=IF(COUNTIF(A$2:A2,A2)=1,B2,IF(B2=LOOKUP(1,0/(A$1:A1=A2),B$1:B1),"",LOOKUP(1,0/(A$1:A1=A2),C$1:C1)&",")&B2)
=LOOKUP(1,1/(A2:A3771=D3),C2:C3371)
【没有什么一个辅助列解决不了的问题,如果有那就两条。】