Google 工作表:存在数据时获取列 headers
Google sheets: Get column headers when data is present
我正在尝试根据 table 中的过滤器获取列 headers,如果数据 return 为 1。例如:
ColA ColB ColC ColD ColE
Row1 Stat1 Stat2 Stat3
Row2 Bob Hat 0 0 1
Row3 Bob Glv 1 1 0
所以如果我有过滤功能:
=FILTER(C2:E3, A2:A="Bob", B2:B="Glv")
我希望 return ArrayFormula 为 {Stat1, Stat2}(如果第二个条件为 "Hat",则为 {Stat3})。
谁能指出我正确的方向?
谢谢
使用双 FILTER
:
=FILTER(C1:E1,--FILTER(C2:E3, A2:A3="Bob", B2:B3="Glv"))
使用公式作为嵌套在 ArrayFormula 中的 IF 的逻辑表达式,使用空参数作为值 if false:
=ArrayFormula(IF(FILTER(C2:E3, A2:A3="Bob", B2:B3="Hat"),C1:E1,))
以上将 return {Stat1,Stat2,}
要删除结果数组的空成员,请使用 JOIN 和 SPLIT:
=ArrayFormula(SPLIT(JOIN(",", IF(FILTER(C2:E3, A2:A3="Bob", B2:B3="Hat"), C1:E1,)), ",", FALSE))
我假设你想要 select 一列 header,其中相应列中有一个或多个 1,所以想出了
=query({transpose(query(FILTER(A2:E, A2:A="Bob", B2:B="Glv"),"select sum(Col3),sum(Col4),sum(Col5)")),transpose(C1:E1)},"select Col3 where Col2>0")
我正在尝试根据 table 中的过滤器获取列 headers,如果数据 return 为 1。例如:
ColA ColB ColC ColD ColE
Row1 Stat1 Stat2 Stat3
Row2 Bob Hat 0 0 1
Row3 Bob Glv 1 1 0
所以如果我有过滤功能:
=FILTER(C2:E3, A2:A="Bob", B2:B="Glv")
我希望 return ArrayFormula 为 {Stat1, Stat2}(如果第二个条件为 "Hat",则为 {Stat3})。
谁能指出我正确的方向? 谢谢
使用双
FILTER
:
=FILTER(C1:E1,--FILTER(C2:E3, A2:A3="Bob", B2:B3="Glv"))
使用公式作为嵌套在 ArrayFormula 中的 IF 的逻辑表达式,使用空参数作为值 if false:
=ArrayFormula(IF(FILTER(C2:E3, A2:A3="Bob", B2:B3="Hat"),C1:E1,))
以上将 return {Stat1,Stat2,}
要删除结果数组的空成员,请使用 JOIN 和 SPLIT:
=ArrayFormula(SPLIT(JOIN(",", IF(FILTER(C2:E3, A2:A3="Bob", B2:B3="Hat"), C1:E1,)), ",", FALSE))
我假设你想要 select 一列 header,其中相应列中有一个或多个 1,所以想出了
=query({transpose(query(FILTER(A2:E, A2:A="Bob", B2:B="Glv"),"select sum(Col3),sum(Col4),sum(Col5)")),transpose(C1:E1)},"select Col3 where Col2>0")