有没有办法在查找 table 中将值与范围匹配?

Is there a way to match a value to a range in a lookup table?

我在 Excel 工作表中有两个单独的 table,如下图所示。 ABEFG 列是我的输入值; 我想要一个公式来生成列 C 中的值 (以斜体显示):

  A B C D E F G
 1 Name Value Type Type Lower Upper
 2 Andy 35 Spam Spam 35 39
 3 Mark 85 Foo Ham 25 27
 4 Pat 28 N/A Eggs 91 95
 5 Deb 93 Eggs Foo 82 86
 6 Emily 92 Eggs Bar 65 69
 7 Greg 22 N/A
 8 Gary 67 Bar

对于第一行中的每一行 table(即每个人), 我想根据他们的价值找到那个人的类型(第 B 列) 通过在第二个 table 中找到该人的价值所在的行 落在 Lower→Upper 范围内(列 FG)。 因此,例如,Mark(第 3 行)的类型为“Foo” 因为他的值 (85) 介于 82 和 86 之间, 与第二个 table 的第 5 行中的“Foo”关联。 请注意,Pat 的值为 28(第 4 行),不匹配任何范围。

范围包括在内。 例如,安迪的类型是“垃圾邮件”(第 2 行),尽管他的值 (35) 等于“垃圾邮件”(单元格F2)范围的下限。

我知道 Excel 中嵌套的 IF 很难调试, 所以我想尽可能避免这种情况。

修改您的来源 table 以显示每个等级的下限,然后使用具有近似匹配的 VLOOKUP


更新以显示如何包含空白范围


过滤解决方案

如果您无法访问 FILTER 函数,一个选项是 INDEX/MATCH 数组公式,需要使用 Ctrl 确认+Shift+Enter.

=INDEX($F:$F,MATCH(1,($G:$G<=B2)*($H:$H>=B2),0),)

另一个选项是LOOKUP,不需要Ctrl+Shift+Enter.

=LOOKUP(1,1/(($G:$G<=B2)*($H:$H>=B2)),$F:$F)