Excel中的IF VLOOKUP:带有If条件的Vlookup公式

  • Share This
Michael Brown

该教程展示了如何将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文件)

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.