如何用INDEX/MATCH制作ID与文本关联的Yes/No映射表?
解决方案
这里提供几种Excel中实现需求的实用方法:
方法1:COUNTIF函数(通用兼容)
假设原始数据区域为A1:C4(A列对应ID1,B列对应ID2,C列对应ID3,表头在第1行),目标表格的文本行放在F列(F2=Text 1,F3=Text 2,F4=Text 3),ID列表头在G1:I1(G1=ID1,H1=ID2,I1=ID3)。
在G2单元格输入公式,然后向右、向下填充至整个目标表格区域:
=IF(COUNTIF(A$2:A$4,F2)>0,"yes","no")
- 逻辑说明:
COUNTIF(A$2:A$4,F2)统计对应ID列中匹配当前文本的次数,次数大于0则说明存在,返回"yes",否则返回"no";A$2:A$4的绝对引用确保填充时列范围固定,不会偏移。
方法2:XLOOKUP函数(Excel 365/2021+适用)
同样基于上述单元格位置,在G2输入公式后填充:
=IF(NOT(ISERROR(XLOOKUP(F2,A$2:A$4,A$2:A$4))),"yes","no")
- 逻辑说明:
XLOOKUP尝试在对应ID列中查找目标文本,找不到会返回错误值;通过ISERROR判断是否查找成功,进而返回"yes"或"no"。
方法3:数据透视表批量生成
- 先将原始数据转换为长格式(跳过所有
null值),示例结构:ID 文本 ID1 Text 1 ID1 Text 2 ID2 Text 1 ID2 Text 3 ID3 Text 3 - 选中整理后的长格式数据,插入数据透视表:
- 将「文本」字段拖到行区域
- 将「ID」字段拖到列区域
- 将「文本」字段拖到值区域,右键修改值汇总方式为「计数」
- 最后将透视表中数值大于0的单元格替换为"yes",数值为0的替换为"no"即可。
内容的提问来源于stack exchange,提问作者ElphiusMostafa
相关产品推荐
相关产品推荐

