美文网首页
如何在excel中找到json串中指定字段的值

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

作者: Juha | 来源:发表于2019-06-22 12:42 被阅读0次

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

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,".","")

相关文章

网友评论

      本文标题:如何在excel中找到json串中指定字段的值

      本文链接:https://www.haomeiwen.com/subject/kvdefctx.html