遍历Google表格单元格中以逗号分隔的列表

时间:2020-06-19 16:13:07

标签: arrays google-sheets google-sheets-formula array-formulas google-sheets-query

我正在使用Google表格,并且希望自动化将列转换为自定义JSON对象的过程。我的工作表中有一列是用逗号分隔的字符串列表:

"apple", "orange", "banana"

,我想以此创建一个Array字段。使用CONCATENATE创建一个数组很容易:

=CONCATENATE(CHAR(34), "list", CHAR(34), " : [", A1, "]")

给我:

"list" : ["apple", "orange", "banana"]

现在,我想将列表中的每个项目变成它自己的JSON对象。我想要的输出是:

"list" : [  { "name" : "apple" },
            { "name" : "orange" },
            { "name" : "banana" }
          ]

如果单元格中只有一项,这很容易替代:

==SUBSTITUTE("{ name: ''}", "''", A1)

给我我想要的东西:

{ "name" : "apple" }

但是诀窍在于,我不知道单元格中有多少个项目开始,我想为每个项目分别SUBSTITUTECONCATENATE

到目前为止,我一直在努力避免编写脚本;有一些聪明的功能可以做到这一点吗?还是我现在需要使用脚本来执行此操作?

1 个答案:

答案 0 :(得分:2)

尝试:

=ARRAYFORMULA(SUBSTITUTE(IF(A2:A="",,"""list"" : [ "&REGEXREPLACE(
 TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(IFERROR(SPLIT(A2:A, ","))<>"", 
 "{ ""name"" : "&SPLIT(A2:A, ",")&" },♦", ))
 ,,999^99))), ",♦$", )&" ♦]"), "♦", CHAR(10)))

enter image description here