如何结合VLOOKUP与MAX函数实现关联区域最大值查询?
如何结合查找函数与MAX计算指定产品的对应区域最大值?
当然可以实现这个需求!我来给你拆解两种可行的方案,其中一种直接用到VLOOKUP,另一种是更灵活的常用组合:
先明确数据场景
假设你的Sheet1结构是这样的:
- A列是产品名称(A、B、C)
- B到K列是每个产品对应的10组数据
我们需要在Sheet2中定位到产品“A”的行,然后计算该行B1:K1区域的最大值。
方案1:用VLOOKUP+MAX的数组公式
如果你一定要用VLOOKUP来实现,可以借助数组参数让VLOOKUP返回整行的目标区域,再用MAX取最大值:
=MAX(VLOOKUP("A",Sheet1!A:K,COLUMN(Sheet1!B:K)-COLUMN(Sheet1!A:A)+1,FALSE))
公式解释:
COLUMN(Sheet1!B:K)-COLUMN(Sheet1!A:A)+1:生成从2到11的列号数组(因为B是第2列,A是第1列,计算后得到目标区域的列序号)- VLOOKUP会根据这个列号数组,返回产品“A”所在行的B到K列的所有数据
- MAX函数对返回的所有数据取最大值
注意:在旧版Excel(非动态数组版本)中,输入这个公式后需要按
Ctrl+Shift+Enter完成数组输入;新版Excel直接回车即可。
方案2:更推荐的INDEX+MATCH+MAX组合
其实在Excel中,INDEX+MATCH的组合比VLOOKUP更灵活稳定(不受查找列位置限制),搭配MAX的写法更直观:
=MAX(INDEX(Sheet1!B:K,MATCH("A",Sheet1!A:A,0),0))
公式解释:
MATCH("A",Sheet1!A:A,0):找到产品“A”在Sheet1 A列中的精确匹配行号INDEX(Sheet1!B:K,行号,0):返回该行对应的B到K列的所有数据(0表示返回整行)- MAX函数直接对这个区域取最大值
这个公式同样支持新旧版Excel,新版直接回车,旧版按Ctrl+Shift+Enter。
两种方案都能满足你的需求,个人更推荐方案2,因为逻辑更清晰,后续如果Sheet1的列顺序调整,也不需要修改公式的列号计算部分。
内容的提问来源于stack exchange,提问作者Pierre Bonaparte
相关产品推荐
相关产品推荐

