遍历 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" }
但诀窍是我不知道单元格中有多少项目开始,我想为每个项目 SUBSTITUTE
和 CONCATENATE
。
到目前为止,我一直在努力避免编写脚本;是否可以使用一些巧妙的功能来做到这一点?或者我现在需要使用脚本来执行此操作吗?
尝试:
=ARRAYFORMULA(SUBSTITUTE(IF(A2:A="",,"""list"" : [ "®EXREPLACE(
TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(IFERROR(SPLIT(A2:A, ","))<>"",
"{ ""name"" : "&SPLIT(A2:A, ",")&" },♦", ))
,,999^99))), ",♦$", )&" ♦]"), "♦", CHAR(10)))
我正在处理 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" }
但诀窍是我不知道单元格中有多少项目开始,我想为每个项目 SUBSTITUTE
和 CONCATENATE
。
到目前为止,我一直在努力避免编写脚本;是否可以使用一些巧妙的功能来做到这一点?或者我现在需要使用脚本来执行此操作吗?
尝试:
=ARRAYFORMULA(SUBSTITUTE(IF(A2:A="",,"""list"" : [ "®EXREPLACE(
TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(IFERROR(SPLIT(A2:A, ","))<>"",
"{ ""name"" : "&SPLIT(A2:A, ",")&" },♦", ))
,,999^99))), ",♦$", )&" ♦]"), "♦", CHAR(10)))