要处理许多if语句

时间:2016-10-21 07:56:59

标签: excel excel-formula

我想要一份关于评估项目进展情况的表格。

当前日期(今天())

列(无法在此处制作表格)

日期1,是发送初始请求的时间 日期2,是第一次提醒发送的时间 日期3,是第二次提醒发送的时间 日期4,是评估已经收到的时间。

我想要一个在需要操作时给出值的字段。 (这是我可以为它指定一个条件格式规则) 这些是行动规则:
- 日期4为空 和
- 日期1超过7天前(if(currentdate-date 1)> 7,1,0)
(这是容易的部分,现在是我开始迷路的部分) 如果有日期2:
- 日期2小于7天前 - 没有行动
- 日期2超过7天前 - 需要采取行动
如果有日期3:
- 日期3小于7天前 - 没有行动
- 日期3以上7天前 - 需要采取行动

最后我只想要1个单元格,表示1或0表示动作/无动作。

我尝试制作一长串if,但这不起作用。我曾尝试在单独的细胞中制作它,但无法使其发挥作用。

2 个答案:

答案 0 :(得分:0)

你可以嵌套它们:)如果翻转>

,它似乎更容易阅读
if(currentdate - date1 < 7, "No Action", if(currentdate - date2 < 7, "No Action", if(currentdate - date3 < 7, "No Action", "Action")))

答案 1 :(得分:0)

我假设你想使用公式。我建议您编写一个用户定义的函数,而不是嵌套许多If - 公式。

该功能可以像任何Excel-Formula一样使用,除了您需要使用*.xlsm文件扩展名保存工作簿之外。

另请注意,您解释了如果DateDiff>7<7该怎么办,但没有提及应该做什么,日期恰好是7天过去 - 因此这不包括在下面的公式中。 ;)

将其粘贴到“ThisWorkbook”模块中,并像使用任何普通公式一样使用ActionRequired

Public Function ActionRequired(Optional date1 As Date = 0, Optional date2 As Date = 0, Optional date3 As Date = 0, Optional date4 As Date = 0) As Boolean

If date4 = 0 And DateDiff("d", date1, Now) > 7 Then

    If Not DateDiff("d", date2, Now) < 7 Then
        ActionRequired = True
        Exit Function
    End If

    If Not DateDiff("d", date3, Now) < 7 Then
        ActionRequired = True
        Exit Function
    End If

End If

End Function

这并不是说嵌套If - excel公式不起作用(确实如此),但根据我的经验,这样的东西很容易出错,因为它变得很混乱(另外,你的公式存储在100个单元格中 - 使用UDF,它只存储在一个地方 - 代码 - 并且只在单元格中调用)