Question to say "I can!"

EXCEL如何提取單元格中的數值?

2013-08-29

比如說A1的值為1234mmm,A2的值為122mm。如何利用函數或公式將A1和A2中的數值提取出來呢?

公式(不管數值在前,中間,后都可以,以A1為例):

=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))

或者:

B2=-LOOKUP(,-MID(A2,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A2&1234567890)),ROW($1:$1024)))

解讀:

1、FIND()告訴我,0-9在文本中第一次出現的位置。
用Find()在指定的文本中查找0-9,會返回第一次出現的位置,如果沒有會返回一個錯誤值,在文本后面連接上1234567890,讓Find()不再有借口返回錯誤值,請放心,它不會影響后面的結果。在編輯欄中,像下面一樣,用鼠標將這一段文本抹黑,然后按F9。
=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))

2、對著 Min(),王小丫說:恭喜你,答對了,第一個數字在第3位。
如果你還懷疑,可以這再次抹黑,并按F9。
=LOOKUP(9E+307,--MID(A1,MIN({7;8;5;12;13;3;4;16;17;18}),ROW(INDIRECT("1:"&LEN(A1)))))

3、神奇魔術師 Mid() ,一個文本變出許許多多。
讓事實說話,繼續抹抹黑,按F9。開始位置不變,長度依次增1,形成一個數組,數組的個數等于文本長度(Row()的結果)。后面的會出現相同的情況,沒關系,還是不影響結果的。
=LOOKUP(9E+307,--MID(A1,3,ROW(INDIRECT("1:"&LEN(A1)))))

4、如果忽略了--,還是功虧一簣。
看看,它的結果會是什么呢?
=LOOKUP(9E+307,--{"5";"56";"562";"562.";"562.0";"562.00";"562.00元";"562.00元";"562.00元"})

5、Lookup() 總是那么沉著,他閉著眼睛說,我就要最后面那個數字。
=LOOKUP(9E+307,{5;56;562;562;562;562.00;#VALUE!;#VALUE!;#VALUE!})
9E+307
是一個非常大的數,在任何時候都適用,如果你知道你的文本中最大數的范圍,比如1000,文本中的數字不會超過1000的,那么,這個數字你用1000,也是行的,即:
Lookup(1000,……)

附送:取文本的方法

C2=SUBSTITUTE(SUBSTITUTE(A2,C2,"")," ","")

作者:admin | Categories:軟件使用 | Tags:

發表評論

電子郵件地址不會被公開。 必填項已用*標注

*

澳洲f1赛车b盘开奖套路 陕西快乐十分开奖数据 幸运28彩票app下载 内蒙古十一选我五走势图 赛车预测 彩票开奖查询 安徽11选5历史最大遗漏 股票竞价时间交易规则 广东26选5奖结果查询 时时彩平台哪个好 极速时时彩有几个 浙江6+1蓝球中了 100万融资100万多少平仓 大乐透走势图完整版 吉林11选5 昨天股市大盘行情 广东36选7开奖公告