我使用索引(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()
函数中时不返回空单元格的那个。
答案 0 :(得分:1)
当所有数据都在单张纸上时,我做了一个更简单的案例。
公式为:
=QUERY(TRANSPOSE({A1:E1;FILTER(A2:E8,A2:A8 = 2)}),
"select Col2 where Col2 is not null and Col1 = 'foo' limit 1")
2
是行标准(样本中为$A2
)foo
是按列的标准(将其替换为" & I$1 & "
)工作原理
{A1:E1; filter }
是在一个数组中获取标题和所需行TRANSPOSE
将使用查询where Col2 is not null
是摆脱空单元limit 1
与select first 1