从混合字符串中获取数字值

时间:2019-07-03 10:34:53

标签: excel excel-formula

我正在研究根据VIN编号计算校验位的公式; 17个字母数字字符,每个字符都有自己的值(数字有其自己的值,字母被指定为1到9之间的值)。不幸的是,使用MID分别提取字符会提取数字作为文本,给我VLOOKUP带来了错误。

最初,我尝试仅使用MID([@[VIN / Cargo ID]]; 1;1)(增加字符串中每个字符的起始编号),只要目标字符是字母,它就可以正常工作。但是,如果是数字,则会将其提取为文本,从而导致查找失败。

我尝试使用IF(ISNUMBER) ... NUMBERVALUE组合将它们转换为数值,并且尝试将match列存储为文本形式的查找表,但没有成功。

我当前的尝试基于此:

=IF(ISNUMBER(MID([@[VIN / Cargo ID]]; 1;1)); NUMBERVALUE(MID([@[VIN / Cargo ID]]; 1;1)); VLOOKUP(MID([@[VIN / Cargo ID]]; 1;1); VIN_charval; 2; FALSE))

输入#N/A也不起作用。任何人有什么想法可以帮忙吗?

为清楚起见,VIN的具体结构不是问题;问题特别在于从任何字母数字文本字符串中提取数字。

1 个答案:

答案 0 :(得分:1)

由于VIN的结构是固定的,即通常为17个字母数字字符,因此您可以使用MID()按位置获取所需的字符,请参阅:

enter image description here

随着MID()输出文本,您会注意到我乘以1以确保它是一个数字。

我刚刚从第6位开始输入了2个字符,但是您可以更改它...