【问题标题】:How do I run an Excel formula in one cell (have it produce a value) ONLY if another cell's formula produces a value?仅当另一个单元格的公式产生值时,如何在一个单元格中运行 Excel 公式(让它产生一个值)?
【发布时间】:2021-11-03 18:42:56
【问题描述】:

我想运行这个 Excel 公式:

=IFERROR(INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163<>"",0)),"")

但仅当单元格 B163 中的公式产生结果/值时。

我尝试了不同的公式,但单元格 X163 仍然会产生一个值,即使 B163 的公式没有产生值。

我尝试过的示例公式:

=IFERROR(IF(LEN(B163)<>"",(INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163<>"",0)),""),"")
=IFERROR(IF(B163<>0,(INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163<>"",0)),""),"")

换句话说,我想要 X163 中的一个公式,说明如果 B163 的公式产生一个值或不等于 0,则运行以“INDEX”开头的公式。最重要的是,把这一切都放在一个 IFERROR 语句中,因为这就是我对所有公式所做的事情。所以有很多嵌套的公式/语句。

如何让这个新条件覆盖其他条件?

【问题讨论】:

  • =IFERROR(IF(B163&lt;&gt;"",... Len 返回一个数字,它永远不会匹配 ""。如果这不起作用,请在 B163 中发布公式。
  • 正如@Scott Craner 所说,LEN 返回一个数字。我总是使用IF(LEN(A1 &gt; 0), ...。试试=IFERROR(IF(LEN(B163)&gt;0,(INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163&lt;&gt;"",0)),""),"")
  • 不幸的是,都没有用
  • B163中的公式是什么?
  • =IFERROR(INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163"",0)),"")

标签: if-statement excel-formula conditional-statements


【解决方案1】:

在您的第二个公式中删除IFERROR

根据您的描述使用: IF(OR(B163&lt;&gt;0,B163&lt;&gt;""),INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163&lt;&gt;"",0)),"")

【讨论】:

  • 谢谢,虽然忽略了B163的条件,还是会产生Index公式的结果。
  • B163的结果是什么? (我更改了值不等于 0 而不是等于的条件。我误读了问题。
  • 这有效!: =IFERROR(IF([@Total]>0,INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163"",0)),""), "")
【解决方案2】:

这些公式有效:

=IFERROR(IF(B163>0,INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163<>"",0)),""),"")

...或

=IFERROR(IF([@Total]>0,INDEX(Y163:AA163,MATCH(TRUE,Y163:AA163<>"",0)),""),"")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多