我有一个这样的字符串:
"page_age:15#resp_gender:4#EN01CTY:3#QMktSize:6#Page_Device_usagesm:8"
并在 Excel 中想要获得如下格式的结果:
Resp_gender En01cty Page_Device_usage
4 3 8
答案1
好的,如果只对一行执行此操作,则 T2C(文本到列)+ C&TP(复制和转置粘贴)就足够了。只需像这样执行每个步骤 2 次:
带分隔符的 T2C#
将会改变
page_age:15#resp_gender:4#EN01CTY:3#QMktSize:6#Page_Device_usagesm:8
到
A | B | C | D | E
page_age:15 | resp_gender:4 | EN01CTY:3 | QMktSize:6 | Page_Device_usagesm:8
C&TP 会将其改为
page_age:15
resp_gender:4
EN01CTY:3
QMktSize:6
Page_Device_usagesm:8
下一个带分隔符的 T2C:
会将其更改为几乎完成的表格
A | B
page_age | 15
resp_gender | 4
EN01CTY | 3
QMktSize | 6
Page_Device_usagesm | 8
最后的 C&TP 会将其切换为我们想要的外观
A | B | C | D | E
page_age | resp_gender | EN01CTY | QMktSize | Page_Device_usagesm
15 | 4 | 3 | 6 | 8
但是,对多行执行此操作将需要大量工作。现在我们假设我们只寻找具有以下值的特定值:
page_age:15#resp_gender:4#EN01CTY:3#QMktSize:6#Page_Device_usagesm:8
page_age:3#resp_gender:11#EN01CTY:9#QMktSize:4#Page_Device_usagesm:1
page_age:9#resp_gender:5#EN01CTY:7#QMktSize:2#Page_Device_usagesm:12
page_age:22#resp_gender:8#EN01CTY:1#QMktSize:5#Page_Device_usagesm:2
(在单元格中添加此项A2
,A4
因为我们想将第 1 行用作标题)
我们知道什么?值前面总是 a,:
值后面也是 a #
(最后一项除外)。
我们想要什么?剪切我们想要的值前后的文本。
让我们再次假设一些事情:我们想要来自的值resp_gender
,因此我们将其设置resp_gender
为 B 列(在 B1 中)的标题。
开始剪切我们值前面的所有内容。这样我们就需要找到它的起始位置。该FIND
函数将执行此操作。因此,我们尝试使用它=FIND(B$1,$A1)
($
是为了稍后使其可拖动),并得到 13。只需将其放入RIGHT
公式中即可LEN
进行测试:
=RIGHT($A1,LEN($A1)-FIND(B$1,$A1))
将带我们到达esp_gender:4#EN01CTY:3#QMktSize:6#Page_Device_usagesm:8
。
好的,我们还需要减去标题本身的长度,因此它变成:
=RIGHT($A2,LEN($A2)-FIND(B$1,$A2)-LEN($B1))
我们得到了4#EN01CTY:3#QMktSize:6#Page_Device_usagesm:8
。太棒了,不需要计算:
因为它已经被剪切了。我们现在需要做的就是剪切值后面的文本。
为了不破坏公式并使其保持简短,我们将其保留在 B2 中,并在 C2 中进行正确的剪切(暂时)。众所周知,我们可以#
很容易地找到FIND
。将其与LEFT
公式合并应该会得到我们想要的结果:
=LEFT(B2,FIND("#",B2))
给出了4#
。好的,一个字符太长了,所以只需要一个-1
就可以了:
=LEFT(B2,FIND("#",B2)-1)
现在,我们只需从 B2 复制公式(不带 )并将其粘贴到第二个公式中的每个 B2 上,即可将两个公式合并在一起=
。这样我们得到:
=LEFT(RIGHT($A2,LEN($A2)-FIND(B$1,$A2)-LEN($B1)),FIND("#",RIGHT($A2,LEN($A2)
-FIND(B$1,$A2)-LEN($B1)))-1)
返回4
。看起来它有效。检查所有标题时,如果我们要查找最后一部分(后面没有#
),我们会遇到问题。但一个简单的IFERROR
就可以解决这个问题。所以我们最终得到这个:
=IFERROR(LEFT(RIGHT($A2,LEN($A2)-FIND(B$1,$A2)-LEN($B1)),FIND("#",RIGHT($A2,LEN($A2)
-FIND(B$1,$A2)-LEN($B1)))-1),RIGHT($A2,LEN($A2)-FIND(B$1,$A2)-LEN($B1)))
以上就是关于获取所需公式的大量文字。但请将其作为一个小教程,以便将来获取公式(请始终记住,有多种方法可以获取此公式)。