因此,在提问之前,我要为标题的措辞道歉。我无法找到适合我问题的通用措辞。
我对 DV1.JPG 中显示的最后两列进行了自定义数据验证DV1.JPG和DV2.JPG。
单元格中的公式L3是
=AND(NOT(ISBLANK(K3)),ISNUMBER(L3),LEFT(CELL("format",L3),1)="D",L3>=K3, YEARFRAC(K3, L3)>=0.5 )
公式M4是
=AND(INT(M4)=M4, NOT(ISBLANK(L4)))
两个公式都失败了,如下所示,数据验证不应该允许我输入该用户条目,但事实并非如此。公式评估的图像显示在 FormEval.JPG 中。
现在问题的动机是,我试图确保续约日期,柱子大号仅当会员有开始日期时才可以输入,并且此续订日期必须距离开始日期至少 6 个月,最后,它必须是一个晚于开始日期的日期,因为年份分数功能有效。
按照上述方法更新ID,柱子米必须由用户设置,并且此续订 ID 必须是整数,并且只有在设置了续订日期时才可以输入此值。
根据我目前所做的研究。公式看起来不错,那么为什么在某些情况下会失败(即当依赖列为空时)?
答案1
对于 L3 中的 L 列使用:
=AND(COUNTA($K3),$L3>=EDATE($K3,6))
对于 M3 中的 M 列使用:
=AND($M3-INT($M3)=0,COUNTA($L3))
当测试空日期时,Excel 会将 0 转换为 01-01-1900,这就是验证无法使用 isblank() 的原因,
并且 Edate 会在日期上添加 6 个月
如果单元格非空,则 CountA 计算结果为 True