遍历 Google Sheets Cell 中的逗号分隔列表

Iterate over a comma-separated list in a Google Sheets Cell

我正在处理 Google Sheet 并希望自动执行将列转换为自定义 JSON 对象的过程。我的 sheet 中有一列是逗号分隔的字符串列表:

"apple", "orange", "banana"

我想用它创建一个数组字段。使用 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

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

尝试:

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