Excel数据验证 - 超过256个字符限制的公式

时间:2017-01-17 16:58:47

标签: excel validation

我想验证用户是否已正确输入CIDR格式的子网,例如192.0.2.0/24。以下公式正确验证了此数据:

=AND(--LEFT(F6,FIND(".",F6)-1)<256,
--TRIM(MID(SUBSTITUTE(F6,".",REPT(" ",99)),99,99))<256,
--TRIM(MID(SUBSTITUTE(F6,".",REPT(" ",99)),198,99))<256,
--MID(TRIM(MID(SUBSTITUTE(F6,".",REPT(" ",99)),297,99)),1,FIND("/",TRIM(MID(SUBSTITUTE(F6,".",REPT(" ",99)),297,99)))-1)<256,
--MID(F6,FIND("/",F6)+1,2)<33)

然而,它超过了256个字符的限制。有没有更有效的方法在Excel中验证它?

仅供参考,CIDR子网是低于256的4个数字,用句点分隔,然后是斜杠,然后是一个或两个数字(尽管后面跟着两个数字在我的所有用例中都是正确的)

1 个答案:

答案 0 :(得分:3)

AND本身将返回所需的TRUEFALSE,并且不需要IF(

使用TRIM转换为数字时也--也不需要,因为excel会忽略额外的空格。

我重构了第四篇更简洁。

这只有243个字符:

=AND(--LEFT(F6,FIND(".",F6)-1)<256,--MID(SUBSTITUTE(F6,".",REPT(" ",99)),99,99)<256,--MID(SUBSTITUTE(F6,".",REPT(" ",99)),198,99)<256,--MID(SUBSTITUTE(SUBSTITUTE(F6,".",REPT(" ",99)),"/",REPT(" ",99)),297,99)<256,--MID(F6,FIND("/",F6)+1,2)<33)