0

我一直在为我正在处理的文档创建一个嵌套的 IF,但是我已经设法制作了两个不同的 IF 语句,它们都可以工作,但它们需要合并。

与其相关的信息是:

      J           K          L          M        N
23  Start        End                           Cloud
24  01/04/2014             cloud                Yes
25  03/03/2014             Overdue      
26  22/05/1992             cloud                Yes
27  03/03/2014             Overdue      
28  01/07/2014             cloud                Yes
29  29/06/2014             On Time      
30  03/03/2014  10/03/2014 Complete              Yes

我目前拥有的两个 IF 是:

此 If 语句首先查看 End 列是否已填充,如果已填充,则项目已完成并且可以显示在 L 列中。然后它在 ciolumn J 中获取开始(日期)并添加 10 个工作日,然后比较它到今天的日期,看看项目是否逾期或按时。

=IF(NOT(ISBLANK(K25)),"Complete",IF(WORKDAY(J25,10)<TODAY(),"Overdue","On Time"))

此 IF 语句查看 Cloud 列 (N) 中是否存在 Yes(如果有),然后将开始日期添加 20 个工作日,然后将其与今天的日期进行比较,以查看项目是否逾期或按时。

=IF(AND(N26 = "Yes", (WORKDAY(J26,20)<TODAY())),"Overdue", "On Time")

所以我正在寻找的是这两者的结合,但我总是得到一个错误或一个对许多论点说的消息。

它需要做的是:1)查看它们是否是和结束日期,如果有设置列 L 来完成 2)查看云列中是否有一个是,如果是这样,将开始日期添加 20 个工作日比较今天的日期并将 L 列设置为逾期或准时 3) 如果云列为空,则在开始日期添加 10 个工作日,然后与今天的日期进行比较,并将 L 列设置为逾期或准时。

任何帮助都是极好的!!!

4

1 回答 1

1

您的组合公式的问题很简单。在 Excel 中执行复杂IF语句时,我发现使用制表符嵌套它们会有所帮助

=IF(NOT(ISBLANK(K26)),
  "Complete",
IF(AND(N26 = "Yes", (WORKDAY(J26,20)<TODAY())),
  "Overdue",
"On Time",
IF(WORKDAY(J26,10)<TODAY(),"Overdue","On Time")))

对于 Excel IF 语句,为了成功嵌套它们,它们必须采用IF(Condition,Value,Else IF). 您会注意到您的第二IF条语句是IF(Condition,Value1,Value2,Else IF). 显然这不起作用,因为IF只能接受 2 个参数。看来您有两种情况要处理 if Cloud = Yes,因此我们需要在嵌套时更加小心。一种方法是不使用条件并将语句AND嵌套在我们的第一个值位置。IF

=IF(NOT(ISBLANK(K26)),
   "Complete",
 IF(N26 = "Yes",                    
   IF(WORKDAY(J26,20)<TODAY(),      
     "Overdue",
     "On Time"),
 IF(WORKDAY(J26,10)<TODAY(),
     "Overdue",
     "On Time")))

在第二个专业IF中,我们将Cloud = "YESonIF语句的所有逻辑分组。然后,如果这不是真的,我们执行基本的 10 天检查。这是非嵌套形式的完整公式。如果我误解了什么,请告诉我。

=IF(NOT(ISBLANK(K26)),"Complete",IF(N26 = "Yes",IF(WORKDAY(J26,20)<TODAY(),"Overdue","On Time"),IF(WORKDAY(J26,10)<TODAY(),"Overdue","On Time")))

为了清楚起见,我将日期切换为 M/D/Y,这些是我使用基于今天日期(2014 年 7 月 11 日)的公式得出的结果。

4/1/2014                Overdue         Yes
3/3/2014                Overdue     
5/22/1992               Overdue         Yes
3/3/2014                Overdue     
7/1/2014                On Time         Yes
6/29/2014               On Time     
3/3/2014    10/3/2014   Complete        Yes

编辑:表格公式

这是上面表格格式的公式,带有以下标题/列

Start       End         Status      Cloud
4/1/2014                Overdue     Yes
3/3/2014                Overdue 
5/22/1992               Overdue     Yes
3/3/2014                Overdue 
7/1/2014                On Time     Yes
6/29/2014               On Time 
3/3/2014    10/3/2014   Complete    Yes

公式

=IF(NOT(ISBLANK([@End])),"Complete",IF([@Cloud] = "Yes",IF(WORKDAY([@Start],20)<TODAY(),"Overdue","On Time"),IF(WORKDAY([@Start],10)<TODAY(),"Overdue","On Time")))
于 2014-07-11T12:58:51.700 回答