datevalue(a2)不能用吗
浅谈出口账务和excel函数 你的思路是对的,DATEVALUE 确实和 COUNT 的原理类似,都是把文本转成日期,但直接用 DATEVALUE(A2) 不行,原因如下:
A2 里通常只是一个年份数字(比如 2024),而不是完整日期。
· DATEVALUE("2024") → ❌ 报错 #VALUE!
· 因为 DATEVALUE 需要的是能识别的日期文本,如 "2024-2-29",单独一个年份它不认识。
=IF(ISNUMBER(DATEVALUE(A2&"-2-29")),"y","")
=IFERROR(IF(DATEVALUE(A2&"-2-29"),"y"),"")
· A2&"-2-29" → 拼成 "2024-2-29"
· 闰年:DATEVALUE("2024-2-29") 返回有效日期序列号 → ISNUMBER 为真 → "y"
· 平年:DATEVALUE("2023-2-29") 无法识别 → 报错 #VALUE! → 用 IFERROR 或 ISNUMBER 处理 → 返回 ""
COUNT(...) 返回 0(不报错) 直接当逻辑值用
DATEVALUE(...) 报错 #VALUE! 必须配 IFERROR/ISNUMBER
所以 COUNT 更省事(平年不报错),而 DATEVALUE 必须额外套一层容错函数。
=IF(MONTH(DATE(A2,2,29))=2,"y","") ← 最稳,不依赖文本格式
=IF(COUNT(A2&"-2-29"),"y","") ← 简洁,依赖区域设置
=IFERROR(IF(DATEVALUE(A2&"-2-29"),"y"),"") ← 你的思路,需容错
⚠️ 后两个都依赖系统的日期格式设置,DATE 那个最可靠。