如何拆解 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
英文版