如何查询 Google 表格中的数组?

How to query an array in Google Sheets?

在 Google 表格中,我在一个单元格中有一个数组,如 [27, https://www.example.com/page1.html, false, false, 1]

如何使用公式访问它的各个部分?

我知道通过 =SPLIT() 的方法,例如 =split(split(A2,"["),",") - 但我非常希望,如果可能的话,直接访问每个部分(每个数组在我的数组中总是有相同数量的部分数据集)。

可能类似于 =QUERY(query(A2,",",1)) - 单元格、分隔线、项目编号...? - 结果是 27.

我想借此机会提出一个使用 Google Apps Script 的解决方案。基本上,您可以创建自己的 自定义 函数来完成此任务。

请按照以下步骤操作:

  1. 从您的电子表格文件转到 工具 => 脚本编辑器

  2. 清除默认的Code.gs文件,复制粘贴这个函数并保存修改:

    function indexArray(arr,pos) {
       return array=arr.slice(1,-1).split(",")[pos-1]
    }
    

  1. 您现在可以从电子表格文件中访问 indexArray() 函数。它接受两个参数,包含数组的所需单元格和要访问的元素的位置,从 1:

    开始
    =indexArray(A2,2)
    

例如,这将为您提供数组的 second 元素,即:https://www.example.com/page1.html.

如果您需要有关自定义函数工作原理的更多信息,请查看这些 instructions。它们非常简单。

=INDEX(SPLIT(A2,"[,]"),1)
  • SPLIT 每个字符 [,]
  • INDEX进入结果数组