我想将单元格中的数据限制为数字 00-00 格式,要求如下:
- 第一个和第四个字符需要以“0”或“1”开头
- 连字符需要作为第三个字符出现
有人能帮忙解决这个自定义数据验证公式吗?
答案1
可能有更好的方法,但一种(相当蛮力的)方法就是用公式检查特定的模式。
您需要ISNUMBER()
检查数字*,并且需要MID(A1,x,1)
检查X单元格中的第 位置A1
。
将这些与一个结合起来AND()
,您就可以开始了。
对于 OP 中的特定示例,您可以使用:
=AND(ISNUMBER(MID(C4,1,1)*1),ISNUMBER(MID(C4,2,1)*1),MID(C4,3,1)="-",ISNUMBER(MID(C4,4,1)*1),ISNUMBER(MID(C4,5,1)*1))
*默认情况下,检查文本中的数字不起作用。请参阅这个SE答案如何解决这个问题。
答案2
将其放在您的数据验证自定义公式中:
=AND(MID(A1, 3, 1)="-",
OR(MID(A1, 1, 1)="0",
MID(A1, 1, 1)="1"),
OR(MID(A1, 4, 1)="0",
MID(A1, 4, 1)="1"))
基本上,你想要的东西必须满足三个条件:
- 第三个字符必须是连字符。
- 第一个字符必须是
0
或1
- 第四个字符必须是
0
或1
如果您愿意,您可以将其添加到AND
以确保输入仅限于五 (5) 个字符。
LEN(A1)=5
并且不要忘记您必须将单元格格式化为TEXT
,否则它将总是翻译为日期(虽然我怀疑你想要的也是日期格式)