【动态数组】通过TEXTSPLIT函数批量提取JSON格式数据

张俊
张俊

WPS函数专家

要想下班早,表格必须用的好!

大家好,我是张俊。

场景

近期接到宝子们咨询,说公司给出的数据是JSON格式的数据,请问如何将数据按照对应关系提取到WPS表格中呢?具体数据如下图所示:

  1. 问题分析

1.1 啥是JSON格式?

如果不懂JSON格式数据的话,大家看到这样是格式可能比较懵,接下来我先解释下啥是JSON格式的数据?

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

看到上段文字大家的感觉是啥?是不是似懂非懂?感觉懂了,又感觉啥也没有懂?感觉每个字都认识,放在一起就都不认识了?其实这就是不懂编程的人看到专业术语和格式的第一看法和想法。

如果懂编程的话,就大部分都知道JSON格式数据,如果不知道的,简单的解释下就懂了。如果懂JS的话,就是字典对象(Object)中包含数组(Array),数组(Array)中包含字典对象(Object);如果懂Python的话,就是字典(dict)中包含列表(list),列表(list)中包含字典(dict)。

1.2 JSON数据结构

如果不懂编程话,就以本数据简化,具体看下图解释:

通过上图,我们可以看出,此数据的格式如下:

  • 最外层是一对花括号"{}"包裹

  • 各个分类之间之间用逗号","隔开

  • 各个分类与岗位之间用冒号":"隔开

  • 各岗位外层用中括号"[]"包裹,之间用逗号","隔开

  • 所有的分类和岗位都用单引号"'"包裹

  • 以上所有的符号都是英文半角状态下的符号

这下应该可以了解清楚JSON格式的数据之间结构了吧?

  1. 确定拆分符

我们根据学习TEXTSPLIT函数的基础教程(【动态数组】以动态数组视角学习TEXTSPLIT函数基本用法和进阶教程(【动态数组】以动态数组视角学习TEXTSPLIT函数进阶用法)可以得知需要确定按列拆分分隔符按行拆分分隔符

2.1 按行拆分符

按行拆分就是将数据根据指定的分隔符(参数3)拆分成各行,通过上图可以看出,最适合的按行拆分符就是右中括号和逗号"],"

2.2 按列拆分符

按列拆分就是根据数据的分隔符(参数2)拆分成各列,通过上图可以看出,需要多个分隔符组成 ,如:左花括号"{"、单引号"'"、冒号":"、左中括号"["、逗号","、右中括号和右花括号"]}",有时符号之间还会有空格产生,因此也需要将空格" "也要作为分隔符,最终效果按列拆分符为数组,表格数组以一对花括号"{}"包裹,各个符号用双引号""包裹,各个数组元素之间用逗号","隔开(是不是感觉WPS表格的数组格式和JSON格式有些相似呢?),具体效果如下图:

💡

由于最后的一行数据与右花括号之间没有逗号",",因此在按行拆分分隔符(参数3)时不会将其拆分,因此这里要用右中括号和右花括号"]}"

  1. 实现效果

具体实现公式如下:

=TEXTSPLIT(A1,{"{","'",":","[",",","]}"," "},"],",1,,"")

为了对函数便于理解,我特别加了颜色和标示加以区分参数2和参数3,具体如下:

公式解释:

1.由于TEXTSPLIT函数根据分隔符拆分后,原本的位置就会留下空白单元格,因此需要通过忽略空白单元格(参数4为1或TRUE)来处理

2.由于各个分类的岗位之间不一定是一样的数量,不足的回报#N/A错误,因此需要将异常返回值(参数6)转化为空值

  1. 方法总结

当有很多个字符都需要批量处理时,千万不要多层嵌套TEXTSPLIT函数,其实按列拆分分隔符(参数2)和按行拆分分隔符(参数3)只需要将各个分隔符以表格数组形式(以一对花括号"{}"包裹,各个符号用双引号""包裹,各个数组元素之间用逗号","隔开)展示即可。

关于通过TEXTSPLIT函数提取JSON格式数据,你学会了吗?学会的话,记得得点赞❤️❤️❤️和收藏并在评论区评论“我学会了!”,您的点赞❤️❤️❤️、收藏和评论是对我最大的支持!

🚩

练习文件:👉通过TEXTSPLIT函数批量提取JSON格式数据👈


个人往期帖子合集:【帖子合集】个人往期帖子合集来了!

你学会了吗?
学会了!
9 (100%)
太难了!
0 (0%)
9人参与 投票已截止
上海
浏览 2107
1
13
分享
13 +1
11
1 +1
全部评论 11
 
幸福春
学习了
· 山东省
回复
 
尹俊超
尹俊超

创作者俱乐部成员

俊哥出品,必属精品!🤩🤩🤩
· 河南省
1
回复
张俊
张俊

WPS函数专家

跟着超哥不迷路,超哥带我们上高速。
· 上海
回复
 
刘航
刘航

创作者俱乐部成员

看着好复杂,还需要再消化一下,感谢俊哥的分享
· 北京
1
回复
张俊
张俊

WPS函数专家

是的,看似复杂,其实很简单,如果大家了解JSON就比较容易理解了,主要是因为符号太多了,不好梳理。
· 上海
回复
 
HC.旋
俊哥出品,必属精品!
· 江苏省
1
回复
张俊
张俊

WPS函数专家

坐等旋哥的分享,我必第一个沙发。
· 上海
回复
 
邓华
邓华

WPS函数专家

俊哥出品,必属精品!
· 广东省
1
回复
张俊
张俊

WPS函数专家

跟着邓老师不迷路,动态数组让我们工作效率如虎添翼!
· 上海
回复
 
答案
继续学习!
· 浙江省
1
回复
张俊
张俊

WPS函数专家

加油,动态数组,让数据处理更简单!
· 上海
回复