某列内容后面的若干位都是数字,请问如何把这些数字用函数截取出来?
这让我想了趁火打劫或者叫火中取栗~~~
示例:
编码 截取的数字 函数公式
xsfdlXZY-XY12345 12345 12345
XYDKADJ-981 981 981
KFDJFKI-125789.87 125789.87 125789.87
QEQERQ-UYU12345.5 12345.5 12345.5
XMDAFC-9870123456 9870123456 9870123456
AFDJK7ADX-92000 92000 92000
UIAIODF778XXXXYY4050 4050 4050
这么苦逼的事情只能用函数或者vba了。
显然这里的情况还比较仁慈,用些高级点函数就能实现屌丝逆袭的。
函数公式怎么写呢:
=LOOKUP(9E+307,--RIGHT(A2,ROW($1:$15)))
首先声明此函数之针对示例中看到的那样的情况,不包治百病,无法针对其他情况也屡试屡爽的。
解读一下:
RIGHT(A2,ROW($1:$15)),从A2单元格的右边分别截取从1位到15位的内容出来。大家都写过这样的RIGHT(A2,1),RIGHT(A2,2)。而此处则相当于RIGHT(A2,1),RIGHT(A2,2),......RIGHT(A2,15)。为什么用15呢,因为最大的数字位数是15位的。你可以在旁边空单元格输入=RIGHT(A2,ROW($1:$15)),然后在编辑栏用F9抹黑,得到其真实结果为一串数组值:{'5';'45';'345';'2345';'12345';'Y12345';'XY12345';'-XY12345';'Y-XY12345';'ZY-XY12345';'XZY-XY12345';'lXZY-XY12345';'dlXZY-XY12345';'fdlXZY-XY12345';'sfdlXZY-XY12345'}
这些数组值都是文本,要变成数字就要为他们进行运算,比如乘以1或者加上0或者减去0或者负负得正。--RIGHT(A2,ROW($1:$15))的作用这是如此,其结果值用F9抹黑是:
{5;45;345;2345;12345;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
LOOKUP(9E+307,--RIGHT(A2,ROW($1:$15))),其中9E+307是一个非常大非常大的值,用LOOKUP找这个值在不在--RIGHT(A2,ROW($1:$15))里面,这个里面自然是没有这个这么大的数字的。LOOKUP(9e+307,)这种形式就是用来查找最后一个数字的。这里的最后一个数字显然就是12345了。
还不明白的可以去百度LOOKUP 9e+307。
--------------------------------------------------------------------------------------------
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。