Excel 数据公式超过 256 个字符限制



我想验证用户是否正确输入了 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 子网是 4 个低于 256 的数字,用句点分隔,后跟斜杠,然后是一两个数字(尽管在我的所有用例中后跟两个数字都是正确的)

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)

最新更新