【问题标题】:Combining Multiple If Statements for Growth Rate Calculation组合多个 If 语句进行增长率计算
【发布时间】:2021-02-16 11:30:26
【问题描述】:

尽管我将自己描述为高级 Excel 用户,但在 Excel 中解决以下任务时遇到了一些问题。

我正在处理的表格与屏幕截图中显示的表格大致相同。任务是计算某些值的增长率,例如收益。但是,在计算增长率时需要满足一些条件。

您会在下面找到一个表格,其中包含我正在寻找的条件。

我会非常感谢任何提示或解决这个问题...

非常感谢您的帮助!

【问题讨论】:

  • 为每个条件创建单独的 if 语句并不是什么大不了的事......但我已经花了两三个小时尝试组合这些单个 if 语句。
  • 显示您的公式。通常只需确定测试的优先级,并按该顺序排列公式即可。在 Excel 工作表上,IF 将在 logical_test=TRUE 时停止。

标签: excel if-statement excel-formula


【解决方案1】:

我可以稍微接近要求,但不完全(见下图中的最后一行)。

这里逻辑测试的顺序很重要 + 您必须修改第二个条件以包括分子不为零的可能性。

这是声明。我已经在 libre-office 中对其进行了测试,但也应该在 excel 中工作。

=IF(A1=A2,IFS(OR(ISBLANK(C1),ISBLANK(C2)),"NULL",AND(C2<=0,C1<>0),"NULL",AND(C2=0,C1=0),"0.00%",AND(C2>0,C1<=0),"-100%",AND(C1>0,C2>0),(C1-C2)/C2*100),"First Year")

输出如下。

根据@RonRosenfeld 的好建议进行编辑

新公式。

IF(A1=A2,IFS(OR(ISBLANK(C1),ISBLANK(C2)),"NULL",AND(C2<=0,C1<>0),"NULL",AND(C2=0,C1=0),"0.00%",AND(C2>0,C1<=0),"-100%",AND(C1>0,C2>0),(C1-C2)/C2*100),IF(ISBLANK(A2),"","First Year"))

更新后的表格如下所示

在 OP 添加新的子问题后编辑。

怀疑原因是单元格中的空格,否则看起来是空白的。如果是这种情况,那么下面的“可能”工作。

=IF(A1=A2,IFS(OR(C1=REPT(" ",LEN(C1)),C2=REPT(" ",LEN(C2)),ISBLANK(C1),ISBLANK(C2)),"NULL",AND(C2<=0,C1<>0),"NULL",AND(C2=0,C1=0),"0.00%",AND(C2>0,C1<=0),"-100%",AND(C1>0,C2>0),(C1-C2)/C2*100),IF(ISBLANK(A2),"","First Year"))

【讨论】:

  • 您可以通过使用初始条件if(isblank(a2),"", ...来更正最后一行
  • @RonRosenfeld 谢谢。编辑答案
  • 非常感谢你们两位!我非常感谢您的帮助。据我所知,您的解决方案运行良好。
  • 还有一个问题:我从一位同事那里获得了包含所有数据的表,该同事从数据库中复制了该表。如果我应用您的公式,每次它引用一个空单元格时都会收到一条错误消息。这些单元格实际上是空的,但我只能在单击空单元格并按键盘上的“删除”按钮时解决这个问题。有没有办法可以“格式化”所有单元格来解决这个问题?我的表格有数千行,无法为所有空单元格按“删除”按钮。
  • @MSC 更新我的猜测解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-12
  • 1970-01-01
  • 2022-01-19
相关资源
最近更新 更多