【问题标题】:Excel: Count months in interval separated by yearExcel:以年份分隔的间隔计算月份
【发布时间】:2014-05-13 14:47:58
【问题描述】:

我需要创建一个包含两列的电子表格:最初的月份/年份和最后的月份/年份。 然后我还有五列:2009 | 2010 | 2011 | 2012 | 2013
这五列下面的行将包含该年间隔中的月数。如果我有 2009 年 1 月 - 2011 年 2 月,结果将是:

2009 - 12
2010 - 12
2011 - 2
2012 - 0
2013 - 0

我可以不使用宏吗?

【问题讨论】:

    标签: excel date


    【解决方案1】:

    日期在 A2 和 B2 中,年份仅在 C1 中,在 C2 中尝试这个公式(如果需要,可以向下)

    =IFERROR(DATEDIF(MAX($A2,DATE(C$1,1,1)),MIN($B2,DATE(C$1,12,31)),"m")+1,0)

    【讨论】:

      【解决方案2】:

      这个公式应该有效:

      =IF(ROUNDUP(($B2-C$1)/30;0)>12;12;IF(ROUNDUP(($B2-C$1)/30;0)<0;0;ROUNDUP(($B2-C$1)/30;0)))
      

      此公式认为 A2 中的开始日期和 B2 中的结束日期均为日期格式,您可以使用自定义单元格格式 (mmmm/yyyy),因此它看起来像 2009 年 1 月。将此公式放入 C2 中,其标题(单元格 C1)应为日期格式(01-01-2009)的 2009。您可以使用自定义单元格格式 (yyyy),使其看起来像 2009。

      现在水平拖动这个公式,其标题分别是日期格式的2010,2011。

      如果您遇到任何问题,请告诉我

      请注意,您可能需要将公式中的分号 (;) 更改为逗号 (,)

      【讨论】:

      • 无论开始日期是什么,您的公式都会返回 12 作为第一年的月数。我在您的公式中没有看到对 A2 的引用
      【解决方案3】:

      鉴于 C1:g1 中的年份(根据需要更改),您可以试试这个公式:

      =SUMPRODUCT(N(YEAR(EDATE(Initial_Month_Year,ROW(INDIRECT("1:" &1+DATEDIF(Initial_Month_Year,Final_Month_Year,"m")))-1))=C$1))
      

      在某个单元格中输入它,例如C2,并根据需要向右填充。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-23
        • 1970-01-01
        • 2012-06-06
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多