有没有办法在查找 table 中将值与范围匹配?
Is there a way to match a value to a range in a lookup table?
我在 Excel 工作表中有两个单独的 table,如下图所示。
A
、B
、E
、F
和 G
列是我的输入值;
我想要一个公式来生成列 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 范围内(列 F
和 G
)。
因此,例如,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)
我在 Excel 工作表中有两个单独的 table,如下图所示。
A
、B
、E
、F
和 G
列是我的输入值;
我想要一个公式来生成列 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 范围内(列 F
和 G
)。
因此,例如,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)