技术问询:当productName匹配时,将Excel Table2的productCode复制到Table1
实现Excel两表按productName匹配填充productCode
方法1:用VLOOKUP函数(兼容大多数Excel版本)
在Table1的productCode列第一个数据行(比如B2单元格,表头为B1时)输入以下公式,回车后因是结构化表格,公式会自动应用到整列:
=IFNA(VLOOKUP([@productName], Table2, 2, FALSE), "")
- 说明:
[@productName]引用当前行的productName值,Table2是目标表,2指定取Table2第2列(即productCode),FALSE要求精确匹配;IFNA处理匹配失败的情况,返回空值避免显示#N/A错误。
方法2:用XLOOKUP函数(Excel 365/2021及以上版本推荐)
XLOOKUP参数逻辑更直观,同样在Table1的productCode列输入:
=IFNA(XLOOKUP([@productName], Table2[productName], Table2[productCode]), "")
- 说明:直接指定查找值、查找范围、返回范围,匹配不到时返回空值,写法比VLOOKUP更简洁。
方法3:用Power Query(适合大数据量或重复操作场景)
如果数据量大或后续需重复执行匹配,Power Query效率更高:
- 选中Table1,点击「数据」选项卡 → 「从表格/区域」(弹出对话框时勾选「我的表格有标题」)
- 在Power Query编辑器中,点击「合并查询」→ 「合并查询作为新查询」(或直接合并到原查询)
- 合并窗口中,选择Table2作为合并表,匹配列选两个表的
productName,连接类型选「仅匹配」,点击确定 - 点击合并后列的展开按钮,仅勾选
productCode列,取消「使用原始列名作为前缀」,点击确定 - 点击「关闭并上载」,将处理后的数据替换原Table1或保存到新位置
注意事项
- 确保两个表的
productName格式一致,比如无多余空格、大小写统一(若需区分大小写,可结合EXACT函数实现精确大小写匹配) - 若存在空格问题,可在公式中加入
TRIM函数清理,例如=IFNA(XLOOKUP(TRIM([@productName]), TRIM(Table2[productName]), Table2[productCode]), "")
内容的提问来源于stack exchange,提问作者atulya enterprises
相关产品推荐
相关产品推荐

