【问题标题】:Nested IF, AND, OR, VLOOKUP Statement Excel 2016嵌套 IF、AND、OR、VLOOKUP 语句 Excel 2016
【发布时间】:2016-06-21 17:53:14
【问题描述】:

我需要一个执行以下操作的公式:(1) 如果 Raw$G 中的值=A5,并且 (2) 如果 Raw$J 的值 = ng/L OR mg/L OR ug/L,那么返回值“mg/L”,否则返回 J 列中的值。我在下面复制了我的两次尝试(一个使用 Vlookup,另一个直接引用 J 列)。两者都返回 J 中的值,就好像我的等式的前半部分没有被正确解释。感谢您对我所缺少的任何想法!

=IF(OR(Raw!$J:$J="ng/L",Raw!$J:$J="ug/L",Raw!$J:$J="mg/L"),IF(Raw!$G:$G=$A6,"mg/L",Raw!$J:$J))


=IF(OR(Raw!$J:$J="ng/L",Raw!$J:$J="ug/L",Raw!$J:$J="mg/L"),IF(Raw!$G:$G=$A5,"mg/L",VLOOKUP($A5,Raw!$G:$J,4,FALSE)))

【问题讨论】:

    标签: excel if-statement excel-formula nested vlookup


    【解决方案1】:

    试试这个:

    =If(OR(INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0))="ng/L",INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0))="mg/L",INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0))="ug/L"),"mg/l",INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0)))
    

    它应该做你想做的事。如果在 Raw!G:G 中找不到 A5 中的值,则会导致错误。如果您想处理该错误,请将其包装在 IFERROR() 中:

    =IFERROR(If(OR(INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0))="ng/L",INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0))="mg/L",INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0))="ug/L"),"mg/l",INDEX(Raw!J:J,MATCH(A5,Raw!G:G,0))),A5 & " Not Found")
    

    【讨论】:

    • 效果很好-谢谢。您如何知道何时使用 INDEX/MATCH 组合而不是 Vlookup?
    • 在这种情况下您可以使用 VLookup。只有当您搜索的数据位于您返回的数据的左侧时,Vlookup 才有效。在这种情况下,我的索引/匹配是第一个出现在我脑海中的。 Vlookup 应该是 VLOOKUP(A5,Raw!G:J,4,FALSE) 它应该可以代替 INDEX/MATCH。 @KRD
    • 使用 INDEX/MATCH 比 VLOOKUP 好。在任何情况下,INDEX/MATCH 都比 VLOOKUP 更快、适应性更强。使用 VLOOKUP 而不是 INDEX/MATCH 的唯一原因是因为 VLOOKUP 对于初学者来说使用起来更简单。但是,一旦您了解了 INDEX/MATCH 的工作原理,就更容易了,因为您无需计算列数或担心将来会插入列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 1970-01-01
    相关资源
    最近更新 更多