Excel 从特定位置提取前一个单词(向左)的公式
Excel Formula to extract previous word (towards left) from a specific position
我在 excel 文件中有多个记录,例如 Col A:
- Infogain India (P) Ltd. 诺伊达 3-6 岁
- ROBOSPECIES TECHNOLOGIES PVT LTD 0-2 岁新德里
- 红柠檬 0-3 岁诺伊达(Sector-7 Noida)
数据中提到了一系列年份,例如第一个列表项中为 3-6 岁。
我想从以上 3 个列表项中提取数据 3-6、0-2、0-3 等。我知道在所有字符串中搜索“yrs”会给我结束位置。但是,我无法确定如何找到年数的起始位置。
我需要 excel 公式,它会给出年份范围。
我不想使用任何 VBA 作为解决方案。
尽管很确定可以压缩,但请尝试以下操作。我试图处理可能存在的额外白色 space 以及长度为多位数的年份,例如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(:24))))
试试,
=TRIM(RIGHT(REPLACE(A1, FIND(" yrs", A1), LEN(A1), TEXT(,)), 4))
如果数字之间没有空格,则可以使用以下公式。
=TRIM(RIGHT(SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(A3," yrs",REPT(" ",99)),99))," ",REPT(" ",99)),99))
试试下面的公式
=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))))
我在 excel 文件中有多个记录,例如 Col A:
- Infogain India (P) Ltd. 诺伊达 3-6 岁
- ROBOSPECIES TECHNOLOGIES PVT LTD 0-2 岁新德里
- 红柠檬 0-3 岁诺伊达(Sector-7 Noida)
数据中提到了一系列年份,例如第一个列表项中为 3-6 岁。
我想从以上 3 个列表项中提取数据 3-6、0-2、0-3 等。我知道在所有字符串中搜索“yrs”会给我结束位置。但是,我无法确定如何找到年数的起始位置。
我需要 excel 公式,它会给出年份范围。 我不想使用任何 VBA 作为解决方案。
尽管很确定可以压缩,但请尝试以下操作。我试图处理可能存在的额外白色 space 以及长度为多位数的年份,例如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(:24))))
试试,
=TRIM(RIGHT(REPLACE(A1, FIND(" yrs", A1), LEN(A1), TEXT(,)), 4))
如果数字之间没有空格,则可以使用以下公式。
=TRIM(RIGHT(SUBSTITUTE(TRIM(LEFT(SUBSTITUTE(A3," yrs",REPT(" ",99)),99))," ",REPT(" ",99)),99))
试试下面的公式
=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))))