IF(MONTH(DATE(A2,2,29))=2,"y","")和IF(COUNT(A2&"-2-29"),"y","")如何判断闰年
浅谈出口账务和excel函数 这两个公式都是 Excel 中判断闰年的技巧,原理如下:
公式1:IF(MONTH(DATE(A2,2,29))=2,"y","")
· DATE(A2,2,29) 试图构造 A2 年 2 月 29 日
· 如果 A2 是闰年:2月29日合法存在 → MONTH(...)=2 → 返回 "y"
· 如果 A2 是平年:2月29日不存在,Excel 自动进位到 3月1日 → MONTH(...)=3 → 返回 ""
· A2=2024(闰年)→ DATE(2024,2,29)=2024/2/29 → MONTH=2 → "y"
· A2=2023(平年)→ DATE(2023,2,29)=2023/3/1 → MONTH=3 → ""
公式2:IF(COUNT(A2&"-2-29"),"y","")
· A2&"-2-29" 把年份和 "-2-29" 拼成字符串,如 "2024-2-29"
· COUNT(...) 会尝试把这个文本当作日期/数字来计数:
· 如果这个日期真实存在(闰年)→ COUNT 返回 1(真)→ "y"
· 如果这个日期不存在(平年)→ COUNT 返回 0(假)→ ""
· A2=2024 → "2024-2-29" 是有效日期 → COUNT=1 → "y"
· A2=2023 → "2023-2-29" 不是有效日期 → COUNT=0 → ""
对比项 MONTH(DATE(...)) COUNT(A2&"-2-29")
⚠️ 注意:公式2依赖系统区域设置,在某些日期格式下(如月/日/年)可能误判,所以公式1更稳妥。
=IF(OR(AND(MOD(A2,4)=0,MOD(A2,100)<>0),MOD(A2,400)=0),"闰年","平年")
这符合闰年规则:能被4整除但不能被100整除,或能被400整除。