相关疑难解决方法(0)

寻找缩短 IF 公式的解决方案

我有一个具有以下结构的长公式:

=IF(!X!<>0,!X!+A1,"")
Run Code Online (Sandbox Code Playgroud)

哪里!X!是一个很长的公式。

有什么解决方案可以避免重复 !X! 两次?我需要它有两个原因:

  1. 使公式对工作表的用户可读
  2. 减少处理时间

我很感激任何帮助。

谢谢,迪奥

worksheet-function microsoft-excel

9
推荐指数
2
解决办法
3310
查看次数

Excel IFBLANK 相当于 IFERROR

IFERROR效果很好,因为它通过默认行为显着缩短了公式,如果不满足条件(无错误)则返回结果。我正在寻找IFBLANK此行为的版本,即如果不满足条件(非空白)则返回结果。

假设我有一个复杂的多行公式作为“核心公式”。我可以用来=IFERROR(Core Formula, "")处理错误。

我想要类似的东西=IFBLANK(Core Formula, "")

我知道我可以用 来做到这一点=IF(Core Formula="","",Core Formula),但如果我的“核心公式”确实很复杂且冗长,“如果公式”会使我的公式长度加倍,并使遵循/跟踪/修改变得极其困难,特别是当需要审查公式时由其他贡献者提供。

PS 我总是必须处理由具有不同含义的零和空格组成的数据。

worksheet-function microsoft-excel microsoft-excel-2016 blank

7
推荐指数
1
解决办法
1136
查看次数

仅显示符合给定条件的公式结果

我喜欢保持我的 Excel 电子表格相当干净。所以,很多时候我最终会写出这样的语句:

IF([formula x]=[value],"",[formula x])
Run Code Online (Sandbox Code Playgroud)

本质上说的是,如果公式与给定的条件匹配,则不显示结果 - 否则,显示结果。

在某些情况下,[formula x]向下重复一整列单元格,并且每个单元格都有一个[formula x]指向其上方单元格的引用。为了避免公式错误,我必须添加另一个图层,如下所示:

IF(C2="","",IF([formula x]=[value],"",[formula x])
Run Code Online (Sandbox Code Playgroud)

但是,特别是当[formula x]很长时,这可能导致最终公式看起来比实际复杂得多,并且比应有的情况更难进行故障排除和维护。

这是一个可怕的例子......

基本公式:

=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)
Run Code Online (Sandbox Code Playgroud)

添加条件消隐:

=IF(C2="","",IF(IF(A3>=$E$11,C2+(C2*($F$2/12)-$E$9),C2+(C2*($F$2/12))-$E$7)<=0,"",IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)))
Run Code Online (Sandbox Code Playgroud)

一个已经很长的公式的大小增加了一倍多,这样当相同的公式满足给定条件时,我可以显示一个空白(或任何其他选定的值)。如果我尝试在整行中执行此操作,根据起始公式,我很容易遇到循环引用错误。

有什么方法可以自引用同一单元格中的现有公式或参数,或者可以使用其他函数或功能来更干净地实现此结果?

执行我正在寻找的功能的函数可能是这样的:

=FnName([base formula],[match condition],[condition result])
Run Code Online (Sandbox Code Playgroud)

参数 1 是基本公式,参数 2 是我有兴趣匹配的条件。参数 3 是条件匹配时显示的结果。在条件不匹配的情况下,函数返回基本公式的结果。

worksheet-function microsoft-excel

6
推荐指数
1
解决办法
7万
查看次数

Excel将一行变成多行

我有多个商品可在多个配送中心(即多对多关系)中使用。目前每个项目有一行,每个配送中心有一列。该行对项目在小区 X和集散地列 Ÿ标记与配送中心的代码Ÿ如果项目 X可用那里,否则留空。具有多个配送中心的项目将有多个配送中心代码(在它们各自的列中)。所以当前工作表看起来像:

    |   A    |         B         |*|                      S-AJ                      |
1   |  ID #  |   Description     |…|              Distribution Centers              |
2   |   17   |   Ginkgo Biloba   |…|      |      |      |      |      |      |  SE  |
3   |   42   |   Ginseng         |…|      |  MP  |  MS  |      |  NW  |      |      |
                     ?
Run Code Online (Sandbox Code Playgroud)

C通过R包含与此问题无关的项目的其他属性,例如 UPC 代码、成本和价格。我实际的表有18个配送中心,横跨列S通过AJ; 我将其缩小以使示例适合 Stack Exchange 的窗口。

我需要有一个配送中心列,每行有一个配送代码,然后根据需要为当前包含多个代码的项目复制行。结果应如下所示:

    |   A    |         B         |*|   S …
Run Code Online (Sandbox Code Playgroud)

microsoft-excel

6
推荐指数
1
解决办法
9409
查看次数