excel提取单词(GB)和它前面的数字

时间:2019-08-13 21:03:28

标签: excel excel-formula formula

我卡住了,我有一张Excel工作表,我需要从字符串中提取GB和数字。   Galaxy S10 + 8 / 128GB(Snapdragon 855)应该是128GB,不知道该怎么做。找不到任何将使用whilecard的公式,会有帮助吗?

我正在使用

  

= IF((LEN(A3)-LEN(SUBSTITUTE(A3,“”,“”))))<2,A3,LEFT(A3,FIND(“”,A3,FIND(“”,A3)+ 1)-1))   提取电话名称但有GB的tus脚

enter image description here

3 个答案:

答案 0 :(得分:3)

首先,我们需要将/替换为一个空格,然后找到GB之前的最后一个空格,并将其设置为中间公式的开头:

=IFERROR(MID(LEFT(A2,FIND("GB",A2)+1),FIND("}}}",SUBSTITUTE(SUBSTITUTE(LEFT(A2,FIND("GB",A2)+2),"/"," ")," ","}}}",LEN(SUBSTITUTE(LEFT(A2,FIND("GB",A2)+1),"/"," "))-LEN(SUBSTITUTE(SUBSTITUTE(LEFT(A2,FIND("GB",A2)+1),"/"," ")," ",""))))+1,LEN(A2)),"")

enter image description here

答案 1 :(得分:3)

在具有FILTERXML功能的Excel 2013中,您可以使用:

=IFERROR(FILTERXML("<t><s>" &SUBSTITUTE(SUBSTITUTE(A1,"/"," ")," ","</s><s>") & "</s></t>","//s[contains(.,'GB')]"),"")

enter image description here

  • 使用空格(并将/替换为空格),我们创建一个XML,其中每个节点均由空格分隔。

  • 然后我们使用Xpath返回包含GB的节点

答案 2 :(得分:1)

如果字符串符合以下条件:

  • GB之前的最大数字字符数不超过 4 ,例如不会显示12345GB的字符串;和
  • 在GB前面的数字值之前,总是会有/" "(空格),例如/128GB32GB(前面有32个空格)

您可以使用以下公式从字符串中查找所需的文本。

=IFERROR(RIGHT(SUBSTITUTE(MID(A1,FIND("GB",A1)-5,7)," ","/"),LEN(SUBSTITUTE(MID(A1,FIND("GB",A1)-5,7)," ","/"))-FIND("/",SUBSTITUTE(MID(A1,FIND("GB",A1)-5,7)," ","/"))),"")

逻辑是

  1. 使用 MID 从字符串中提取 GB前面的5个字符加“ GB”(因此总共 7个字符),< / li>
  2. 替换“”(空格),距离最后一步的7个字符内的/
  3. 查找 /在7个字符内的位置,
  4. 使用 RIGHT 函数提取/右侧的所有字符,
  5. 如果字符串中没有GB,请使用 IFERROR 显示“”(空白单元格)。

如果您使用辅助列存储步骤1中的文本字符串,则该公式可能会更短并且更易于解释。

干杯:)