如何在excel中找到json串中指定字段的值

这个方法真的很笨很笨但是我觉得很好理解哈哈

1. 首先介绍一下咱们这里的两个函数,一个是MID(),一个是FIND()

a)、find()函数可以获取到指定文本在单元格中的位置

find()函数中有三个参数,第一个是需要查找的文本,第二个是指定单元格,第三个是开始查找的单元格中文本开始的下标,如果不填写默认从头开始查找。
eg. 单元格A1中的文本为1234567,使用find()函数找出5所在的单元格中的第几个位置,则这么使用:find("5",A1)得出的结果是5

b)、mid()函数可以获取到单元格内指定范围的数据

mid()函数中也是三个参数且都是必填项,第一个是指定单元格,第二个是显示开始的下标,第三个是从第二个从参数的下标开始往后取几个字符。
eg. 接着上个例子,从5往后取两个数包含5,这么使用:mid(A1,5,2),得出的结果是56

2、直接上栗子

eg. 希望能够获取A列项中的name里的值和greet里的打招呼之后的名字
A B C D
{"name":"Tom","greet":"hi,Lora."} Tom Lora. Lora
{"name":"Jake","greet":"hi,Mike."} Jake Mike. Mike
{"name":"Lisa","greet":"hi,Tony."} Lisa Tony. Tony
{"name":"Mike","greet":"hi,Lora."} Mike Lora. Lora

此时在B1和C1的单元格中如何写公式呢
B1中可以这么写:
=MID(A1,(FIND("name",A1)+LEN("name"":""")),(FIND(""",""greet",A1))-(FIND("name",A1)+LEN("name"":""")))

怎么理解呢,这里是find({"name":",A1)这个指的是第一个name的n这个字母的下标,后面的LEN("name"":""")指的是name":"这些字符串的长度,即(FIND("name",A1)+LEN("name"":""")指的是{"name":"后的第一个字符所在的位置;
(FIND(""",""greet",A1))-(FIND("name",A1)+LEN("name"":"""))这个指的是从name":"到,"greet"经历的长度,即name字段里的姓名的长度。

C1中可以这么写:
=MID(A1,(FIND("hi",A1)+LEN("hi,")),(FIND("""}",A1))-(FIND("hi",A1)+LEN("hi,")))
这里的规则是和上面的是一样的,但是有个问题,这里结尾多了一个小数点,我们需要去除小数点,D列这里可以用到SUBSTITUTE()函数,
SUBSTITUTE()函数有4个参数,第一个为指定单元格,第二个为被替换的字符,第三个为替换为新的字符,第四个可填可不填,不填则会替换所有的符合满足条件的,输入相应的数字将会替换在单元格中出现此数字次数的那个字符。
D列的函数表达式则为:
=SUBSTITUTE(C1,".","")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 按照用途分类出以下文本和数据函数: ASC 用途:将字符串中的全角(双字节)英文字母更改为半角(单字节)字符。语法...
    四方院祭司阅读 1,262评论 0 1
  • 一、 Max、Min、Average 1) 最大值 MAX(区域 ) 2) 最小值 MIN(区域 ) 3) 平均分...
    紫紫亲亲小乖阅读 570评论 0 1
  • 转自链接 目录 1.认识NPOI 2.使用NPOI生成xls文件 2.1创建基本内容 2.1.1创建Workboo...
    腿毛裤阅读 10,718评论 1 3
  • 今天,我放晚学回家的时候我和外婆一起打扫卫生,擦桌子啊、擦窗户啊,还有拖楼梯呀擦栏杆那还有为我们家的三只小乌龟换水...
    张镱馨阅读 92评论 0 1
  • 阳光早早照着 夹道植被绿着 行人的如鱼的 如风如梭穿过 昨晚的风停了 初夏的花开了 思想缓缓醒来 今天慢慢启开 放...
    夏花_d043阅读 361评论 0 1