发布网友
发布时间:2022-05-01 20:13
共4个回答
热心网友
时间:2022-06-22 13:33
如图
F2=TEXTJOIN("、",1,IF(MMULT(IFERROR(FIND(E2,B$2:C$8),0),{1;1}),A$2:A$8,""))
结果与提问截图稍有不同,提问的截图中,李四没有A,感觉公式无法实现。也找不出没有A的理由。倒是如果没有B,是可以实现的。因为B中李四出现了两次,与只出现一次有不同的规律,有规律就好办,能实现,如下面的图。但提问的截图没有A,是不是提问的笔误?
I2=TEXTJOIN("、",1,IF(MMULT(IFERROR(FIND(E2,B$2:C$8),0),{1;1})=1,A$2:A$8,""))
以上两个公式可扩展到项目有多列,有多少列,公式中的{1;1}就并列多少个1,FIND(E2,B$2:C$8)中第2参数就是整个项目区域。
两个公式应该都是数组公式,因为本人的Excel版本高,数组公式已无需按三键。
对于数据量少,用公式应付得了。但如果数据量很大,类似于本问题就会比较卡,可考虑用Power Qurey,将数据导入到Power Qurey中后,先用C列中相同的分隔符(、)合并B列和C列数据。然后按分隔符拆分合并后的数据,拆分时选择拆分到行。最后分组依据,以姓名为依据,合并拆分后的数据。不过合并时有点小技巧,先按合计得到M语句,再修改M语句的合计为合并文本。筛选不需要的姓名后得到结果。将结果上载回Excel工作表中,结果如下图。
下图是通过修改M语句,将结果为错的“文本求和”修改正确结果的文本合并前后不同效果
热心网友
时间:2022-06-22 13:33
F3:
=TEXTJoin("、",1,IF(ISNUMBER(FIND("、"&E3&"、","、"&$B$3:$B$100&"、"&$C$3:$C$100&"、")),$A$3:$A$100,""))
ctrl+shift+回车,下拉
热心网友
时间:2022-06-22 13:34
=TEXTJOIN("、",TRUE,IF(B:B=E2,A:A,"")),ctrl+shift+enter,完成下拉
追问结果不对,IF为true的话,值为整个A列,而不是选中的啊。
另外如果条件B列或C列里包含E3,则项目通过、连接
热心网友
时间:2022-06-22 13:34