在 Excel 中获取某个月的天数,主要有以下几种常用且高效的方法,你可以根据具体需求选择:
使用 EOMONTH 函数(最推荐)
这是最常用且逻辑清晰的方法。EOMONTH 函数用于返回指定日期前或后指定月份的最后一天。
公式:
=DAY(EOMONTH(A1, 0))
- A1:包含月份日期(如
2026/2/1)或年份/月份数字的单元格。 - 0:表示返回当月最后一天。
- DAY():提取该日期的“日”部分,即为当月天数。
✅ 优点:自动处理闰年(2月29天)和平年(2月28天)。
使用 DAYS 函数(Excel 2013 及以上版本)
计算两个日期之间的天数差。
公式:
=DAYS(EOMONTH(A1, 0), A1) + 1
- 计算从当月1号到当月最后一天的天数。
直接输入日期构造法
如果你知道年份和月份,可以直接构造日期。
假设:
- A1 是年份(如 2026)
- B1 是月份(如 2)
公式:
=DAY(DATE(A1, B1+1, 0))
DATE(2026, 3, 0)会被 Excel 解释为“2026年3月0日”,即 2026年2月的最后一天。DAY()提取出天数。
✅ 优点:无需引用具体日期单元格,只需年、月数字即可。
使用 NETWORKDAYS.INTL 或 WORKDAY(不推荐用于纯天数)
这些函数主要用于工作日计算,不适合直接获取自然月天数。
示例说明
| 单元格 A1 (日期) | 公式 | 结果 | 说明 |
|---|---|---|---|
| 2026/2/1 | =DAY(EOMONTH(A1,0)) |
28 | 2026年2月有28天 |
| 2026/2/1 | =DAY(EOMONTH(A1,0)) |
29 | 2026年是闰年,2月有29天 |
| 2026/1/1 | =DAY(EOMONTH(A1,0)) |
31 | 1月有31天 |
| 2026/4/1 | =DAY(EOMONTH(A1,0)) |
30 | 4月有30天 |
小贴士
- 确保 A1 单元格中的日期是 真正的日期格式,而不是文本,A1 是文本(如 “2026年2月”),需先用
DATEVALUE或TEXT函数转换。 - A1 只是年份和月份(如 2026 和 2 分别在 A1 和 B1),推荐使用 方法三:
=DAY(DATE(A1,B1+1,0))。
如有其他 Excel 问题,欢迎继续提问!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/483521.html
