数据校验如何写:日期相差算月龄,不足一个月为0,

I5代表月龄

G5代表初始日期

初始日期与当前日前的差额

目前写的代码如下:

IF(I5 = DATEDIF(G5,FORMAT(TODAY(),"yyyy/M/d"),"M"),true,false)

FineReport lose 发布于 2022-7-1 17:03 (编辑于 2022-7-1 17:03)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
蒲公英FZLJLv5初级互助
发布于2022-7-1 17:27

问题描述的公式可以用这个试试IF(MONTHDELTA(G5,I5)<=FORMAT(TODAY(),"yyyy/M/d"),true,false)

如果是要计算月龄,不足一个月为0,如G5代表日期1(小)、H5代表日期2(大),则公式为

IF(H5>=(MONTHDELTA(G5,DATEDIF(G5,H5,"M"))),DATEDIF(G5,H5,"M"),DATEDIF(G5,H5,"M")-1)

最佳回答
0
CD20160914Lv8专家互助
发布于2022-7-1 17:10(编辑于 2022-7-1 17:32)

如果不足一个月的话,你想如何,,最后是要true还是false  ?

if(I5=int(DATEDIF(g5, today(), "D")/DAYSOFMONTH(today())),true,false)

  • lose lose(提问者) 但是我写出来,这个不足一个月也是1,不是为0,我就很奇怪,
    2022-07-01 17:14 
  • lose lose(提问者) 我想要的是初始日期如果为2022/6/30,当前日前2022/7/1 月龄应该为0,显示为true, 但是我这个校验公式月龄为0,显示为false,
    2022-07-01 17:15 
  • CD20160914 CD20160914 回复 lose(提问者) 那就直接不用这个函数吧。换一种方式吧。。。
    2022-07-01 17:16 
  • lose lose(提问者) 我单输出这个公式的时候,算出来的数就是为1,不是0:DATEDIF(G5,FORMAT(TODAY(),\"yyyy/M/d\"),\"M\")
    2022-07-01 17:16 
  • lose lose(提问者) 回复 CD20160914 有什么其他函数可以代替吗
    2022-07-01 17:17 
  • 3关注人数
  • 419浏览人数
  • 最后回答于:2022-7-1 17:32
    请选择关闭问题的原因
    确定 取消
    返回顶部