Arrays 在Google Sheets单元格中的逗号分隔列表上迭代
我正在谷歌工作表上工作,希望将列转换为自定义JSON对象的过程自动化。我的工作表中有一列是逗号分隔的字符串列表: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" }, {
“苹果”、“橘子”、“香蕉”
我想用这个创建一个数组字段。只需使用串联
,即可轻松创建数组:
=连接(字符(34),“列表”,字符(34),“:[”,A1,“])”
给我:
“列表”:[“苹果”、“橘子”、“香蕉”]
现在,我想将列表中的每个项目转换为它自己的JSON对象。我期望的输出是:
"list" : [ { "name" : "apple" },
{ "name" : "orange" },
{ "name" : "banana" }
]
如果单元格中只有一项,这是一个简单的替代项:
==SUBSTITUTE(“{name:”},“''”,A1)
给我我想要的:
{“name”:“apple”}
但诀窍是,我不知道单元格中有多少项,我想用替换每个项
和串联
到目前为止,我一直在努力避免编写脚本;有可能用一些聪明的函数来实现这一点吗?或者我现在需要使用脚本来执行此操作吗?试试:
=ARRAYFORMULA(SUBSTITUTE(IF(A2:A="",,"""list"" : [ "®EXREPLACE(
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正在进行……谢谢!