【问题标题】:Assign an Excel function result to a variable within a cell将 Excel 函数结果分配给单元格内的变量
【发布时间】:2018-07-27 14:23:13
【问题描述】:

我正在处理一个 Excel 电子表格,我正在使用 VLOOKUP 从另一个工作表中获取数据。我有它的工作,但它给我一个恼人的“0”的空白结果。我想合并 ISBLANK 来解决它。

我的问题是语法。如果返回 FALSE,我真的不想为结果重新输入整个 VLOOKUP 函数。

换句话说,我试图避免这样做:

=IF(ISNULL(VLOOKUP($A2,Sheet!$B$1:Sheet!$C$200,2)),"",VLOOKUP($A2,Sheet!$B$1:Sheet!$C$200,2))

理想情况下,我想做的是这样的:

=IF(ISNULL(VLOOKUP($A2,Sheet!$B$1:Sheet!$C$200,2)),"",[some variable that stores the result of the VLOOKUP])

想法,有人吗?谢谢...

【问题讨论】:

  • IsNull(VBA,不是工作表函数)或 ISBLANK(应该有一个单元格作为参数)在这种情况下都不起作用。
  • 可以选择UDF 吗?

标签: excel excel-formula


【解决方案1】:

您愿意接受格式化吗?您可以通过这种方式隐藏零,从而使公式保持简短。

突出显示VLOOKUP() 结果的范围,然后转到格式,然后转到自定义。使用这种格式,任何0 都将被有效隐藏:

0;-0;;@

【讨论】:

    【解决方案2】:

    这取决于您要查找的是文本还是数字。

    如果您希望表达式的结果是您正在查找的文本,只需使用函数 T() 包装您的 VLOOKUP

    因此,对于文本,将VLOOKUP($A2,Sheet!$B$1:Sheet!$C$200,2,FALSE) 替换为T(VLOOKUP($A2,Sheet!$B$1:Sheet!$C$200,2,FALSE))

    如果你的表达式的结果是一个数字,而你的VLOOKUP表达式太复杂而无法重复,那么你可以偷偷地使用IFERROR来避免写两次。诀窍是当VLOOKUP 返回0 时,它会出错,否则它会返回VLOOKUP 返回的内容。你可以利用一些数学来做到这一点:x<>0,然后是1/(1/x) = x。当x=0 时,Excel 返回#DIV/0!。如果我们使用IFERROR,那么我们可以将其替换为空字符串(""

    因此,对于 数字,请将 VLOOKUP($A2,Sheet!$B$1:Sheet!$C$200,2,FALSE) 替换为 IFERROR(1/(1/VLOOKUP($A2,Sheet!$B$1:Sheet!$C$200,2,FALSE)),"")

    【讨论】:

      【解决方案3】:

      从外观上看,您要求的公式是:

      =IF(VLOOKUP($A2,Sheet!$B$1:$C$200,2,FALSE)="","",VLOOKUP($A2,Sheet!$B$1:$C$200,2,FALSE))  
      

      编辑:函数末尾的FALSE 是所以它只能找到完全匹配。忽略它,或将其设置为 True,会返回一个精确的 小于查找值的下一个最大值 - 您的列表必须按升序排序才能正常工作。

      注意对名为Sheet的工作表的范围引用是Sheet!$B$1:$C$200,而不是Sheet!$B$1:Sheet!$C$200

      话虽如此,更简单的方法是使用数字格式隐藏 0 返回。
      给单元格一个自定义的数字格式:

      #,##0;-#,##0;;@
      

      第一部分#,##0 是正数的格式,第二个-#,##0 是负数,第三个;;(没有设置格式)是零,最后一个@ 是文本。

      【讨论】:

      • 不确定为什么是 -1。也许如果我补充说 OP ideally 想要的东西是不可能的,那么这要么是他试图避免的,要么是单元格格式。恐怕没有ISERROR 类型的功能。
      • 嗯...作为 OP 发言,我不是反对你的人。
      • 没问题。现在是几年前。忘了这一切:)
      猜你喜欢
      • 2013-11-12
      • 2022-07-02
      • 2010-10-02
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2015-01-08
      相关资源
      最近更新 更多