当前位置: 首页 > 知识库问答 >
问题:

返回月份差异的Excel函数?

危文乐
2023-03-14

我有一个有开始日期和结束日期的工作表。我需要得到这些日期之间的月数。我用公式< code > = MONTH(B1)-MONTH(A1)得到了那个#。然而,当我的日期跨越多年时,这个公式就失效了——如果开始日期是2014年1月1日,结束日期是2015年1月1日,那么当我想得到“12”时,它会返回“1”。

然后我尝试DATEDIF(A1, B1,"m")来获取日期之间的月份数,并且成功了。但是,我的问题可以用以下示例总结:

开始日期: 1/5/2014

结束日期: 3/1/2014

“MonthDif”: 2

日期视频: 1

开始日期: 1/5/2014

结束日期:2014年3月10日

“MonthDif”: 2

日期:2

如您所见,< code>DATEDIF函数返回完整的月份数,而我的< code>month - month函数返回开始日期和结束日期之间的差值“占用”的月份数,而不管它们是否是完整的月份。

我需要在任何日期段内的月数,无论是完整的月数!基本上,我需要确切的MONTH(B1)-MONTH(A1)返回的值,除非它可以工作多年。

此外,我还考虑设计一个自定义VBA函数来实现上述功能。如果有人有任何建议。

共有3个答案

魏宸
2023-03-14

我需要MONTH(B1)-MONTH(A1)返回的确切内容,除了它可以工作多年。

好吧,好吧,冒着说出显而易见的风险:

=MONTH(B1)-MONTH(A1) + 12*(YEAR(B1)-YEAR(A1))

基本原理:一年由十二个月组成。

於宾白
2023-03-14

假设B1包含您的结束日期,A1包含您的开始日期,

=IF(DAY(B1)>=DAY(A1),0,-1)+(YEAR(B1)-YEAR(A1))
*12+MONTH(B1)-MONTH(A1)
傅朝
2023-03-14

如果您使用DATEDIF,但总是从第一个月的1号开始计数,您将获得所需的内容,例如,如果您使用=A1-Day(A1)1,这将为您提供A1月的第一个月,因此在DATEDIF中使用它,如下所示

=日期(A1-DAY(A1)1,B1,“m”)

 类似资料:
  • 问题内容: 有什么办法可以找到PHP中月份的差异?我输入的日期是2003年10月17日到2004年3月24日。我需要找出这两天内有多少个月。假设6个月,我只需要几个月的输出。感谢您指导我的工作日差。 我通过My​​SQL找到解决方案,但我在PHP中需要它。有人帮助我,谢谢。 问题答案: 这是一个快速的:

  • 问题内容: 我想计算两个日期时间字段之间的月份数。 有没有比获得unix时间戳和除以2592 000(秒)并在MySQL中四舍五入更好的方法了? 问题答案: 该DATEDIFF功能可以给你的天数两个日期之间。由于…您如何定义一个月,哪个更准确?(28、29、30或31天?)

  • 问题内容: 所以我在这里呆了几个小时,它返回正确的Year和Day,但是由于某种奇怪的原因,它返回了错误的月份。我确定它是一个简单的修复程序,但我似乎无法弄清楚。 问题答案: 要获得本月的1-12数字: 最好指定所需/预期的时区。 类似地,呼叫和。 细节 它返回错误的月份 就像其他人所说的,在 1月至12月的 几个月中,他们疯狂地编号为0-11, 而不是1-12。在旧的日期时间类中,许多糟糕的设计

  • 问题内容: 执行以上代码段后,month的值为10而不是11。 问题答案: 月份从0而不是1索引,因此10是11月,而11是12月。

  • 所以我已经研究了几个小时了,它返回了正确的年和日,但是由于一些奇怪的原因,它返回了错误的月份。我确信这是一个简单的修复,但我似乎无法解决这个问题。

  • 问题内容: 如何计算JavaScript中两个Date()对象的差异,而只返回差异中的月数? 任何帮助将是巨大的:) 问题答案: “差异中的月数”的定义要经过很多解释。:-) 您可以从JavaScript日期对象获取年,月和日。根据您要查找的信息,可以使用这些信息来计算两个时间点之间有多少个月。 例如,现成的,它找出两个日期之间有多少 整月 ,而不计算部分月份(例如,不包括每个日期所在的月份):