ArrayFormula 按多个条件检索列表
ArrayFormula retrieve list by multiple criterias
输入
数据sheet
TaskId ClientId Canceled
1 1 0
2 1 0
3 1 0
4 2 0
5 2 1
6 2 0
7 3 0
举报sheet
ClientId
1
1
2
3
期望的输出
Arrayformula 从数据中获取所有 TaskIds,其中 Canceled = 0
TaskIds
1
2
3
1
2
3
4
6
7
我有 join
+ filter
公式可以向下拖动,它为我提供了客户的所有 TaskId:
ClientId TaskIds
1 1,2,3
1 1,2,3
2 4,6
3 7
然后我从这个 helper_column:
得到我的结果
=transpose(split(join(",", helper_colum)))
而且我想在不需要拖延的情况下完成这项工作。
试试这个:
=ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE(""&TRANSPOSE(IF(TRANSPOSE(A11:A14)=B2:B8,IF(C2:C8=0,A2:A8,""),""))),"")))
A11:A14=报告 sheet 客户端 ID。
A2:C8=数据 sheet 值。
干杯
在 'Report' 选项卡 this spreadsheet 中,我输入的单元格 B2
=arrayformula(vlookup(A2:A5&"", regexreplace({unique(filter(Data!B2:B, Data!C2:C=0))&"", trim(transpose(query(if((transpose(unique(filter(Data!B2:B, Data!C2:C=0)))=filter(Data!B2:B, Data!C2:C=0))*len(filter(Data!B2:B, Data!C2:C=0)),filter(Data!A2:A, Data!C2:C=0)&",",),,50000)))},",$", ), 2, 0))
输入
数据sheet
TaskId ClientId Canceled
1 1 0
2 1 0
3 1 0
4 2 0
5 2 1
6 2 0
7 3 0
举报sheet
ClientId
1
1
2
3
期望的输出
Arrayformula 从数据中获取所有 TaskIds,其中 Canceled = 0
TaskIds
1
2
3
1
2
3
4
6
7
我有 join
+ filter
公式可以向下拖动,它为我提供了客户的所有 TaskId:
ClientId TaskIds
1 1,2,3
1 1,2,3
2 4,6
3 7
然后我从这个 helper_column:
得到我的结果=transpose(split(join(",", helper_colum)))
而且我想在不需要拖延的情况下完成这项工作。
试试这个:
=ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE(""&TRANSPOSE(IF(TRANSPOSE(A11:A14)=B2:B8,IF(C2:C8=0,A2:A8,""),""))),"")))
A11:A14=报告 sheet 客户端 ID。
A2:C8=数据 sheet 值。
干杯
在 'Report' 选项卡 this spreadsheet 中,我输入的单元格 B2
=arrayformula(vlookup(A2:A5&"", regexreplace({unique(filter(Data!B2:B, Data!C2:C=0))&"", trim(transpose(query(if((transpose(unique(filter(Data!B2:B, Data!C2:C=0)))=filter(Data!B2:B, Data!C2:C=0))*len(filter(Data!B2:B, Data!C2:C=0)),filter(Data!A2:A, Data!C2:C=0)&",",),,50000)))},",$", ), 2, 0))