如何匹配Sheet1与Sheet2两列数据并提取对应第三列内容?
解决Google Sheets双列匹配提取数据问题
要实现Sheet1中两列与Sheet2对应两列匹配,并提取Sheet2第三列的数量值,推荐以下两种实用公式:
方法1:INDEX + MATCH组合(兼容性强)
假设Sheet1的匹配列为A、B列,Sheet2的匹配列同样为A、B列,数量列为C列。在Sheet1需要填充数量的单元格(比如C2)输入:
=INDEX(Sheet2!$C:$C, MATCH(1, (Sheet2!$A:$A=$A2)*(Sheet2!$B:$B=$B2), 0))
公式说明:
(Sheet2!$A:$A=$A2)*(Sheet2!$B:$B=$B2):将两列的匹配条件转化为数组,当Sheet2的A、B列同时等于当前行A2、B2时返回1,否则返回0MATCH(1, ..., 0):定位到第一个满足双条件的行号INDEX(Sheet2!$C:$C, ...):根据行号提取对应行的数量值
如果希望匹配失败时显示空值而非#N/A,套上IFERROR即可:
=IFERROR(INDEX(Sheet2!$C:$C, MATCH(1, (Sheet2!$A:$A=$A2)*(Sheet2!$B:$B=$B2), 0)), "")
方法2:XLOOKUP拼接匹配(更简洁)
利用字符串拼接把两列合并成单一匹配键,公式更直观:
=XLOOKUP($A2&$B2, Sheet2!$A:$A&Sheet2!$B:$B, Sheet2!$C:$C, "")
公式说明:
$A2&$B2:将当前行的A、B列内容拼接成一个字符串作为匹配键Sheet2!$A:$A&Sheet2!$B:$B:生成Sheet2所有行的A、B列拼接字符串数组XLOOKUP会找到匹配的键,返回对应Sheet2的C列值,匹配失败则返回空值
注意事项
- 公式中的绝对引用符号
$要正确使用:Sheet2的列需用$锁定,避免下拉公式时列偏移;Sheet1的行号不要加$,确保下拉时自动对应每一行的匹配值 - 确保两列匹配内容的格式一致(比如文本/数字格式),否则可能出现匹配失败的情况
内容的提问来源于stack exchange,提问作者Shawnshaw
相关产品推荐
相关产品推荐

