Table of contents
该教程展示了如何将V 您还将学习如何使用IF ISNA VLOOKUP公式,用您自己的文本、零或空白单元格替换#N/A错误。
虽然VLOOKUP和IF函数本身很有用,但它们结合在一起会带来更有价值的经验。 本教程意味着你已经很好地记住了这两个函数的语法,否则你可能想通过点击上述链接来补习知识。
带有If语句的Vlookup:返回True/False,Yes/No,等等。
当你将If和Vlookup结合在一起时,最常见的情况之一是将Vlookup返回的值与一个样本值进行比较,并返回 是/否 或 真/假 作为结果。
在大多数情况下,以下的通用公式会很好地发挥作用。
如果(vlookup(...) = 价值 , TRUE, FALSE)翻译成普通英语,该公式指示Excel返回 真 如果Vlookup为真(即等于指定的值),则公式返回 假的 .
下面你会发现这个IF Vlookup公式在现实生活中的一些应用。
例1.查询一个特定的值
比方说,你在A列有一个物品清单,B列有数量。你正在为你的用户创建一个仪表盘,需要一个公式来检查E1中某一物品的数量,并告知用户该物品是有库存还是已售完。
你用一个普通的Vlookup与精确匹配的公式拉出数量,像这样。
=vlookup(e1,$a$2:$b$10,2,false)
然后,写一个IF语句,将Vlookup的结果与0进行比较,如果等于0则返回 "否",否则返回 "是"。
=IF(VLOOKUP(E1,$A$2:$B$10,2,FALSE)=0, "否", "是")
而不是 是/否 ,你可以返回 真/假 或 有库存/已售完 或任何其他两个选择。 例如:
=IF(VLOOKUP(E1,$A$2:$B$10,2)=0, "售罄", "有库存")
你也可以将Vlookup返回的值与样本进行比较。 文本 在这种情况下,一定要用引号括住一个文本字符串,像这样。
=IF(VLOOKUP(E1,$A$2:$B$10,2)="样本文本",TRUE,FALSE)
例2.将Vlookup结果与另一个单元格进行比较
另一个典型的Vlookup与If条件在Excel中的例子是将Vlookup的输出与另一个单元格中的值进行比较。 例如,我们可以检查它是否大于或等于单元格G2中的一个数字。
=IF(VLOOKUP(E1,$A$2:$B$10,2)>=G2, "是!", "不是")
这里是我们的If公式与Vlookup的操作。
以类似的方式,你可以在Excel If Vlookup公式中使用任何其他逻辑运算符和单元格引用。
例3.在一个较短的列表中的Vlookup值
将目标列中的每个单元格与另一个列表进行比较,并返回 真 或 是 如果发现有匹配的情况,则为 假的 或 没有 否则,使用这个通用的IF ISNA VLOOKUP公式。
IF(ISNA( VLOOKUP(...)), "否", "是")如果Vlookup的结果是#N/A错误,则公式返回 "No",意思是在查找列表中没有找到查找值。 如果找到了匹配,则返回 "Yes"。 例如:。
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "否", "是")
如果你的业务逻辑需要相反的结果,只需将 "是 "和 "否 "对调,就可以颠倒公式的逻辑。
=IF(ISNA(VLOOKUP(A2,$D$2:$D$4,1,FALSE)), "是", "否")
Excel如果用Vlookup公式来执行不同的计算方法
除了显示你自己的文本信息,If函数与Vlookup可以根据你指定的标准进行不同的计算。
再以我们的例子为例,让我们根据具体卖家(F1)的效益来计算他们的佣金:赚取200美元及以上的人有20%的佣金,其他人有10%。
为此,你要检查Vlookup返回的值是否大于或等于200,如果是,则乘以20%,否则乘以10%。
=IF(VLOOKUP(F1,$A$2:$C$10,3,FALSE )>=200, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*20%, VLOOKUP(F1,$A$2:$C$10,3,FALSE)*10%)
其中A2:A10为卖家名称,C2:C10为销售额。
IF ISNA VLOOKUP隐藏#N/A错误
如果VLOOKUP函数不能找到一个指定的值,它会抛出一个#N/A的错误。 为了抓住这个错误,并用你自己的文本来替换它,在IF函数的逻辑测试中嵌入一个Vlookup公式,像这样。
IF(ISNA(VLOOKUP(...)), "未找到", VLOOKUP(...)当然,你可以输入任何你喜欢的文字来代替 "未找到"。
假设,你在一列中列出了卖家的名字,在另一列中列出了销售金额。 你的任务是拉出一个与用户在F1中输入的名字相对应的数字。 如果没有找到这个名字,显示一条信息说明。
有了A2:A10的名字和C2:C10的金额,可以通过以下If Vlookup公式完成任务。
=IF(ISNA(VLOOKUP(F1,$A$2:$C$10,3,FALSE)), "未找到", VLOOKUP(F1,$A$2:$C$10,3,FALSE)
如果找到名称,就会返回相应的销售金额。
如果没有找到查询值,则 未找到 消息出现,而不是#N/A错误。
这个公式如何运作
该公式的逻辑非常简单:你用ISNA函数检查Vlookup是否有#N/A错误。 如果发生错误,ISNA返回TRUE,否则返回FALSE。 上述数值进入IF函数的逻辑测试,它做以下事情之一。
- 如果逻辑测试为TRUE(#N/A错误),就会显示你的信息。
- 如果逻辑测试是FALSE(查找值被发现),Vlookup正常返回一个匹配。
在较新的Excel版本中的IFNA VLOOKUP
从Excel 2013开始,你可以使用IFNA函数而不是IF ISNA来捕捉和处理#N/A错误。
ifna(vlookup(...), " 未找到 ")在我们的例子中,该公式将采取以下形式。
=IFNA(VLOOKUP(F1,$A$2:$C$10,3, FALSE), "未找到")
提示:如果你想捕获各种错误,而不仅仅是#N/A,可以将VLOOKUP与IFERROR函数结合使用。 更多细节可以在这里找到:IFERROR VLOOKUP in Excel。
Excel Vlookup:如果没有找到就返回0
当处理数值时,你可能想在没有找到查询值时返回一个0。 要做到这一点,使用上面讨论的IF ISNA VLOOKUP公式,并稍作修改:在文本信息中提供0,而不是一个文本信息。 value_if_true 的参数。
if(isna(vlookup(...)), 0, vlookup(...))在我们的示例表中,公式如下。
=if(isna(vlookup(f2,$a$2:$c$10,3,false)), 0, vlookup(f2,$a$2:$c$10,3,false)
在最近版本的Excel 2016和2013中,你可以再次使用IFNA Vlookup组合。
=ifna(vlookup(i2,$a$2:$c$10,3, false), 0)
Excel Vlookup:如果没有找到则返回空白单元格
这是 "Vlookup if then "语句的另一种变化:当查询值没有找到时,不返回任何东西。 要做到这一点,指示你的公式返回一个空字符串(""),而不是#N/A错误。
if(isna(vlookup(...)), "", vlookup(...))下面是几个完整的公式例子。
适用于所有Excel版本。
=if(isna(vlookup(f2,$a$2:$c$10,3,false)), "", vlookup(f2,$a$2:$c$10,3,false)
适用于Excel 2016和Excel 2013。
=ifna(vlookup(f2,$a$2:$c$10,3, false), "")
带有索引匹配的If - 带有If条件的左侧vlookup
有经验的Excel用户知道,VLOOKUP函数并不是在Excel中进行垂直查找的唯一方法。 INDEX MATCH组合也可以用于此目的,而且它的功能更加强大,用途更加广泛。 好消息是,索引匹配可以与IF一起工作,其方式与Vlookup完全相同。
例如,你在A列有订单号,B列有卖家名称。你正在寻找一个公式来提取特定卖家的订单号。
在这种情况下不能使用Vlookup,因为它不能从右向左搜索。 只要在查找列中找到查找值,Index Match就能顺利工作。 如果没有,就会出现#N/A错误。 为了用你自己的文本替换标准错误符号,将Index Match嵌套在IF ISNA中。
=IF(ISNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "未找到", INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0) ))
在Excel 2016和2016中,你可以用IFNA代替IF ISNA,使公式更加紧凑。
=IFNA(INDEX(A2:A10, MATCH(F1, $B$2:$B$10, 0)), "未找到")
以类似的方式,你可以在其他If公式中使用索引匹配。
这就是在Excel中如何使用Vlookup和IF语句的方法。 如果想仔细看看本教程中讨论的公式,欢迎下载下面的样本工作簿。 感谢你的阅读,希望下周能在我们的博客上见到你。
供下载的实践工作手册
Excel IF Vlookup - 公式实例(.xlsx文件)