我有一个包含以下模式的字符串的列:
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
答案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
您会发现,解决此类问题最好使用分段解决方法,以便返回项目以供以后在其他类似领域使用;这样,您可以更轻松地看到问题的解决,因为它很直接。