数据validation与数字+文本

试图编写一个自定义的数据validation公式,它只允许以下格式的值:2位年份(可以是2个数字),破折号(“ – ”),然后是1或2个字母更喜欢大写,但会解决小写),另一个破折号(“ – ”),然后一个5位数字。 所以最终的值如下所示:17-FL-12345 …或16-G-00008 …

我其实还有更多,但是如果我能得到上述的工作,这将是了不起的。 我不知道是否有办法,但如果另外我可以使用自定义格式来获取没有input的破折号,即用户input“17FL12345”,它会自动格式化为“17- FL-12345" 。 最后,这也不是一个交易断路器,但是如果最后5位数字会加上任何前导零,也就是说,用户input17-G-8(或者只是17G8),并且它被格式化为17-G-00008。

不幸的是不能使用VBA。 我所看到的类似问题的一些潜在解决scheme包括:

https://www.mrexcel.com/forum/excel-questions/615799-data-validation-mixed-numeric-text-formula-only.html

数据VAlidation – 文本长度和字符types

Excel:数据validation,如何强制用户input2个字符的string?

尝试这个:

 =AND(ISNUMBER(VALUE(LEFT(A1,2))),MID(A1,3,1)="-",OR(ISNUMBER(FIND(MID(A1,4,1),$C$1)),AND(ISNUMBER(FIND(MID(A1,4,1),$C$1)),ISNUMBER(FIND(MID(A1,5,1),$C$1)))),MID(A1,LEN(A1)-5,1)="-",ISNUMBER(VALUE(RIGHT(A1,5))),OR(LEN(A1)=11,LEN(A1)=10),LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))=2,LEN(A1)-LEN(SUBSTITUTE(A1,"+",""))=0,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))=0) 

假设,你想validationA1。 我在C1中插入了字母。 在这里输入图像说明

编辑:

我编辑了原来的function,更安全,省略了Isnumber部分,而是逐个数字地进行。 如果你想超过255的限制,你必须切分function。 我创build了5个函数。

 =AND(ISNUMBER(FIND(LEFT(A1),$C$2)),ISNUMBER(FIND(MID(A1,2,1),$C$2))) =MID(A1,3,1)="-" =IF(LEN(A1)=10,AND(ISNUMBER(FIND(MID(A1,4,1),$C$1)),MID(A1,5,1)="-"),IF(LEN(A1)=11,AND(ISNUMBER(FIND(MID(A1,4,1),$C$1)),ISNUMBER(FIND(MID(A1,5,1),$C$1))))) =IF(LEN(A1)=10,MID(A1,5,1)="-",IF(LEN(A1)=11,MID(A1,6,1)="-")) =IF(LEN(A1)=10,AND(ISNUMBER(FIND(MID(A1,6,1),$C$2)),ISNUMBER(FIND(MID(A1,7,1),$C$2)),ISNUMBER(FIND(MID(A1,8,1),$C$2)),ISNUMBER(FIND(MID(A1,9,1),$C$2)),ISNUMBER(FIND(MID(A1,10,1),$C$2))),IF(LEN(A1)=11,AND(ISNUMBER(FIND(MID(A1,7,1),$C$2)),ISNUMBER(FIND(MID(A1,8,1),$C$2)),ISNUMBER(FIND(MID(A1,9,1),$C$2)),ISNUMBER(FIND(MID(A1,10,1),$C$2)),ISNUMBER(FIND(MID(A1,11,1),$C$2))))) 

如图所示设置数据validation:

在这里输入图像说明