2017-08-16 132 views
2

以我Worksheet我有一个Table和要定义Data validation的是,包含的日期的列,波纹管:如何在自定义数据验证中使用用户定义的函数?

=S2M(B2)<>"Error" 

在上面,S2M()是用于将日期从Persian dateGregorian date一个用户定义的功能,因为检查输入日期是否正确。

但是,excel不让我使用自定义Data validation中的用户定义函数。

此错误显示:找不到指定的命名范围。

请注意,我在Custom Data validation中使用波纹管代码,这是正确的。

=AND(LEN(B2)=10;ISNUMBER(IFERROR(VALUE(MATCH(VALUE(MID(B2;1;4));INDIRECT("intTable[Year]");0)&MATCH(MID(B2;6;2);INDIRECT("intTable[Mounth]");0)&MATCH(MID(B2;9;2);INDIRECT("intTable[Day]");0));FALSE))) 

解释是波斯日期例如:1396年5月25日

感谢。

+1

我认为你不能,看到这个帖子波纹管:https://superuser.com/questions/797053/use-an-user-defined-function-for-data-validation – ebelair

+0

我不知道,也许那个投票认为你没有做足够研究的人...... – ebelair

+0

Upvoted,因为这个问题对我来说既合理又清楚。 :) – Rory

回答

1

你可以这样做。选择B2,或者您希望验证适用于第2行的任何单元格。现在定义一个名为,比如说,IsValid的名称,可以使用:在数据验证框

=S2M(B2)<>"Error" 

现在,所有你需要输入的是:

=IsValid 
源箱

,并确保取消选中忽略空白选项。

+0

问题。我想为表的列应用验证。但是,当使用上面的代码时,“IsValid”参考“代码,不是从B1扩展到B2和...”。这种方式只适用于在S2M(B2)<>“错误”中定义的单个单元格。 – mgae2m

+0

不,如果按照指定输入它,它将针对每行进行调整。 – Rory

+0

非常感谢。那将是真棒。我可以删除以上评论,还是更好地留下来? – mgae2m

相关问题