Excel跨工作表双条件匹配取数:Index+Match是否适用?
用INDEX+MATCH实现双条件匹配完全可行!
当然可以!这其实是Excel里处理多条件匹配的经典方案之一,刚好能解决你这个跨工作表匹配成本的需求。
具体公式写法
假设你的数据是从第二行开始(表头在第一行),在Worksheet1的T2单元格输入以下公式:
=INDEX(Worksheet2!Table2[成本], MATCH(Table1[@[Call Description]]&Table1[@[Time Rate]], Worksheet2!Table2[Call Description]&Worksheet2!Table2[Time Rate], 0))
(注意把公式里的[成本]换成你Table2中H列实际的表头名称,比如如果H列表头是Cost就写[Cost])
公式解释
- MATCH函数:这里用
&把Call Description和Time Rate两个条件合并成一个唯一的匹配字符串,在Worksheet2的对应列组合中查找完全匹配的位置(最后一个参数0代表精确匹配)。 - INDEX函数:根据MATCH找到的位置,返回Worksheet2中Table2的H列(成本列)对应的值。
额外优化建议
- 处理无匹配的情况:如果存在两个表格中找不到对应组合的情况,公式会返回
#N/A,可以用IFERROR包裹公式,返回更友好的提示:=IFERROR(INDEX(Worksheet2!Table2[成本], MATCH(Table1[@[Call Description]]&Table1[@[Time Rate]], Worksheet2!Table2[Call Description]&Worksheet2!Table2[Time Rate], 0)), "无对应成本") - 兼容性说明:如果你用的是Excel 2019及更早版本,输入这个公式后需要按
Ctrl+Shift+Enter作为数组公式确认;Excel 365/2021及以后的版本直接回车即可自动识别数组运算。 - 格式一致性:确保两个表格中
Call Description和Time Rate的文本格式完全一致(比如不要一个有空格一个没有,或者大小写不一致——如果需要严格区分大小写,可以把匹配条件换成EXACT函数的数组匹配形式,但一般场景下默认的不区分大小写匹配就足够)。
内容的提问来源于stack exchange,提问作者K.Honda
相关产品推荐
相关产品推荐

