【问题标题】:Iterate over a comma-separated list in a Google Sheets Cell遍历 Google 表格单元格中的逗号分隔列表
【发布时间】:2020-06-19 16:13:07
【问题描述】:

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

"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

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

【问题讨论】:

  • 分享您的工作表副本
  • 您是否尝试过给定的解决方案?它对你有用吗?如果不是,我们可以尝试找出原因。如果是,请记住,根据site guidelines,当答案解决您的问题时,accept 它甚至是upvote 它,这样其他人也可以从中受益。

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


【解决方案1】:

尝试:

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

【讨论】:

  • 哇!什么公式!它工作得很好,虽然我需要进一步深入了解到底发生了什么......谢谢!
猜你喜欢
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
  • 2015-10-01
相关资源
最近更新 更多