如何对多个范围执行 VLOOKUP 或 INDEX/MATCH?

如何对多个范围执行 VLOOKUP 或 INDEX/MATCH?

我一直在想办法填补评级栏(下图),而不用冗长的公式。我试过VLOOKUP“INDEX /MATCH”,但还是走到了死胡同。

正常情况下,VLOOKUPtable_array 最多只有 2 列,即根据我的示例,G2:J3。但我想根据年份 (G3:G5) 选择 table_array,有办法吗?

任何帮助都将不胜感激!

Excel 屏幕截图

答案1

尝试这个公式:

=IF(OR(D3>VLOOKUP(B3,G:J,2,FALSE),D3=VLOOKUP(B3,G:J,2,FALSE)),$H$2,IF(AND(D3<VLOOKUP(B3,G:J,2,FALSE),OR(D3>VLOOKUP(B3,G:J,3,FALSE),D3=VLOOKUP(B3,G:J,3,FALSE))),$I$2,$J$2))

在此处输入图片描述

答案2

您的定义可能没有经过深思熟虑。您的范围似乎是最低截断值(分数必须 >= 才能符合该评级)。但是,低于“差”的分数没有评级名称。如果截断值是每个评级的最大值,则没有比好截断值更好的评级。如果截断值是混合的(高表示差,低表示好),这将定义平均值,那么您如何使用平均截断值?

这是解决方案的一种方法,如果您重新定义范围,则可以对其进行修改。它基于每个评级的最低限度。这要求评级表按升序排列。它是可扩展的,因为您只需调整查找表的范围;它不需要每年单独的查找公式:

在此处输入图片描述

未由您的评级截止值定义的值将返回错误;不清楚您想如何补救。E3 中的公式:

=INDEX($H$2:$J$2,,MATCH(D3,INDIRECT("$H$"&MATCH(B3,$G$1:$G$5,0)&":$J$"&MATCH(B3,$G$1:$G$5,0))))

INDEX 根据 MA​​TCH 结果返回评级名称。MATCH 将分数与评级截止值进行比较。

它通过匹配年份来确定使用查找表的哪一行。INDIRECT 根据该结果创建正确的查找范围。

相关内容