I';I’’我试图在excel中创建一个检查数字的公式,但单元格中必须包含破折号
我有这样的想法:I';I’’我试图在excel中创建一个检查数字的公式,但单元格中必须包含破折号,excel,excel-formula,Excel,Excel Formula,我有这样的想法: A1: ABC-DE442 B1: 0069-1234-12 A1: ABC-DE442 B1: 004-2345-34 我试着做一个公式,看看A1,得到数字442,然后检查B1的格式是否是4个数字,一个破折号,4个数字,一个破折号,最后是2个数字。我想确保这可以与任何数字除了442虽然。所以如果我用123而不是442,它需要1个数字,破折号,2个数字,破折号,和3个数字 如果我有这样的问题,它还需要给我一个错误: A1: ABC-DE442 B1: 0069-1234-1
A1: ABC-DE442
B1: 0069-1234-12
A1: ABC-DE442
B1: 004-2345-34
我试着做一个公式,看看A1,得到数字442,然后检查B1的格式是否是4个数字,一个破折号,4个数字,一个破折号,最后是2个数字。我想确保这可以与任何数字除了442虽然。所以如果我用123而不是442,它需要1个数字,破折号,2个数字,破折号,和3个数字
如果我有这样的问题,它还需要给我一个错误:
A1: ABC-DE442
B1: 0069-1234-12
A1: ABC-DE442
B1: 004-2345-34
因为在破折号前的第一部分只有三个数字
希望我已经很清楚我要做什么。任何帮助都将不胜感激。这在Excel公式中应该是可能的,但它会变得有点复杂。您可能要使用的函数有
FIND
、LEFT
、LEN
、MID
和VALUE
比如说,
C1:=查找(“-”,B1)
将返回要测试的字符串中第一个破折号的位置,例如5。然后
D1:=左侧(B1,C1-1)
将返回该破折号之前的字符,即“0069”。同时,您需要从第一个字符串(A1中的字符串)中获取三行数字的长度。那根绳子总是一样长吗?如果是的话,你可以使用
=值(中间值(A1,7,1))
返回A1中字符串的第7个字符,并将其转换为数字(4)。现在,您可以测试该值是否等于第一行字符的长度,即LEN(D1)
但是这些字符都是数字吗?那么,您可以尝试将它们转换为具有值(D1)
的数字,如果参数不能转换为数字,则返回#VALUE
好的,这检查了第一次运行的字符,其余的字符呢?那么
=MID(B1,FIND(“-”,B1)+1999)
将在第一个破折号之后为您提供原始字符串的剩余部分,您可以用相同的方式进行分析,依此类推
在计算中间值时,使用大量单元格保存中间值是开发这些公式的最简单方法,但一旦您确信这些公式工作正常,就可以将它们合并到较少的单元格中。无论你想出什么,确保你用很多不同的输入来测试它,以检查你的公式是否以你期望的方式响应它们。(特别是,如果破折号后有一个或多个空格,请检查会发生什么情况,因为
VALUE
将忽略前导空格-您可能希望在初始文本上使用替换
函数来删除任何空格。)这在Excel公式中应该是可行的,但会变得有点复杂。您可能要使用的函数有FIND
、LEFT
、LEN
、MID
和VALUE
比如说,
C1:=查找(“-”,B1)
将返回要测试的字符串中第一个破折号的位置,例如5。然后
D1:=左侧(B1,C1-1)
将返回该破折号之前的字符,即“0069”。同时,您需要从第一个字符串(A1中的字符串)中获取三行数字的长度。那根绳子总是一样长吗?如果是的话,你可以使用
=值(中间值(A1,7,1))
返回A1中字符串的第7个字符,并将其转换为数字(4)。现在,您可以测试该值是否等于第一行字符的长度,即LEN(D1)
但是这些字符都是数字吗?那么,您可以尝试将它们转换为具有值(D1)
的数字,如果参数不能转换为数字,则返回#VALUE
好的,这检查了第一次运行的字符,其余的字符呢?那么
=MID(B1,FIND(“-”,B1)+1999)
将在第一个破折号之后为您提供原始字符串的剩余部分,您可以用相同的方式进行分析,依此类推
在计算中间值时,使用大量单元格保存中间值是开发这些公式的最简单方法,但一旦您确信这些公式工作正常,就可以将它们合并到较少的单元格中。无论你想出什么,确保你用很多不同的输入来测试它,以检查你的公式是否以你期望的方式响应它们。(特别是,如果破折号后有一个或多个空格,请检查会发生什么情况,因为
VALUE
将忽略前导空格-您可能希望在初始文本上使用替换
函数来删除任何空格。)这在Excel公式中应该是可行的,但会变得有点复杂。您可能要使用的函数有FIND
、LEFT
、LEN
、MID
和VALUE
比如说,
C1:=查找(“-”,B1)
将返回要测试的字符串中第一个破折号的位置,例如5。然后
D1:=左侧(B1,C1-1)
将返回该破折号之前的字符,即“0069”。同时,您需要从第一个字符串(A1中的字符串)中获取三行数字的长度。那根绳子总是一样长吗?如果是的话,你可以使用
=值(中间值(A1,7,1))
返回A1中字符串的第7个字符,并将其转换为数字(4)。现在,您可以测试该值是否等于第一行字符的长度,即LEN(D1)
但是这些字符都是数字吗?那么,您可以尝试将它们转换为具有值(D1)
的数字,如果参数不能转换为数字,则返回#VALUE
好的,这检查了第一次运行的字符,什么