从模式字符串中提取值,分成 3 列?

从模式字符串中提取值,分成 3 列?

我有一个包含以下模式的字符串的列:

blablabla?bla&bla&tv_a=value1&tv_b=value2&tv_3=value3

我想将字符串中的数据提取tv_[i]到 3 个单独的列中:

value1 value2 value3

例子:

对于以下两个记录:

long-url-here?a=0&b=4&tv_a=hello&tv_b=there&tv_3=now

other-url?z=4&v=2&tv_a=this&tv_b=is%20an2&tv_3=example

列应该是:

column 1 | column 2 | column 3
-------------------------------
hello    | there    | now
this     | is an    | example

答案1

将其放在第一行并将 A1 更改为第一个单元格:

=MID(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,"2",""),"%0"," "),"&tv_",REPT(" ",999)),999*COLUMN(A:A),999)),FIND("=",TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,"2",""),"%0"," "),"&tv_",REPT(" ",999)),999*COLUMN(A:A),999)))+1,999)

然后再拖过两列并向下拖动至所需的长度。

![在此处输入图片描述

答案2

通过使用你的例子:

长网址在这里?a=0&b=4&tv_a=hello&tv_b=there&tv_3=now

我采用“分段式”方法处理问题,即将问题分解为多个小部分,然后将它们组合起来。这种方法也被称为“分而治之”方法。它看起来是这样的:

您发现 URL 中有 3 个变量值得您关注,依次为:
     电视电视电视_3.但我们就这样吧:电视电视蜜蜂电视_300000

给定 URL,让我们找到 tv_a:
     =寻找(“tv_a”,网址,1=23=位置- 从字符串中第一个字符的位置开始在 URL 中查找字符串 tv_a。

变量 tv_a 的长度是多少?
      =长度(“tv_a”=4=长度

吉文网址位置第一个多变的长度变量,让我们找到“=”符号后面的单词:
      =中(URL,变量+长度+1,长度+1=你好

您可以将整个公式串成一个公式。这在 Excel 中是一项简单的任务。此示例中的命名约定为:网址=A3,第一的=B2,第二=C2,第三=D2. 它看起来是这样的: 在此处输入图片描述 所有三个变量:wrt 上面的图像布局
     1st=MID(url,B3+LEN(first)+1,C3-B3-LEN(first)-2)=hello
     2nd=MID(url,C3+LEN(second)+1,D3-C3-LEN(second)-2)=there
     3rd=RIGHT(url,LEN(url)-FIND(third,url,D3)-LEN(third))=now

一个简单的任务示例:使用辅助单元

令 B3=FIND(first,url,1),C3=LEN(first):首选
1st=MID(url,B3+LEN(第一个)+1,C3-B3-LEN(第一个)-2)=hello
通过替换,您可以使用单行代替辅助单元格:
1st=MID(url,FIND(第一个,url,1)+LEN(第一个)+1,FIND(第二个,url,1)-FIND(第一个,url,1)-LEN(第一个)-2)=hello

您会发现,解决此类问题最好使用分段解决方法,以便返回项目以供以后在其他类似领域使用;这样,您可以更轻松地看到问题的解决,因为它很直接。

*命名约定:https://support.office.com/en-us/article/Define-and-use-names-in-formulas-4d0f13ac-53b7-422e-afd2-abd7ff379c64

相关内容