在 Excel 中计算某个月的天数,有几种常用且高效的方法,以下是几种最推荐的方式,按推荐程度排序:
使用 EOMONTH 函数(最推荐)
这是最常用、最简洁的方法。EOMONTH 函数可以返回指定日期前或后若干个月的最后一天的日期。
公式:
=DAY(EOMONTH(起始日期, 0))
示例:
假设 A1 单元格是日期 2026/2/1(2026年2月1日):
=DAY(EOMONTH(A1, 0))
结果: 29 (因为2026是闰年,2月有29天)
原理说明:
EOMONTH(A1, 0)返回该月的最后一天(2026/2/29)。DAY()函数提取该日期的“日”部分,即29
。
使用 EDATE 函数
通过计算“下个月的第一天”减去1天,得到本月最后一天。
公式:
=DAY(EDATE(起始日期, 1) - 1)
示例:
=DAY(EDATE(A1, 1) - 1)
结果: 同上,返回当月天数。
使用 DATEDIF 函数(较少用,但可行)
计算两个日期之间的天数差。
公式:
=DATEDIF(起始日期, EOMONTH(起始日期, 0), "d") + 1
或更简单的:
=DAY(EOMONTH(起始日期, 0))
注意:
DATEDIF主要用于计算月份或年份差,用于计算天数不如前两种直观,不推荐优先使用。
手动构建日期(适用于已知年月)
如果你只有年份和月份数字,而不是完整日期:
公式:
=DAY(DATE(年, 月+1, 0))
示例:
假设 A1=2026, B1=2(表示2026年2月):
=DAY(DATE(A1, B1+1, 0))
结果: 29
原理说明:
DATE(2026, 3, 0)会被 Excel 解释为“2026年3月0日”,Excel 会自动将其转换为“2026年2月29日”。DAY()提取出29。
常见场景示例
| 场景 | 公式 | 说明 |
|---|---|---|
| 计算当前月份天数 | =DAY(EOMONTH(TODAY(), 0))
|
自动获取今天所在月的天数 |
| 计算指定单元格月份天数 | =DAY(EOMONTH(A1, 0)) |
A1 为任意日期 |
| 计算某年某月天数(已知年、月) | =DAY(DATE(2026, 2, 0)) |
直接写死年月,或引用单元格 |
小贴士
- 闰年判断:上述方法自动处理闰年(如2026年2月29天,2026年2月28天),无需额外判断。
- 格式问题:确保你的日期单元格格式是“日期”格式,否则
EOMONTH可能无法正确识别。 - 中文环境:在简体中文 Excel 中,函数名仍为英文
EOMONTH、DAY等,无需翻译。
✅ 推荐首选:=DAY(EOMONTH(A1, 0)) 简洁、准确、兼容性好。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/482253.html



