在 IF 条件中执行 VLOOKUP

在 IF 条件中执行 VLOOKUP

当(如果)该表的 Y 列低于 Z 值时,我需要用 VLOOKUP 查找表中的 X 值。

编写此公式将返回表的第一个值而不是我需要的值:
=IF(PI_UWF!S:S < Search!$L$19 ; VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE) ; "boh")

  • 值 X =VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE)
  • Y 列 =PI_UWF!S:S
  • 值 Z =Search!$L$19

我该怎么做?

答案1

你遵循了错误的逻辑,检查外部的标准是VLOOKUP行不通的。

不要VLOOKUP使用 INDEX 和 MATCH,这样您就可以创建更灵活的公式:

=INDEX(PI_UWF!Q:Q;MATCH(O18,IF(PI_UWF!S:S<Search!L19,PI_UWF!C:C,""),0))
这是一个数组公式,因此插入后按 CTRL+SHIFT+ENTER。

怎么运行的:

  • IF(PI_UWF!S:S<Search!L19,PI_UWF!C:C,"")- 仅当 S:S 低于 Search!L19 时才从 C:C 中选择值
  • MATCH(O18,IF(...),0)- 与过滤列表中的值匹配
  • =INDEX(PI_UWF!Q:Q;MATCH(...))- 从 Q:Q 中选择正确的值

(由于我没有样本数据,我无法检查解决方案,它可能存在小问题,但概念是正确的)。

答案2

使用起来不可靠。=IF(PI_UWF!S:S < Search!$L$19;;) 它不知道您是否想将其与列的总和或单个值进行比较。而且相当不可靠。

您可以使用很多函数,具体取决于您想要做什么。
如果您想ZY可以使用SUM()

用这个你可以替换PI_UWF!S:S它,SUM(PI_UWF!S:S)这样你会得到:

=IF(SUM(PI_UWF!S:S) < Search!$L$19 ; VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE) ; "boh")

你更可能想比较Z一下每一个单元格Y。为此,您可以使用类似 的内容COUNTIF(range, criteria)

=COUNTIF(PI_UWF!S:S;">="&Search!$L$19)Y将计算 中值等于或大于 的单元格数Z
如果此值为 0,则表示 中的每个单元格Y都小于Z。这意味着:

=IF(COUNTIF(PI_UWF!S:S;">="&Search!$L$19)>0;"Not inferior";"Inferior")

或者你的情况

=IF(COUNTIF(PI_UWF!S:S;">="&Search!$L$19)>0;"boh";VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE))

祝你好运!

相关内容