即使公式评估为“FALSE”,自定义数据验证也会失败


-1

所以在我提出问题之前,我为标题措辞道歉。我无法找到适合我的问题的通用措辞。

我有一张Table.JPG中给出的表格 Table.JPG

我对DV1.JPG中显示的最后两列进行了自定义数据验证 DV1.JPG 和DV2.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中 FormEval.JPG

所以现在问题的动机;我正在努力确保更新日期, 大号 只有在成员的开始日期存在且此续订日期必须至少比开始日期开始的6个月时才能输入,最后它必须是一个大于开始日期的日期。 YEARFRAC 功能有效。

按照上面的续订ID, 中号 必须由用户设置,此续订ID必须是整数,并且只有在设置续订日期时才能输入此值。

根据我迄今为止所做的研究。该公式看起来很好,为什么它在某些情况下失败(即当依赖列为空时)?


我很难关注你的问题。您有很多公式似乎与您的问题无关,请准备一个最小的工作示例:只需要复制问题所需的信息。
Máté Juhász

我试图尽可能地描述性。如果您详细阅读问题的动机,然后再回到上面的数据,我认为它将变得更加清晰。然而,我能够引导你解决你可能遇到的任何误解。
MrMarho

Answers:


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


谢谢你的工作就像一个魅力,并感谢你描述为什么我的公式失败。
MrMarho
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.