索引(匹配())或查找 return 第一个非空/空值
Index(match()) or lookup to return first non null / empty value
我正在使用索引(match()) 函数return 一个基于列名称header 的值。但是,我最近了解到 header 列可以在我的数据中出现 4 次。然而,永远只有一个被填充,其他的总是空的。
虽然我可以嵌套 if =(isblank(...)# do stuff)
我想知道是否有更复杂的方法告诉 GSheets return 第一个非空/空值,有点像 SQL coalesque()
函数。
有吗?
当前公式如下所示:
=index('Form Responses 1'!$A:$DY,match($A2,'Form Responses 1'!$A:$A,0),match(I,'Form Responses 1'!$A:$DY,0))
不过,这块是问题块:
match(I,'Form Responses 1'!$A:$DY,0)
这是因为I$1在Form Responses 1'!$A:$DY
范围内出现了4次。我想要的是嵌套在 index()
函数中时 return 不是空单元格的那个。
当所有数据都在单个 sheet 上时,我做了一个更简单的案例 sheet。
公式为:
=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 & "
)
工作原理
{A1:E1; filter }
是在一个数组中得到headers和想要的行
TRANSPOSE
是使用query
where Col2 is not null
是去掉空单元格
limit 1
就像 select first 1
我正在使用索引(match()) 函数return 一个基于列名称header 的值。但是,我最近了解到 header 列可以在我的数据中出现 4 次。然而,永远只有一个被填充,其他的总是空的。
虽然我可以嵌套 if =(isblank(...)# do stuff)
我想知道是否有更复杂的方法告诉 GSheets return 第一个非空/空值,有点像 SQL coalesque()
函数。
有吗?
当前公式如下所示:
=index('Form Responses 1'!$A:$DY,match($A2,'Form Responses 1'!$A:$A,0),match(I,'Form Responses 1'!$A:$DY,0))
不过,这块是问题块:
match(I,'Form Responses 1'!$A:$DY,0)
这是因为I$1在Form Responses 1'!$A:$DY
范围内出现了4次。我想要的是嵌套在 index()
函数中时 return 不是空单元格的那个。
当所有数据都在单个 sheet 上时,我做了一个更简单的案例 sheet。
公式为:
=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 & "
)
工作原理
{A1:E1; filter }
是在一个数组中得到headers和想要的行TRANSPOSE
是使用querywhere Col2 is not null
是去掉空单元格limit 1
就像select first 1