【发布时间】:2017-05-12 15:36:00
【问题描述】:
尝试编写仅允许以下格式的值的自定义数据验证公式:2 位数年份(这可以只是 2 个数字)、破折号(“-”),然后是 1 或 2 个字母字符)(更喜欢大写,但会选择小写),另一个破折号(“-”),然后是 5 位数字。所以最终值看起来像:17-FL-12345 ...或16-G-00008...
我实际上还有更多,但如果我能完成上述工作,那就太棒了。我不知道是否有办法,但如果另外我可以使用自定义格式来让破折号在未输入时出现,那就太好了,即用户输入“17FL12345”并自动格式化为“17- FL-12345"。最后,同样,这也不是一个交易破坏者,但如果最后 5 位数字添加任何前导零也会很好,即用户输入 17-G-8(或仅 17G8)并格式化为17-G-00008。
很遗憾,无法使用 VBA。我看过的类似问题的一些潜在解决方案包括:
Data VAlidation - Text Length & Character Type
Excel : Data Validation, how to force the user to enter a string that is 2 char long?
【问题讨论】:
-
要进行格式化,您需要 vba。还允许用户在没有破折号的情况下输入它会使数据验证无效。如果 vba 不在桌面上,您将只能做第一个,也就是说,如果公式可以用少于 255 个字符完成,这可能会推动它。所以条目需要破折号和完整的数字。
-
你试过什么?正如@ScottCraner 所写,没有VBA 就无法进行格式化。因此,请向我们展示您尝试过的公式以及遇到问题的地方。您需要
IF来决定检查一两个字母;其余的应该相当简单(写出来很乏味)。 -
@ScottCraner 感谢您提供的信息...仅获取第一部分是可以接受的...要求用户使用破折号并且完整的数字并不是什么大不了的事
-
作为@RonRosenfeld,这相当乏味,因为需要解析字符串并检查每个部分。你试过什么?我们可以指出您的公式为何失败。但通常我们不会为您写信。
标签: excel validation