电子表格 |使用日期的嵌套 IF 语句

标签 excel date if-statement excel-formula multiple-conditions

我正在尝试计算 2019 年给定时间范围内的月数。

我的数据如下所示:

enter image description here

我将开始日期和结束日期列的格式更改为“日期”。 “以月为单位的持续时间”和输出列具有数字格式。

我接近它如下:

  • 如果开始日期(年)< 2019 AND 结束日期(年)= 2019,则取 2019 年 1 月 1 日与结束日期之间的月数。
  • 如果开始日期(年)< 2019 AND 结束日期(年)> 2019,则 2019 年的月数 = 12
  • 如果开始日期(年)= 2019 和结束日期(年)= 2019,则取开始日期和结束日期之间的月数。
  • 如果开始日期(年)= 2019 并且结束日期(年)> 2019,则取开始日期和 2020 年 1 月 1 日之间的月数。
  • 对于所有其他情况,月数 = 0。

  • 然后我按照 this website 的说明进行操作。对于嵌套的 IF 函数。

    我想出了以下公式:(编辑:将 last datedif 更改为 2020 而不是 2019)
    =IF(AND(YEAR(A3)<2019;YEAR(C3)=2019);DATEDIF(DATE(2019;1;1);C3;"m");IF(AND(YEAR(A3)<2019;YEAR(C3)>2019);12;IF(AND(YEAR(A3)=2019;YEAR(C3)=2019);DATEDIF(A3;C3;"m");IF(AND(YEAR(A3)=2019;YEAR(C3)>2019); DATEDIF(A3;DATE(2020;1;1);m);0))))
    

    对于前 4 行,它正确返回 12。
    但是,对于第 7 行和第 8 行,它返回 #NAME? .

    无论我尝试什么,我似乎都无法让它发挥作用。关于如何解决这个问题的任何想法?

    非常感激!

    艾米

    最佳答案

    对于整个公式,除了最后一个 IF 语句之外,您在 DATEDIF( 中出错的地方是一致的。陈述:

    DATEDIF(A3;DATE(2019;1;1);m);0)
    

    首先你忘了把 m引号:"m"
    其次,你不小心交换了日期和单元格引用,所以它会解决 #NUM .完整正确的公式应该是:
    =IF(AND(YEAR(A7)<2019;YEAR(C7)=2019);DATEDIF(DATE(2019;1;1);C7;"m");IF(AND(YEAR(A7)<2019;YEAR(C7)>2019);12;IF(AND(YEAR(A7)=2019;YEAR(C7)=2019);DATEDIF(A7;C7;"m");IF(AND(YEAR(A7)=2019;YEAR(C7)>2019);DATEDIF(DATE(2019;1;1);A7;"m");0))))
    

    这会给你结果4 .

    关于电子表格 |使用日期的嵌套 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59285039/

    相关文章:

    java - 使用 Apache POI 设置 Excel 工作表散点图标记图标的颜色

    c# - 如何使用 C# 在 Excel 中禁用剪切、复制和粘贴选项?

    excel - 使用批处理文件重命名和格式化 Excel 工作表

    sql - 更新 SQL Server 中的所有日期列 -1 天

    android - 在 Android Studio 上使用 Calendar.getInstance() 时如何插入和填充日期时间

    r - 循环遍历一个向量,创建一个新变量,该变量是第一个向量减去其他 2 个向量(当它们都不为 NA 时)

    php - 在 HH :MM format with HH greater than 24 hours 中使用 PHPExcel 计算 Excel 总小时数

    android - jackson 在反序列化期间更改日期

    php - PHP 变量字符串中的 IF/ELSE 语句

    python - 为什么本应为 28 的结果却是 30?