我们有一个文本单元格总是说
“部分商品###.##澳元abcdefg”
因此我们始终知道字符串中有“澳元”。但数字可以非常小,如 .01,也可以非常大,如 1,000.33
我们如何以最简单的方式提取带有小数的完整数字?
答案1
看来你只对“澳元”前面的“单词”感兴趣。我们可以提取字符串的最后一个单词使用:
=TRIM(RIGHT(SUBSTITUTE(text," ",REPT(" ",100)),100))
因此我们只需要将其与一个LEFT
函数结合起来,因为根据您的解释,我们需要的“最后一个”单词始终位于“澳元”前面。与 som 结合,TRIM
结果如下:
=TRIM(RIGHT(SUBSTITUTE(TRIM(LEFT(A1,SEARCH("australian dollars",A1)-1))," ",REPT(" ",100)),100))
在混合类型字符串的示例中,我们得到:
另一个选择是研究 Power Query。但是当我尝试它时,它确实需要相当多的步骤,所以我认为最快的方法是使用公式。
答案2
当数字后跟文本字符串时,您可以尝试此操作:
单元格中的公式
B2
,填写完毕。=LEFT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9","0"},""))))
注意:此方法可处理数字后的任意长度的字符。
編輯:
如果单元格中的数字被文本字符串包裹,则可以使用以下公式。
单元格中的公式
I45
:=LOOKUP(9.9E+307,--LEFT(MID(H45,MIN(FIND({1,2,3,4,5,6,7,8,9,0}, $H45&"1023456789")),999),ROW(INDIRECT("1:999"))))
在哪里,
LOOKUP(9.9E+307,
找到最大值。INDIRECT
创建引用,即使插入或删除单元格中的值也不会改变。
注意:此方法可处理数字前后任意长度的字符。
根据需要调整公式中的单元格引用。
答案3
如果“澳元”这个短语没有改变,你可以使用下面的公式
B2= Value(Left(A1,Len(A1)-19))
并B2
根据需要格式化单元格