如何通过ID匹配在Power Query中补全性别列的女性信息?
通过ID关联补全性别列的解决方案
方法1:VLOOKUP+IF快速匹配(适合新手)
假设:
- 「已注册」表:ID列=A列,姓名列=B列
- 「补充信息」表:ID列=A列,性别列=B列(当前全为
Male)
在「补充信息」表的空白列(比如C2单元格)输入公式:
=IF(ISNUMBER(SEARCH("女",VLOOKUP(A2,已注册!A:B,2,FALSE))),"Female",B2)
按回车后下拉填充整列,再把C列的值粘贴为数值替换原B列即可。
- 逻辑:先通过ID匹配「已注册」表的姓名,检查姓名是否含女性特征(这里以中文“女”为例,英文可替换为
OR(SEARCH("Mary",...),SEARCH("Lisa",...))),符合则改为Female,否则保留原Male。
方法2:INDEX+MATCH组合(大表格更高效)
如果数据量较大,INDEX+MATCH比VLOOKUP更稳定,公式如下:
=IF(OR(ISNUMBER(SEARCH({"芳","婷","娜"},INDEX(已注册!B:B,MATCH(A2,已注册!A:A,0))))),"Female",B2)
- 逻辑:用MATCH找到对应ID的行号,INDEX提取姓名,再通过OR+SEARCH匹配多个女性姓名关键词,灵活度更高。
方法3:Power Query批量处理(大数据量首选)
- 分别把「已注册」和「补充信息」表导入Power Query:点击「数据」→「获取数据」→「自表格/区域」
- 在「补充信息」的查询界面,点击「合并查询」→「合并查询作为新查询」,选择ID列作为匹配键,关联「已注册」表,连接类型选「仅匹配」
- 展开合并后的列,只保留「姓名」字段
- 添加自定义列,输入判断公式(根据你的姓名特征调整):
if Text.Contains([姓名], "女") or List.Contains({"Mary", "Lisa", "Anna"}, [姓名]) then "Female" else [性别]
- 删除原性别列,将自定义列重命名为「性别」,最后点击「关闭并上载」导出到Excel
注意事项
- 确保两张表的ID格式完全一致(无空格、统一文本/数字格式),否则匹配会失败
- 若存在中性姓名,建议先在「已注册」表手动添加性别列,再直接关联匹配该列,准确率更高
内容的提问来源于stack exchange,提问作者Beatriz Backup
相关产品推荐
相关产品推荐

