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