Excel数据验证 - 如何将输入限制为数字和破折号?

时间:2016-03-22 11:39:52

标签: excel

我试图在EXCEL中对电话号码进行数据验证。模式应仅包含数字和虚线。至少应该有一个短划线。如果没有VBA,我怎么能搞这个?

3 个答案:

答案 0 :(得分:1)

您可以通过数据验证来做到这一点。

操作方法

  • 转到数据验证并将 Allow 下拉菜单设置为“自定义”。
  • 在“公式”字段中使用以下内容(假设您范围内的第一个单元格为A1

    = ISNUMBER(SUBSTITUTE(A1,“-”,“”)* 1)


说明

SUBSTITUTE函数将查看单元格A1中的值,其中每个破折号均不替换(即删除)。

剩余的字符乘以1。如果字符仅包含数字(0-9),则此操作返回一个数字。如果有破折号以外的字母或符号,则会返回错误。

最后,如果以上结果为数字,则ISNUMBER函数将返回TRUE。如果结果不是包含错误的数字,则返回FALSE


允许其他字符

要允许其他字符,请包括一系列嵌套的SUBSTITUTE函数,每个字符一个。

允许数字(数字),划线和空格

例如123-456-7890或123 456 7890

=ISNUMBER(  SUBSTITUTE( SUBSTITUTE(A1,"-",""), " ", "")  * 1)

允许数字(数字),破折号,空格和括号

例如(123)456-7890

=ISNUMBER(  SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE(A1,"-",""), " ", ""), "(", ""), ")", "")  * 1)

答案 1 :(得分:0)

你所要求的比你需要的要复杂得多,而且可能比你想象的要复杂得多。

而不是要求用户输入这种特定格式的电话号码(如果他们在区号之前添加括号怎么办?数字块之间的空格怎么样?那些用短划线输入6个数字的人怎么样?20个数字怎么样?和20个破折号?),考虑只对特定数字的条目应用特定的格式规则。如果这样做,您的数据验证将只是“必须输入整数”,格式将自动显示它的外观。

已经有一种特殊的“电话号码”格式,因此您甚至不需要应用任何特殊规则来实现这一目标。

答案 2 :(得分:0)

自定义数字格式是否足够? ###-###-####

将输入限制为整数。

image