对字符串中数字字符数的数据验证
Data validation on number of numerical characters in a string
尝试将公式添加到数据验证中,以检查字符串是 6 位数字,还是 6 位带连字符或空格的数字。例如
123456
要么
12-34-56
要么
12 34 56
该字符串还可以包含前导零。
用户不能输入与上述格式不同的字符串,所以
123-456
要么
1234567
....例如
不想使用 VBA,但正在努力将其变成数据验证公式。
如有任何想法,我们将不胜感激
试试这个:
=AND(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-","")*1<=999999,SUBSTITUTE(SUBSTITUTE(A1," ",""),"-","")*1>=1,LEN(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""))=6)
这个公式去掉连字符和空格,然后检查数字是否为6位,是否在1到999999之间。如果有letters/symbols,*1部分会出错
编辑:
@JvdV 身份正确。我误解了你的要求。这是我的第二次尝试:
=AND(OR(ISNUMBER(MATCH("??-??-??",A1,0)),ISNUMBER(MATCH("?? ?? ??",A1,0)),AND(IFERROR(A1*1,0)<=999999,IFERROR(A1*1,0)>=1)),ISNUMBER(SUBSTITUTE(SUBSTITUTE(A1,"-","")," ","")*1))
以下是它允许和不允许的内容:
现在有点困难,但是呢:
=AND(TRIM(A1)=RIGHT(A1,8),MID(RIGHT(TEXT(A1,"00-00-00"),8),3,1)=MID(RIGHT(TEXT(A1,"00-00-00"),8),6,1),LEN(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""))=6,ISNUMBER(--SUBSTITUTE(SUBSTITUTE(A1," ",""),"-","")))
尝试将公式添加到数据验证中,以检查字符串是 6 位数字,还是 6 位带连字符或空格的数字。例如
123456 要么 12-34-56 要么 12 34 56
该字符串还可以包含前导零。
用户不能输入与上述格式不同的字符串,所以
123-456 要么 1234567 ....例如
不想使用 VBA,但正在努力将其变成数据验证公式。
如有任何想法,我们将不胜感激
试试这个:
=AND(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-","")*1<=999999,SUBSTITUTE(SUBSTITUTE(A1," ",""),"-","")*1>=1,LEN(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""))=6)
这个公式去掉连字符和空格,然后检查数字是否为6位,是否在1到999999之间。如果有letters/symbols,*1部分会出错
编辑: @JvdV 身份正确。我误解了你的要求。这是我的第二次尝试:
=AND(OR(ISNUMBER(MATCH("??-??-??",A1,0)),ISNUMBER(MATCH("?? ?? ??",A1,0)),AND(IFERROR(A1*1,0)<=999999,IFERROR(A1*1,0)>=1)),ISNUMBER(SUBSTITUTE(SUBSTITUTE(A1,"-","")," ","")*1))
以下是它允许和不允许的内容:
现在有点困难,但是呢:
=AND(TRIM(A1)=RIGHT(A1,8),MID(RIGHT(TEXT(A1,"00-00-00"),8),3,1)=MID(RIGHT(TEXT(A1,"00-00-00"),8),6,1),LEN(SUBSTITUTE(SUBSTITUTE(A1," ",""),"-",""))=6,ISNUMBER(--SUBSTITUTE(SUBSTITUTE(A1," ",""),"-","")))