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

例题描述

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

..

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

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

..

实现步骤

使用 Excel 插件 SPL XLL

在空白单元格写入公式:

=spl("=E(?).run(replace(ID,[""{"",""}""],["""",""=""]):KV,TEAMS=TEAMS+"";""+[""S1"",""S6"",""S10""].(KV.property@c(~)).concat("";""),DETAILS=""[NUM -""+replace(NUM,""*"","","")+""].""+DETAILS)",A1:D3)

如图:

..

简要说明:

去掉 ID 字段内容中的左括号,将右括号替换为 =,使得 KV 字段内容为标准的 Key=value 结构。

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

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

问答搜集

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