Google sheets ArrayFormula按多个标准检索列表 输入
数据表Google sheets ArrayFormula按多个标准检索列表 输入,google-sheets,formula,array-formulas,Google Sheets,Formula,Array Formulas,数据表 TaskId ClientId Canceled 1 1 0 2 1 0 3 1 0 4 2 0 5 2 1 6 2 0 7 3 0 ClientId 1 1 2 3 报告表 TaskId ClientI
TaskId ClientId Canceled
1 1 0
2 1 0
3 1 0
4 2 0
5 2 1
6 2 0
7 3 0
ClientId
1
1
2
3
报告表
TaskId ClientId Canceled
1 1 0
2 1 0
3 1 0
4 2 0
5 2 1
6 2 0
7 3 0
ClientId
1
1
2
3
期望输出
Arrayformula用于按取消=0的客户端从数据中获取所有TaskID
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\u列中得到结果:
=转置(拆分(连接(“,”,helper\u column))
我想在不需要向下拖动的情况下实现这一点。试试这个:
=ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE("In the 'Report' tab this spreadsheet, cell B2 I entered
=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))
=ARRAYFORMULA(转置(拆分)(串联)(尝试以下操作:
=ARRAYFORMULA(TRANSPOSE(SPLIT(CONCATENATE("In the 'Report' tab this spreadsheet, cell B2 I entered
=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))
=ARRAYFORMULA(转置(拆分)(连接)(在“报告”选项卡中,单元格B2中输入
在“报告”选项卡中,我输入了单元格B2
是否需要重复的客户端ID(两个1)的结果?@anonymous,重复的客户端ID是必要的,因为任务是按模式创建工作流,模式可能会重复。好的……如果不是重复的,一个简单的查询就可以了。不过,现在不管怎样……是重复的客户端ID(两个1)的结果吗必要吗?@匿名,重复的客户端ID是必要的,因为任务是按模式创建工作流,模式可能会重复。好的……如果不是重复的,一个简单的查询就可以了。不过现在不管怎样……谢谢!我花了20分钟才得到它。为什么我们需要*len(filter(Data!B2:B,Data!C2:C=0))
?这个公式也起作用:=arrayformula(vlookup(A2:A5&“”,regexreplace({unique(filter)(Data!B2:B,Data!C2:C=0))&“”,trim(transpose(transpose)(query)(if(transpose(unique)(filter(Data!B2:B,Data!C2:C=0)))=filter(Data!B2:B,Data!C2:C=0)),filter(Data!A2:A,Data!C2:C=0),filter(Data!A2:A,Data!A,Data!C2:C=0)和“,”)
谢谢!我花了20分钟才拿到它。为什么我们需要*len(filter(Data!B2:B,Data!C2:C=0))
?这个公式也很有效:=arrayformula(vlookup(A2:A5&“”),regexreplace({unique(filter(Data!B2:B,Data!C2:C=0))和“”),trim(transpose)(如果((transpose)(unique(transpose)(filter(unique)(filter(Data!B2:B,Data!Data!C2:B,Data!C=0)))))=0))=filter(Data!B2:B,Data!C2:C=0))(数据!A2:A,数据!C2:C=0)和“,”,),,”,,,,,50000)),,,,,,,,,,,,,,2,0))
谢谢!接受答案是因为它更短,更简单,而且在所有任务取消时都不会出错。干杯!谢谢!接受答案是因为它更短,更简单,而且在所有任务取消时都不会出错。干杯!