Excel公式从特定位置提取前一个单词(向左)

时间:2017-12-25 19:53:05

标签: excel excel-formula excel-2010 excel-2007

我在excel文件中有多条记录,如Col A:

  • Infogain India(P)Ltd. 3-6岁Noida
  • ROBOSPECIES TECHNOLOGIES PVT LTD 0-2岁新德里
  • Red Lemon 0-3岁Noida(Sector-7 Noida)

在数据中,提到了一系列年份,例如:在第一个清单项目中3-6岁。

我想从以上3个列表项中提取数据3-6,0-2,0-3等。我理解搜索" yrs"在所有字符串中将给我最终位置。但是,我无法确定如何找到年数的起始位置。

我需要excel公式,它会给我年份范围。 我不想使用任何VBA来解决问题。

4 个答案:

答案 0 :(得分:1)

尝试以下操作,但非常确定它可以压缩。我试图处理可能存在的额外空白区域,并且多年的长度也是多位数的,例如12-15。合并Raystafarian的方法来查找角色的最后一次出现。

=RIGHT(TRIM(LEFT(TRIM(SUBSTITUTE(A1,CHAR(32)," ")),FIND("yrs",TRIM(SUBSTITUTE(A1,CHAR(32)," ")),1)-1)),LEN(TRIM(LEFT(TRIM(SUBSTITUTE(A1,CHAR(32)," ")),FIND("yrs",TRIM(SUBSTITUTE(A1,CHAR(32)," ")),1)-1)))-LOOKUP(9.9999999999E+307,FIND(" ",TRIM(LEFT(TRIM(SUBSTITUTE(A1,CHAR(32)," ")),FIND("yrs",TRIM(SUBSTITUTE(A1,CHAR(32)," ")),1)-1)),ROW($1:$1024))))

答案 1 :(得分:1)

尝试,

=TRIM(RIGHT(REPLACE(A1, FIND(" yrs", A1), LEN(A1), TEXT(,)), 4))

答案 2 :(得分:1)

如果数字之间没有空格,那么您可以使用以下公式。

=TRIM(RIGHT(SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(A3," yrs",REPT(" ",99)),99))," ",REPT(" ",99)),99))

答案 3 :(得分:1)

尝试使用以下公式

=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,SEARCH("yrs",A1)-1)," ","|",LEN(LEFT(A1,SEARCH("yrs",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,SEARCH("yrs",A1)-1)," ",""))-1),LEN(SUBSTITUTE(LEFT(A1,SEARCH("yrs",A1)-1)," ","|",LEN(LEFT(A1,SEARCH("yrs",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,SEARCH("yrs",A1)-1)," ",""))-1))-SEARCH("|",SUBSTITUTE(LEFT(A1,SEARCH("yrs",A1)-1)," ","|",LEN(LEFT(A1,SEARCH("yrs",A1)-1))-LEN(SUBSTITUTE(LEFT(A1,SEARCH("yrs",A1)-1)," ",""))-1))))