|
各位大师:
小弟之前发了一个求助贴,提取“-”前面的数值,用了一段时间后发现有一些缺陷,就是遇到有0的时候0都被忽略了,实际使用时要把0算在内。
下面发一下具体条件:
数据参考 | 提取数字 | TLP.ETZA15010-XX | 10 | BGHJ1G2005-ABU9 | 5 | H5T2F3000-GT | 不提取,非0 | MHF2U0R4T11-FH | 411 | GHR2U0R0T31-F | 31 | JKL3G700Y78-H | 78 | SDG00K08-FH | 8 | RGH25H3-YUGX | 253 | YU20T1H8J-OPG | 18 | HRT2T40E0H3UQ-YJ | 3 | YFE201T80F00JJ-E | 不提取,非0 | Y115025-XX | 25 | DS224G0-EEF | 240 | WE25000-ER | 不提取,非0 | B441003-DDHB | 3 |
1、提取“-”前面的3位数字 | 2、“-”前面不管怎么排列只提取3位数字,没有3位就取2位,没有2位就取1位 | 3、如果提取的三位数第一位是0,则只取后两位。 | 4、如果提取的三位数第一和第二位是0,则只取最后一位。 | 5、如果提取的三位都是0,则不提取数字。 | 6、这几个数字可能不是连续的,中间会隔着字母或者字符。 | 7、请尽量在下面的原数组公式上修改~谢谢,现在的公式是把0都跳过去了,需要把有0的情况也计算在内 | RIGHT(IF(COUNT(FIND(0,REPLACE(D4,FIND("-",D4),99,""))),0,"")&SUBSTITUTE(SUM(IFERROR(--MID(REPLACE(D4,FIND("-",D4),99,""),ROW($1:$20),1),)*10^(20-ROW($1:$20))),0,""),3) |
|
|