Excel多条件匹配返回对应列标题的公式实现问题
Excel多条件匹配返回对应列标题的公式实现问题
嗨,我来帮你搞定这个Excel的小难题!你已经用MIN函数算出了最低价格放在E2,现在就差把这个最低价对应的供应商标题找出来显示在F2对吧?其实用几个基础函数组合就能轻松解决,我给你分两种常用方案:
方案一:兼容性拉满的INDEX+MATCH组合(适合所有Excel版本)
假设你的供应商标题分别在B1、C1、D1单元格(对应B2、C2、D2的价格列),直接在F2里输入下面的公式:
=INDEX(B1:D1, MATCH(E2, B2:D2, 0))
公式解释:
MATCH(E2, B2:D2, 0):会精准找到E2的最低价格在B2:D2这个价格区域里的位置(比如价格在D2的话,返回数字3)INDEX(B1:D1, 位置):从B1到D1的标题区域里,取出对应位置的供应商名称,刚好就是你要的结果
方案二:简洁直观的XLOOKUP(仅Excel 365/2021及以后版本可用)
如果你的Excel是新版本,用XLOOKUP会更省心,公式更短逻辑更直接:
=XLOOKUP(E2, B2:D2, B1:D1)
这个函数的逻辑就是:找到E2的值在B2:D2里的匹配项,然后返回B1:D1区域里对应的标题,一步到位。
特殊情况处理:多个供应商价格相同(都是最低价)
如果刚好有两个甚至三个供应商的价格都是最低的,上面的公式只会返回第一个匹配到的供应商。要是你想把所有符合的供应商都列出来,可以用TEXTJOIN组合IF函数:
=TEXTJOIN(", ", TRUE, IF(B2:D2=E2, B1:D1, ""))
- 旧版Excel需要按
Ctrl+Shift+Enter作为数组公式输入,新版Excel直接回车就行 - 效果是把所有价格等于E2的供应商名称用逗号分隔显示出来
结合你截图里的情况,只要E2是Sysco对应的D2单元格的价格,用上面的第一个公式就能让F2显示「Sysco」啦!
备注:内容来源于stack exchange,提问作者xxronisxx
相关产品推荐
相关产品推荐

