Excel:基于双向配对条件执行TEXTJOIN合并内容的实现求助
解决方案:用TEXTJOIN+数组公式实现双向配对的信号合并
核心公式(适用于Excel 2019及以后版本)
假设表1数据范围为A2:C1000(可根据实际行数调整),表2当前配对在E3和F3单元格,G3的公式如下:
=TEXTJOIN(", ", TRUE, IF( ((B2:B1000=E3)*(C2:C1000=F3))+((B2:B1000=F3)*(C2:C1000=E3)), A2:A1000, ""))
- 按回车即可自动计算,无需额外操作。
旧版Excel(2016及更早)适配
输入公式后,需要按下Ctrl+Shift+Enter以数组公式模式执行,公式会自动包裹大括号{}(不要手动输入)。
公式拆解
((B2:B1000=E3)*(C2:C1000=F3)):匹配E3向F3发送信号的行((B2:B1000=F3)*(C2:C1000=E3)):匹配F3向E3发送信号的行- 两者相加表示只要满足任一方向的配对,就标记为有效行
IF函数提取有效行对应的A列信号内容,无效行返回空文本TEXTJOIN用指定分隔符(这里是,)合并所有非空信号,TRUE参数自动忽略空值
优化建议
- 动态范围适配:将表1转为Excel结构化表格(选中数据按
Ctrl+T),命名为Table1,公式可简化为:
=TEXTJOIN(", ", TRUE, IF( ((Table1[赠送者]=E3)*(Table1[接收者]=F3))+((Table1[赠送者]=F3)*(Table1[接收者]=E3)), Table1[交换的礼物], ""))
表格行数变化时公式会自动更新,无需手动调整范围。
2. 自定义分隔符:如需用换行分隔,将", "替换为CHAR(10),并设置单元格格式为「自动换行」。
内容的提问来源于stack exchange,提问作者Steven Bunker
相关产品推荐
相关产品推荐

