首页 文章

Excel 2010:嵌套的IF语句

提问于
浏览
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中获取start(date)并添加10个工作日然后比较这个到今天的日期,看看项目是否过期或正常运行 .

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

此IF语句查看 Cloud 列(N)中是否存在“是”(如果有)然后将20个工作日添加到开始日期,然后将其与当前日期进行比较,以查看项目是否已过期或准时 .

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

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

它需要做的是:1)如果设置了列L来完成,看看它们是和结束日期2)看看 Cloud 列中是否有“是”,如果这样,则将20个工作日添加到开始日期比较到今天的日期并将列L设置为过期或按时3)如果 Cloud 列为空,则将10个工作日添加到开始日期,然后与今天的日期进行比较,并将列L设置为过期或开启时间 .

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

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个参数 . 如果 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 中,我们在 IF 语句下对 Cloud = "YES 的所有逻辑进行了分组 . 如果那不是真的,我们会进行基本的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
    

    EDIT: Table Formulas

    以下是Table format中的公式,其中包含以下 Headers /列

    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")))
    

相关问题