Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets ArrayFormula按多个标准检索列表 输入_Google Sheets_Formula_Array Formulas - Fatal编程技术网

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))
谢谢!接受答案是因为它更短,更简单,而且在所有任务取消时都不会出错。干杯!谢谢!接受答案是因为它更短,更简单,而且在所有任务取消时都不会出错。干杯!