Excel 如何在一个范围内应用VLOOKUP

Excel 如何在一个范围内应用VLOOKUP,excel,vlookup,Excel,Vlookup,我有两张桌子。表1有名称和标记。表2有一个标记范围和相应的等级 我想根据分数在表1中添加列分数 表1 +------+-------+ | Name | Marks | +------+-------+ | Ab | 98 | | Bb | 93 | | Cc | 87 | | Dd | 72 | +------+-------+ 表2 +--------+-------+ | Range | Grade | +--------+-------+ |

我有两张桌子。表1有
名称
标记
。表2有一个标记
范围
和相应的
等级

我想根据
分数
在表1中添加列
分数

表1

+------+-------+
| Name | Marks |
+------+-------+
| Ab   |    98 |
| Bb   |    93 |
| Cc   |    87 |
| Dd   |    72 |
+------+-------+
表2

+--------+-------+
| Range  | Grade |
+--------+-------+
| 91-100 | A     |
| 81-90  | B     |
| 71-80  | C     |
+--------+-------+
我的期望输出

| Name | Marks | Grade |
+------+-------+-------+
| Ab   |    98 | A     |
| Bb   |    93 | A     |
| Cc   |    87 | B     |
| Dd   |    72 | C     |
+------+-------+-------+

如何使用
VLOOKUP
,如果不是
VLOOKUP
,除了marcros/vba之外,还有什么好的替代方法将查找表更改为仅最小值,并按升序排列:

然后,一个简单的VLOOKUP将起作用:

=VLOOKUP(B2,F:G,2,TRUE)


如果您坚持让数据保持原样:

=INDEX(G:G,AGGREGATE(15,6,ROW($F$2:$F$4)/((--LEFT($F$2:$F$4,FIND("-",$F$2:$F$4)-1)<=B2)*(--MID($F$2:$F$4,FIND("-",$F$2:$F$4)+1,3)>=B2)),1))
=指数(G:G,总计(15,6行($F$2:$F$4)/((-LEFT($F$2:$F$4,FIND(“-”,$F$2:$F$4)-1)=B2),1))

将查找表更改为仅最小值,并按升序排列:

然后,一个简单的VLOOKUP将起作用:

=VLOOKUP(B2,F:G,2,TRUE)


如果您坚持让数据保持原样:

=INDEX(G:G,AGGREGATE(15,6,ROW($F$2:$F$4)/((--LEFT($F$2:$F$4,FIND("-",$F$2:$F$4)-1)<=B2)*(--MID($F$2:$F$4,FIND("-",$F$2:$F$4)+1,3)>=B2)),1))
=指数(G:G,总计(15,6行($F$2:$F$4)/((-LEFT($F$2:$F$4,FIND(“-”,$F$2:$F$4)-1)=B2),1))

是否有任何公式可以将
91-100
转换为
91
?您可以使用
=Left(“91-100”,Search(“-”,“91-100”)
,然后只需用适当的单元格替换“91-100”。无论哪种方式,正如@scott Craner提到的,您都必须借助您的数据表使他的公式生效。谢谢您的努力!是否有任何公式可以将
91-100
转换为
91
?您可以使用
=Left(“91-100”,Search(“-”,“91-100”))
,然后只需将“91-100”替换为适当的单元格即可。无论哪种方式,正如@scott Craner提到的,您都必须借助您的数据表使他的公式生效。谢谢您的努力!可能的重复可能的重复