【发布时间】:2017-08-22 19:03:12
【问题描述】:
我有一个用户提供的字段,它将数字 GTIN 存储为文本。我验证下一个单元格中的字段是 7 或 11 个字符。
添加诸如=OR(LEN(A1)=7,LEN(A1)=11) 之类的公式很容易,但在某些情况下,用户会从另一个 Excel 文档中粘贴,例如自定义格式为 11 0 的数字。该单元格似乎包含 11 个带有几个前导零的字符,但 LEN 公式看到的字符更少(例如,该单元格可能显示 00123456789,但 LEN(A1) = 9)。我不知道如何控制这一点。
如果没有宏,我怎样才能找到这个显示值的长度?
感谢您的帮助!
【问题讨论】:
-
然后你的单元格上有一个自定义格式来显示额外的
00,而 Excel 只能看到123456789。由于公式无法“看到”单元格的格式,因此您需要 vba。 -
真可惜。是的,情况就是这样。基本上,我根据 GTIN 的长度计算最终校验位,自定义格式中的前导零不允许我确定这一点。
-
将所有内容转换为 11 个字符或 7 个或 11 个字符中的较小者是否存在问题?你可以按照
=RIGHT("00000000000"&A1,11)的方式做一些事情并复制下来。如果 a1 的长度 -
在获取长度之前先检查单元格是
TEXT还是NUMBER怎么样?像这样的东西:=IF(ISTEXT(A10),LEN(A10),IF(ISNUMBER(A10),IF(LEN(A10)<=7,7,11),"Check Format"))。我不确定为什么字段可以是 7 或 11,因为我不熟悉 GTIN,所以我假设如果数字小于或等于 7,则长度应为 7,否则为 11。或者您可以使用@987654330 @ 将数字转换为文本。每个 0 代表一个字符。
标签: excel excel-formula