下 关于VLOOKUP,你必须知道的23件事( 二 )


下面的例子中,planet表的ids是以文本形式输入的数字,由于查找值是数字3,因而导致VLOOKUP返回错误:

下 关于VLOOKUP,你必须知道的23件事

文章插图
图21
要解决这个问题,需要确保查找值和表中的第1列都是相同的数据类型(都是数字或者都是文本) 。
一种方法是将查找列中的值转换为数字 。然而,如果不容易控制源表格,也可以调整VLOOKUP公式来转换查找值为文本,如下面所示通过在查找值后连接””:
=VLOOKUP(idn &””,planets,2,0)
下 关于VLOOKUP,你必须知道的23件事

文章插图
图22
如果无法确定何时会有数字,何时有文本,那么可以通过在IFERROR中放置VLOOKUP来处理这两种情况:
=IFERROR(VLOOKUP(idn,planets,2,0),VLOOKUP(idn& “”,planets,2,0))
20.可以使用VLOOKUP来替换嵌套的IF语句
VLOOKUP最有趣的用法之一是替换嵌套的IF语句 。如果你曾经构建过一系列嵌套的IF语句,知道它们工作正常,但它们需要很多括号,也必须注意嵌套的顺序,以免引入逻辑错误 。
例如,嵌套的IF语句的常见用法是根据分数来确定成绩 。下面的示例中,可以看到使用嵌套的IF语句构建的公式可以实现 。
下 关于VLOOKUP,你必须知道的23件事

文章插图
图23
完整的IF嵌套公式如下:
=IF(C5<64,”F”,IF(C5<73,”D”,IF(C5<85,”C”,IF(C5<95,”B”,”A”))))
公式工作正常,但是要注意,逻辑关系和实际分数都直接编写进公式 。如果因任何原因修改了分数,需要仔细更新公式,然后将其复制到整个表中 。
相比之下,VLOOKUP可以使用一个简单的公式来赋值成绩 。所需要做的是确保为VLOOKUP设置好成绩表,即按分数排序,且包含括号来处理所有分数 。
下 关于VLOOKUP,你必须知道的23件事

文章插图
图24
此时,使用的公式为:
=VLOOKUP(C5,grade,2,TRUE)
这种方法的好处是,逻辑和分数都内置在成绩指标表中 。如果有任何改变,可以直接修改更新表,无需编辑公式,VLOOKUP公式将自动更新 。
21.VLOOKUP可以仅处理单个条件
根据设计,VLOOKUP只能根据单个条件查找值,该条件作为查找值在表的第1列(查找列)中查找 。
这意味着,诸如在“Accounting”中查找姓氏为“Smith”的员工,或者根据在单独的列中的名字和姓氏来查找员工,都是不容易的 。
然而,有办法来克服这个局限 。一种解决方法是创建辅助列,用来连接来自不同列的值来创建查找值,类似多条件 。例如,想要查找员工的部门和组,但是名字和姓氏在不同的列中,怎样实现同时查找呢?
下 关于VLOOKUP,你必须知道的23件事

文章插图
图25
首先,添加辅助列,将名字和姓氏连接在一起:
下 关于VLOOKUP,你必须知道的23件事

文章插图
图26
然后,让VLOOKUP来使用包含了新列的表,将名字和姓氏连接作为查找值:
下 关于VLOOKUP,你必须知道的23件事

文章插图
图27
最后的VLOOKUP公式将辅助列作为查找列来查找名字和姓氏连在一起的值:
=VLOOKUP(C3&D3,name,4,0)
22.两个VLOOKUPS比一个VLOOKUP更快
这可能看起来很疯狂,但是当你有大量数据并需要执行完全匹配时,可以通过在公式中添加另一个VLOOKUP来加快VLOOKUP的速度!
背景:假设你有大量的订单数据,例如超过了10000条记录,并且正在使用VLOOKUP来基于订单ID查找订单总数 。因此,使用的公式形式如下:

推荐阅读