Google sheets 索引(match())或查找以返回第一个非null/空值

Google sheets 索引(match())或查找以返回第一个非null/空值,google-sheets,spreadsheet,Google Sheets,Spreadsheet,我使用index(match())函数返回一个基于列标题名称的值。然而,我最近了解到,列标题可以在我的数据中出现4次。然而,只有一个被填充,其他的总是空的 虽然我可以做一个嵌套的if=(isblank(…)#do stuff),但我想知道是否有更复杂的方法告诉GSheets返回第一个非null/空值,有点像SQLcoalesque()函数 有吗 当前公式如下所示: =index('Form Responses 1'!$A$2:$DY,match($A2,'Form Responses 1'!$A

我使用index(match())函数返回一个基于列标题名称的值。然而,我最近了解到,列标题可以在我的数据中出现4次。然而,只有一个被填充,其他的总是空的

虽然我可以做一个嵌套的if
=(isblank(…)#do stuff)
,但我想知道是否有更复杂的方法告诉GSheets返回第一个非null/空值,有点像SQL
coalesque()
函数

有吗

当前公式如下所示:

=index('Form Responses 1'!$A$2:$DY,match($A2,'Form Responses 1'!$A$2:$A,0),match(I$1,'Form Responses 1'!$A$1:$DY$1,0))
但是,这一部分是有问题的部分:

match(I$1,'Form Responses 1'!$A$1:$DY$1,0)

这是因为I$1在范围
formresponses1'中出现了4次$A$1:$DY$1
。我想要的是当嵌套在
index()
函数中时不返回空单元格的函数。

我已经做了一个更简单的例子,当所有数据都在一张纸上时

公式是:

=QUERY(转置({A1:E1;过滤器(A2:E8,A2:A8=2)}),
“选择Col2,其中Col2不为null,Col1='foo'limit 1”)


  • 编号
    2
    是按行划分的标准(示例中的
    $A2
  • 文本
    foo
    是按列列出的标准(将其替换为
    “&I$1&”
它的工作原理

  • {A1:E1;filter}
    用于在一个数组中获取标题和所需行
  • 转置
    是使用查询
  • 其中Col2不为null
    用于清除空单元格
  • 限制1
    类似于
    选择第一个1