以下是我要做的事情:
从一个类似于"收据28.19 walmart"或者"收据117.58 amazon",我希望能够将美元金额提取到不同的单元格。因此,一个函数将分别在每个单元格中放置28.19和117.58。
我知道你可以使用MID函数来提取文本字符串的一部分,如果你知道它的起始位置和长度,但问题在于它可能是不同的长度。例如,28.19的长度为5,但117.58的长度为6,因此我无法使用MID来获得总金额,因为所需子字符串的长度并不总是相同。
如果有人知道解决方法,请回复。此外,如果有一个适用于谷歌电子表格的解决方案,那也是可以接受的。我假设很多功能从excel到google sheet都是一样的。
答案 0 :(得分:2)
如果您可以保证格式为[word][space][number][space][word]
,那么这应该有效:
=TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))), (2-1)*LEN(A1)+1, LEN(A1)))
A1
有“receipt 28.19 walmart
”
答案 1 :(得分:1)
您想要单元格中给出的字符串中两个空格之间的数字。因此,对于像#34;收据2356.14789 amazon"这样的字符串,我们必须找到空白的位置。
现在,为了找到字符串中第n个空格的位置,我们可以使用这些公式
1st Position : =find(" ",a1)
2nd Position : =find(" ",a1,find(" ",a1)+1)
3rd Position : =find(" ",a1,find(" ",a1,find(" ",a1)+1)+1)
...........
Nth position : =find(" ",a1,find(" ",a1,find(" ",a1,find(" ",a1,......n-1 times find(" ",a1)+1)+1)+1.....n-1 times +1)
所以,使用上面的公式在字符串中找到第一个和第二个空白:
B1和C1中我们有8和19的值是字符串中空格的位置。现在我们需要的结果是,让字符串成为
s with removal of "receipt " & " amazon"
现在我们可以使用MID函数来获取输出。
MID功能:=MID(text,start_num,num_chars)
给定起始位置和长度,从文本字符串的中间返回字符。
所以,我们有起始位置,即第一个空白位置(8),我们必须计算num_chars,即长度。
要计算长度,我们必须进行以下计算:
subtract the len of "amazon" from total len of string
length of substring s2 : =len(a1)- FIND(" ",A1,FIND(" ",A1)+1) which is second blank pos.
add len of sub string1 and sub string2
s2 + FIND(" ",A1)
现在,我们将使用mid函数,
=MID(A1,FIND(" ",A1),F1,(LEN S1+ LEN S2))
现在修剪此值,因为它将在"收据"的开头包含空格。
=trim(MID(A1,FIND(" ",A1),F1,(LEN S1+ LEN S2)))
所以,最终公式如下:
=TRIM(MID(A1,FIND(" ",A1),LEN(A1)-FIND(" ",A1,FIND(" ",A1)+1)+FIND(" ",A1)))
第二种方法:
使用Delimit选择空格。快捷方式ALT-> A-> A-> E,界定选择空格,然后输入。
输出:
答案 2 :(得分:1)
最简单的方法和我个人最喜欢的方法是使用正则表达式提取:
=REGEXEXTRACT ("YOUR TEXT", "\D+(\d+\.?\d+)\D+?")
这基本上是说你的字符串以任意数量的非数字字符\D+
开头,后跟一些数字\d+
,其中可能包含或不包含带有其他数字的小数,可能后跟更多非数字字符
数字模式周围的括号指示它仅提取该值
请注意,这是专门针对Google表单的,因为您说您还想要一个
如果您需要能够对提取的文本求和,您可以将其包装在值中:
=VALUE(REGEXEXTRACT (A1 , "\D+(\d+\.?\d+)\D+?"))
或者为了更方便,如果你有一整列值,你可以输入一个公式来运行你的正则表达式:
=ARRAYFORMULA(IF(LEN(O1:O)>0,VALUE(REGEXEXTRACT (O1:O , "\D+(\d+\.?\d+)\D+?")),))
答案 3 :(得分:0)
请考虑以下事项。看看我是如何一步一步找到答案的。 =MID(A3,SEARCH(" ",A3)+1,SEARCH(" ",MID(A3,SEARCH(" ",A3)+1,LEN(A3)))-1)
。如果您想了解更多信息,请查看此免费课程Len(), Search(), Trim()(链接将在10天后过期)。