【问题标题】:Excel IF formula for birth date range出生日期范围的Excel IF公式
【发布时间】:2015-03-11 14:45:57
【问题描述】:

我希望有人可以帮助我解决 If/Then 公式:

我需要一个公式来告诉我在单元格 B3 中输入的出生日期是否介于 2009 年 8 月 1 日至 2012 年 12 月 31 日之间的 12-24 个月之间。例如,2008 年 11 月 1 日出生的人在 2009-2012 年的 12-24 个月之间,因此该值应在单元格 D4 中返回“是”。如果孩子未满 12 个月或超过 24 个月,则 Cell 值为 no。

如果在单元格 B3 和单元格 B4 中有两个出生日期,并且在 2009 年 8 月 1 日至 2012 年 12 月 31 日期间,两者的年龄都在 6 岁以下,那么在单元格 D4 中的值也应返回“是”。例如,在单元格 B3 中输入的出生日期为 2005 年 11 月 1 日,在单元格 B4 中输入的出生日期为 2004 年 8 月 1 日,因此单元格 D4 中的值应为“是”。如果两个孩子都未满 6 岁,则单元格值为 No。

希望有人能帮帮我,

谢谢

【问题讨论】:

    标签: excel-formula


    【解决方案1】:

    我想我有一个解决方案,可以解决我所理解的您的问题。我使用B6B7 为您的范围保存年份。 B6 里面有 2009,B7 里面有 2012。

    =IF(B4="",IF(AND((DATE(B6,1,1)-B3)/30<=12,(DATE(B7,1,1)-B3)/30>=24),"Yes","No"),IF(AND((DATE(B7,1,1)-B3)/30>=72,(DATE(B7,1,1)-B4)/30>=72),"Yes","No"))
    

    稍微分解一下:

    测试B4中是否有日期

    =IF(B4=""
    

    如果不是,那么我们需要查看孩子在经期开始时是否小于 12 个月,在经期结束时是否大于 24 个月。 (使用 AND 让我们确保孩子在开始后 12 个月和结束前 24 个月转过身)

    IF(AND((DATE(B6,1,1)-B3)/30<=12,(DATE(B7,1,1)-B3)/30>=24),"Yes","No")
    

    如果有 2 个日期,则检查两个孩子到结束日期是否都小于 72 个月 (B7)。

    IF(AND((DATE(B7,1,1)-B3)/30>=72,(DATE(B7,1,1)-B4)/30>=72),"Yes","No")
    

    【讨论】:

    • 日期范围的开始日期是 8 月 2009 年 1 月,而不是 1 月。此外,除以 30 来计算月份可能不足以满足 Lily 的需求。一个准确到今天的解决方案会更好。另外,如果两个“婴儿”都是 40 岁,您的公式将返回“是”。
    【解决方案2】:

    在创建 Excel 公式之前,您首先通过做一些数学运算来简化问题。

    日期范围内最小的孩子在 2012 年 12 月 31 日正好是 12 个月大,因此生日应该是 2011 年 12 月 31 日。

    日期范围内最大的孩子在 2009 年 8 月 1 日正好是 24 个月大,生日是 2007 年 8 月 1 日。

    此公式将检查特定范围内的日期:

    =IF(AND(B3>=DATE(2007,8,1),B3<=DATE(2011,12,31)),"Yes","No")
    

    您需要仔细检查您的边界条件。例如,如果孩子正好在 2009 年 8 月 1 日过完 1 岁生日,您还想包括他们吗?如果不是,请将&gt;= 更改为&gt;

    第二个问题也是四个日期比较的 AND'ing,您现在可以解决了。 唯一棘手的是当 B3 或 B4 为空白时。对于日期比较,空白或 0 相当于 1899 年 12 月 31 日。这将使当前年龄超过 100 岁,这将无法通过年龄测试。

    【讨论】:

      【解决方案3】:

      Excel 将日期识别为数值。以下是我定义的日期范围。我需要开发一些可以根据日期范围标准引用不同 VLOOKUP 数据的东西。这可以在一个大公式中全部使用,您只需根据需要随时添加。可能有很多方法可以写这个。

      这是另一种方式:

      "=IF(ISBLANK(C[-7]),""""," & _
      "IF(AND(C[-7]>=42571,C[-7]<=42572),(VLOOKUP(C[9],'C:\Users\etabakman\Desktop\[BillNet Master List - current.xlsx]07-20-2016'!C39:C41,2,FALSE))," & _
      
      "IF(AND(C[-7]>=42573,C[-7]<=42582),(VLOOKUP(C[9],'C:\Users\etabakman\Desktop\[BillNet Master List - current.xlsx]07-22-2016'!C39:C41,2,FALSE))," & _
      
      "IF(AND(C[-7]>=42583,C[-7]<=42586),(VLOOKUP(C[9],'C:\Users\etabakman\Desktop\[BillNet Master List - current.xlsx]08-01-2016'!C39:C41,2,FALSE))," & _
      
      "IF(AND(C[-7]>=42587,C[-7]<=42593),(VLOOKUP(C[9],'C:\Users\etabakman\Desktop\[BillNet Master List - current.xlsx]08-05-2016 V2'!C39:C41,2,FALSE))," & _
      
      "IF(AND(C[-7]>=42594,C[-7]<=42735),(VLOOKUP(C[9],'C:\Users\etabakman\Desktop\[BillNet Master List - current.xlsx]BillNet Master list'!C39:C41,2,FALSE))))))))"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-07
        • 1970-01-01
        相关资源
        最近更新 更多