Regex 使用Google Sheets查询功能对数据进行分组

Regex 使用Google Sheets查询功能对数据进行分组,regex,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,Regex,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,我在谷歌表格中有以下数据: 我希望在另一个工作表中运行查询功能,以便在选择日期时,查询将在一列中返回在同一日期参加活动的所有与会者,如下所示: 当可能有50名员工参加一个活动时,我的公式在每个日期仅返回一名与会者。我希望所有50个列都在一列中,而不是50个单独的列 下面是我的数据链接。“其他就诊”表的D2单元格是我的查询功能 如果您能提供公式帮助,我将不胜感激。您可以这样做: =ARRAYFORMULA(TRANSPOSE({QUERY('Form Responses 4'!B:D, "

我在谷歌表格中有以下数据:

我希望在另一个工作表中运行查询功能,以便在选择日期时,查询将在一列中返回在同一日期参加活动的所有与会者,如下所示:

当可能有50名员工参加一个活动时,我的公式在每个日期仅返回一名与会者。我希望所有50个列都在一列中,而不是50个单独的列

下面是我的数据链接。“其他就诊”表的D2单元格是我的查询功能

如果您能提供公式帮助,我将不胜感激。

您可以这样做:

=ARRAYFORMULA(TRANSPOSE({QUERY('Form Responses 4'!B:D,
 "select B,C 
  where C >= date '"&TEXT(B5, "yyyy-mm-dd")&"'
    and C <= date '"&TEXT(B6, "yyyy-mm-dd")&"' 
    and B = '"&B4&"' 
  order by C asc", 1), 
 REGEXREPLACE(SPLIT(QUERY('Form Responses 4'!B:D,
 "select D
  where C >= date '"&TEXT(B5, "yyyy-mm-dd")&"'
    and C <= date '"&TEXT(B6, "yyyy-mm-dd")&"' 
    and B = '"&B4&"' 
  order by C asc", 1), ";"), "^, ", )}))
=ARRAYFORMULA(转置({QUERY('formresponses 4')!B:D,
“选择B、C
其中C>=日期“&”文本(B5,“yyyy-mm-dd”)&”
C=日期“&”文本(B5,“yyyy-mm-dd”)&“日期”
C=日期“&”文本(B5,“yyyy-mm-dd”)&“日期”
C=日期“&”文本(B5,“yyyy-mm-dd”)&“日期”
C=日期“&”文本(B5,“yyyy-mm-dd”)&“日期”
C=日期“&”文本(B5,“yyyy-mm-dd”)&“日期”

和C谢谢。在选择所有与会者时效果很好,但如果选择一名与会者则不起作用。我看到您更改了表单响应4中的源数据!A:C而不是E:Fdid您甚至尝试了第二个公式?抱歉-我没有看到。这太完美了-非常感谢我现在注意到“有人参加的事件下拉列表中的函数不起作用。
=ARRAYFORMULA(TRANSPOSE({QUERY('Form Responses 4'!B:D,
 "select B,C 
  where C >= date '"&TEXT(B5, "yyyy-mm-dd")&"'
    and C <= date '"&TEXT(B6, "yyyy-mm-dd")&"' 
    and B = '"&B4&"'"&
    IF(B3<>"all", "and D contains '"&B3&"'", )&" 
  order by C asc", 1), 
 REGEXREPLACE(SPLIT(QUERY('Form Responses 4'!B:D,
 "select D
  where C >= date '"&TEXT(B5, "yyyy-mm-dd")&"'
    and C <= date '"&TEXT(B6, "yyyy-mm-dd")&"' 
    and B = '"&B4&"'"&
    IF(B3<>"all", "and D contains '"&B3&"'", )&" 
  order by C asc", 1), ";"), "^, ", )}))
=ARRAYFORMULA(TRANSPOSE({QUERY('Form Responses 4'!B:D,
 "select B,C 
  where C >= date '"&TEXT(B5, "yyyy-mm-dd")&"'
    and C <= date '"&TEXT(B6, "yyyy-mm-dd")&"'"& 
    IF(B4<>"all", "and B = '"&B4&"'", )&
    IF(B3<>"all", "and D contains '"&B3&"'", )&" 
  order by C asc", 1), 
 REGEXREPLACE(SPLIT(QUERY('Form Responses 4'!B:D,
 "select D
  where C >= date '"&TEXT(B5, "yyyy-mm-dd")&"'
    and C <= date '"&TEXT(B6, "yyyy-mm-dd")&"'"& 
    IF(B4<>"all", "and B = '"&B4&"'", )&
    IF(B3<>"all", "and D contains '"&B3&"'", )&" 
  order by C asc", 1), ";"), "^, ", )}))