Excel非VBA方案:如何按条件生成匹配标签数组至单个单元格
非VBA实现PID对应多标签合并方案
适用Excel 365/2021及以上版本(支持FILTER函数)
假设表格1的Tags列是A列、P&IDNumbers列是B列;表格2的P&IDNumbers列是D列,要输出合并标签的单元格为E列:
- 在E2单元格输入公式:
=TEXTJOIN(", ", TRUE, FILTER($A$2:$A$100, $B$2:$B$100=D2, "")) - 公式说明:
FILTER($A$2:$A$100, $B$2:$B$100=D2, ""):筛选出表格1中P&ID与D2匹配的所有标签,无匹配时返回空TEXTJOIN(", ", TRUE, ...):用逗号加空格连接筛选出的标签,TRUE参数会自动忽略空值
- 下拉填充公式至所有需要的行即可
适用旧版Excel(无FILTER函数)
需要使用数组公式(输入完成后按Ctrl+Shift+Enter确认,而非单独回车):
- 在E2单元格输入公式:
=TEXTJOIN(", ", TRUE, IF($B$2:$B$100=D2, $A$2:$A$100, "")) - 若你的Excel版本连TEXTJOIN都不支持,可使用PHONETIC组合公式(仅支持文本类标签,局限性较大):
同样需按Ctrl+Shift+Enter确认,且要根据实际数据范围调整公式中的行列范围=PHONETIC(INDEX($A$2:$A$100, SMALL(IF($B$2:$B$100=D2, ROW($B$2:$B$100)-ROW($B$2)+1), ROW($A$1:$A$100))))
注意事项
- 替换公式中的
$A$2:$A$100和$B$2:$B$100为你实际的数据区域 - 如需更换分隔符,将
TEXTJOIN中的", "改为目标分隔符即可(比如用换行符CHAR(10)时,需开启单元格自动换行)
内容的提问来源于stack exchange,提问作者M B
相关产品推荐
相关产品推荐

