将 Excel 中的两个长 IF 语句合并为一个公式

将 Excel 中的两个长 IF 语句合并为一个公式

通过复制其他公式/本论坛上的一些帮助/博客,我设法为自己创建的报告编写了一个公式,该公式基本上采用开始日期和行条目的持续时间,然后返回介于开始日期和结束日期之间的单独月份列中的数字 0.33。

根据行条目的类别,我还需要一些条目返回相关月份的 0.2 而不是 0.33。我已设法更改公式的相关部分以执行此操作,因此可以手动将该公式复制到相关单元格,但理想情况下,我希望将这两个公式合并为一个公式,该公式可应用于整个工作表,使其尽可能自动化。我尝试过自己合并它们,但我尝试的所有方法都返回错误。

两个不同的公式是:

=IF($L2=1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),"")

=IF($L2=3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""),"")

基本上,如果 L 列中的数字为 1,我希望相关月份列返回 0.33;如果 L 列中的数字为 3,我希望相关月份列返回 0.2。如果数字不是 1 或 3,那么我希望月份单元格为空白。

请您帮我把这些IF语句合并起来好吗?

如果您需要更多信息,请告诉我。

答案1

一个简单的方法是使用SWITCH功能。

看起来您正在使用$L2一个开关,具体取决于它是 1 还是 3。无需深入研究您的公式,以下方法应该有效:

=SWITCH($L2,1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""))

请注意,我没有测试它,这只是运行任一IF语句的条件。可能有更好的方法来组合它们。

更经典的方法是嵌套 if 语句。您可以这样理解:如果不是 1,则检查是否为 3,如果不是 3,则不执行任何操作。

=IF($L2=1,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.33,""),IF($L2=3,IF(AND(AH$1>=DATE(YEAR($N2),MONTH($N2),1),AH$1<=DATE(YEAR($N2),MONTH($N2)+($O2-1),1)),0.2,""),""))

相关内容