道歉,如果这是一个常识问题,检查网络但找不到我想要的确切答案。我试图使excel只允许以下列格式输入数字[### - ### - ### - ###](例如,像102-204-304-101这样的东西)。我有类似的东西,如果我突出显示一个单元格并转到(格式化单元格 - >自定义 - >并在“类型字段”中输入000“ - ”000“ - ”000“ - ”000。这有效有人输入102204304101,它将转换为102-204-304-101。但我希望其他用户明确键入连字符。我猜它可以在数据功能区下的“数据验证”部分完成(注意我正在使用Excel 2010),但无法弄清楚如何做到这一点。如果有人可以提供任何提示,将不胜感激。请提前感谢。
答案 0 :(得分:0)
基于Excel 2007:
=AND(MID(A1,4,1)="-",MID(A1,8,1)="-",MID(A1,12,1)="-")
作为验证标准下的公式,允许:自定义,验证位置4,8和12中的连字符。
答案 1 :(得分:0)
使用此验证公式(将D11
替换为适当的单元格):
=IF(MID(D11;4;1)&MID(D11;8;1)&MID(D11;12;1)="---";ISNUMBER(VALUE(-0,1&MID(D11;1;3)&MID(D11;5;3)&MID(D11;9;3)&MID(D11;13;3)&1E+100)))
这可以确保斜线和数字。
您可能需要根据当地人将,
更改为;
和.
更改为,
。
答案 2 :(得分:0)
因为每个字符都有一个明确的范围(0-9
和-
),我们可以使用字符的ASCII值来检查文本。我们还检查长度,如果字符串太短(在eqation中产生错误,我们将整个事物包装在IFERROR中。
构建它,我们使用CODE和MID来检查每个字符:
降低范围:CODE(MID(A1, {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},1)) >= {48,48,48,45,48,48,48,45,48,48,48,45,48,48,48}
上限范围:CODE(MID(A1, {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}, 1)) <= {57,57,57,45,57,57,57,45,57,57,57,45,57,57,57}
长度:LEN(A1)=15
必须通过所有测试:AND
并且不能产生错误IFERROR
将所有这些放在一起,我们得到:
= IFERROR(AND(LEN(A1)= 15,CODE(MID(A1,{1,2,3,4,5,6,7,8,9,10,11,12,13,14, 15},1))&gt; = {48,48,48,45,48,48,48,45,48,48,48,45,48,48,48},代码(MID(A1,{1, 2,3,4,5,6,7,8,9,10,11,12,13,14,15},1))&lt; = {57,57,57,45,57,57,57, 45,57,57,57,45,57,57,57}),FALSE)
将它放在您希望他们输入代码的位置旁边的单元格中(本例中为B1),并将验证放在=B1
答案 3 :(得分:0)
如果Cell是I10
DATA&gt;&gt; DATAVALIDATION:CUSTOM
=IF(LEN(I10)<=12;TEXT(I10;"000-000-000-000");FALSE)