如何拆解 KV 格式的字串({key}value)

例题描述

在 Excel 中有包含四个字段的数据表,且各字段的数据内容不一。其中的 ID 字段为 {key}value 结构的数值,如下图所示:

..

现在需要分两步对数据进行如下整理。

1,按行将 ID 中 key 值分别为 S1,S6,S10 的 value 值取出来,然后拼到 TEAMS 字段后面;2,再将 NUM 的内容中连接符“*”替换为逗号,然后拼到 DETAILS 字段前面。具体的整理相关内容,以及整理后的期望结果如下图所示,其中红色部分为整理前后的相关数据:

..

 

实现步骤

1.   Excel 选中区域 A1:D3,然后按 Ctrl+C 复制文本。

2.   切换回集算器,将数据粘贴到格子 A1。

3.      编写处理代码,示例如下:


A

B

1

……(从 Excel 粘贴的数据 )


2

=A1.import@t()


3

=A2.derive(replace(ID,"{",""):KV)


4

=A3.run(KV=replace(KV,"}","="))


5

=A4.run(values=KV.property@c("S1")+";"+KV.property@c("S6")+";"+KV.property@c("S10"),TEAMS=TEAMS+";"+values)


6

=A5.run(DETAILS="[   NUM -"+replace(NUM,"*",",")+"]."+DETAILS)


7

=A6.new(TEAMS,DETAILS,NUM,ID)


 

A2   将 A1 中的文本导为序表,并使用 t 选项将第一行当做字段名。

A3   去掉 ID 字段内容中的左括号,并放入新的字段 KV 中。

A4   再将右括号替换为 =,使得 KV 字段内容为标准的 Key=value 结构。

A5   使用函数 property 便可从标准的 Key=value 串中获取到相应 key 的键值,然后拼接到 TEAMS 字段。完成数据整理要求的第 1 步。

A6   替换 NUM 的分节符号后,拼到 DETAILS 前面。完成数据整理要求的第 2 步。

A7   去掉整理序表中的临时字段 KV。

 

4.      执行完成后,复制 A7 格子内容,粘贴到 Excel 中的 A8 即可。


问答搜集

https://stackoverflow.com/questions/61716625/copy-modify-the-copied-content-and-paste