FILTER 数组和 COUNTIF/loop 计数器

FILTER array and COUNTIF/loop counter

这基本上是我之前问题的延续。但是示例 Google Sheets 中概述了我的预期输出: https://docs.google.com/spreadsheets/d/1k1wQqATlhOuS_ztqtpz3FERVY-g-34rIDARbfOwdtV4/edit?usp=sharing

目的是在Form Responses 1SheetCOLUMN AC中有一个Control Number作为tracker和search key。表单提交可以添加更新或关闭 COLUMNs B and C 中指示的控制编号。我想在 COLUMN B 条目中添加一个附加到 UPDATE TICKET 的数字,当它们被过滤并添加到类似于 Sheet 1.

的整理数据条目时

我的问题出现在使用 COUNTIFSCOUNTIFS 时,因为 Sheet 1 中的一般论坛具有不同的数组大小(因此 CONCAT 错误)和 COUNTIF 不计算过滤数组的每个元素(在示例 sheet 中,它只将 2 附加到所有条目。

=arrayformula(filter('Form Responses 1'!$B2:$B,'Form Responses 1'!$C2:C=INDEX('Form Responses 1'!$C2:$C,COUNTA('Form Responses 1'!$A2:A),0))&" "&IFERROR(COUNTIF(filter('Form Responses 1'!$B2:$B,'Form Responses 1'!$C2:C=INDEX('Form Responses 1'!$C2:$C,COUNTA('Form Responses 1'!$A2:A),0),'Form Responses 1'!$B2:$B="UPDATE TICKET"),filter('Form Responses 1'!$B2:$B,'Form Responses 1'!$C2:C=INDEX('Form Responses 1'!$C2:$C,COUNTA('Form Responses 1'!$A2:A),0),'Form Responses 1'!$B2:$B="UPDATE TICKET")),"")&":"&" "&filter(TEXT('Form Responses 1'!$H2:$H,"dd/mm/yyyy HH:mm"),'Form Responses 1'!$C2:C=INDEX('Form Responses 1'!$C2:$C,COUNTA('Form Responses 1'!$A2:A),0))&char(10))

我还尝试添加 COUNTIFS 附加规则条件,例如 row(filteredarray),=<row(filterearray) 以输出每个匹配项的预期计数器 1、2、3 等(类似于控制编号的工作方式) UPDATE TICKETROW 函数似乎不接受过滤数组作为单元格引用。最后,我想省略最后一个条目的计数器,即 CLOSE TICKET。我在链接 Google Sheets.

中详细说明了我的试验和预期输出

表格回复 1 - AE2

=ArrayFormula(IF(C2:C="",,"UPDATE TICKET "&COUNTIFS(C:C,C2:C,ROW(A:A),"<="&ROW(A2:A))&": "&TEXT(A2:A,"dd/MM/yyyy HH:mm")))

工作表 1

=ArrayFormula(REGEXREPLACE(REGEXREPLACE(SPLIT(TRANSPOSE(QUERY(QUERY(FILTER({'Form Responses 1'!C:C&"♥",'Form Responses 1'!AE:AE&"♦"},'Form Responses 1'!B:B="UPDATE TICKET"),"select max(Col2) where Col2 is not null group by Col2 pivot Col1",),,10^7)),"♥"),"(?:^\s*)|(?:\s*(♦)\s*)|(?:♦\s*$)",""),"♦",CHAR(10)))

很难理解你到目前为止所做的事情,但你很清楚自己的目标,所以我重新做了我需要做的事情才能达到目标。任何黄色的公式都是我的。您将在单元格 A2 的 tab called MK.Help 中找到此解决方案。

=ARRAYFORMULA(SUBSTITUTE(TRIM(SPLIT(TRANSPOSE(QUERY(MID(QUERY({"00000"&Form!C2:C&Form!AD2:AD&":|",TEXT(ROW(Form!A2:A),"00000")&Form!AE2:AE&": "&TEXT(IF(Form!H2:H,Form!H2:H,Form!A2:A),"m/d/yy h:mm")&CHAR(10)&CHAR(10),Form!B2:B},"select MAX(Col2) where Col3 is not null group by Col2 pivot Col1"),6,100),,9^9)),"|")),CHAR(10)&" ",CHAR(10)))