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

时间:2017-12-06 07:19:52

标签: google-sheets spreadsheet

我使用索引(match())函数根据列标题的名称返回值。但是,我最近了解到列标题在我的数据中可能会出现4次。但是,只会有一个填充,其他的将永远是空的。

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

有吗?

目前的公式如下:

=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在Form Responses 1'!$A$1:$DY$1范围内出现了4次。我想要的那个是嵌套在index()函数中时不返回空单元格的那个。

1 个答案:

答案 0 :(得分:1)

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

enter image description here

公式为:

=QUERY(TRANSPOSE({A1:E1;FILTER(A2:E8,A2:A8 = 2)}), "select Col2 where Col2 is not null and Col1 = 'foo' limit 1")

  • 数字2是行标准(样本中为$A2
  • text foo是按列的标准(将其替换为" & I$1 & "

工作原理

  • {A1:E1; filter }是在一个数组中获取标题和所需行
  • TRANSPOSE将使用查询
  • where Col2 is not null是摆脱空单元
  • limit 1select first 1
  • 类似