Arrays 在Google Sheets单元格中的逗号分隔列表上迭代

Arrays 在Google Sheets单元格中的逗号分隔列表上迭代,arrays,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,Arrays,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,我正在谷歌工作表上工作,希望将列转换为自定义JSON对象的过程自动化。我的工作表中有一列是逗号分隔的字符串列表: “苹果”、“橘子”、“香蕉” 我想用这个创建一个数组字段。只需使用串联,即可轻松创建数组: =连接(字符(34),“列表”,字符(34),“:[”,A1,“])” 给我: “列表”:[“苹果”、“橘子”、“香蕉”] 现在,我想将列表中的每个项目转换为它自己的JSON对象。我期望的输出是: "list" : [ { "name" : "apple" }, {

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

“苹果”、“橘子”、“香蕉”

我想用这个创建一个数组字段。只需使用
串联
,即可轻松创建数组:

=连接(字符(34),“列表”,字符(34),“:[”,A1,“])”

给我:

“列表”:[“苹果”、“橘子”、“香蕉”]

现在,我想将列表中的每个项目转换为它自己的JSON对象。我期望的输出是:

"list" : [  { "name" : "apple" },
            { "name" : "orange" },
            { "name" : "banana" }
          ]
如果单元格中只有一项,这是一个简单的替代项:

==SUBSTITUTE(“{name:”},“''”,A1)

给我我想要的:

{“name”:“apple”}

但诀窍是,我不知道单元格中有多少项,我想用
替换每个项
串联

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

试试:

=ARRAYFORMULA(SUBSTITUTE(IF(A2:A="",,"""list"" : [ "&REGEXREPLACE(
 TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(IFERROR(SPLIT(A2:A, ","))<>"", 
 "{ ""name"" : "&SPLIT(A2:A, ",")&" },♦", ))
 ,,999^99))), ",♦$", )&" ♦]"), "♦", CHAR(10)))
=ARRAYFORMULA(替换)(如果(A2:A=“”,“”列表“”:[”®EXREPLACE(
TRIM(TRANSPOSE)查询(TRANSPOSE)(IF(IFERROR)(SPLIT(A2:A,“,”)”),
“{”“名称”“:”&SPLIT(A2:A,“,”&“},♦", ))
,,999^99))), ",♦$", )&" ♦]"), "♦“,CHAR(10)))

分享一份你的工作表你尝试过给定的解决方案吗?它对你有用吗?如果没有,我们可以试着找出原因。如果是,请记住,当一个答案解决了你的问题时,它甚至是它,这样其他人也可以受益。哇!多好的公式!它工作得很好,尽管我需要深入了解一下,以准确理解w正在进行……谢谢!