Google表格:存在数据时获取列标题

时间:2017-11-15 18:02:43

标签: google-sheets array-formulas

我正在尝试根据表中的过滤器获取列标题,如果数据返回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")

我希望返回的ArrayFormula为{Stat1,Stat2}(如果第二个条件是“Hat”,则返回{Stat3})。

有人能指出我正确的方向吗? 感谢。

3 个答案:

答案 0 :(得分:1)

  

使用双FILTER

=FILTER(C1:E1,--FILTER(C2:E3, A2:A3="Bob", B2:B3="Glv"))

答案 1 :(得分:1)

我认为你想要选择一个列标题,其中相应列中有一个或多个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")

enter image description here

答案 2 :(得分:0)

使用公式作为嵌套在ArrayFormula中的IF的逻辑表达式,如果为false,则使用值为空的参数:

=ArrayFormula(IF(FILTER(C2:E3, A2:A3="Bob", B2:B3="Hat"),C1:E1,))

以上将返回{Stat1,Stat2,}

要删除结果数组的空成员,请使用JOIN和SPLIT:

=ArrayFormula(SPLIT(JOIN(",", IF(FILTER(C2:E3, A2:A3="Bob", B2:B3="Hat"), C1:E1,)), ",", FALSE))