Google sheets 查找使用同一JobID的用户

Google sheets 查找使用同一JobID的用户,google-sheets,google-query-language,Google Sheets,Google Query Language,我只从Google电子表格中的每个用户表中提取JobID列。我想查询哪些用户正在使用相同的作业ID。我还需要将用户名列为查询的一列,因为该列不存在于每个用户工作表中,尽管工作表名称是用户名。有没有什么方法可以用谷歌查询做到这一点? e、 g 另外,工作表可以重命名为其他用户。所以我们需要一些动态的东西 这里是到的链接。是否需要以下工作? 它动态地从用户选项卡中将工作表名称拉入“查询”。我认为您还需要首先从该用户选项卡中删除报告和用户名 这将出现在报告的C2中,目前需要向下拖动。我看看能不能想出一

我只从Google电子表格中的每个用户表中提取JobID列。我想查询哪些用户正在使用相同的作业ID。我还需要将用户名列为查询的一列,因为该列不存在于每个用户工作表中,尽管工作表名称是用户名。有没有什么方法可以用谷歌查询做到这一点? e、 g

另外,工作表可以重命名为其他用户。所以我们需要一些动态的东西


这里是到的链接。

是否需要以下工作? 它动态地从用户选项卡中将工作表名称拉入“查询”。我认为您还需要首先从该用户选项卡中删除报告和用户名

这将出现在报告的C2中,目前需要向下拖动。我看看能不能想出一个公式

=TEXTJOIN(", ",1,
 {IF(COUNTIF(INDIRECT(USERS!A$1 & "!A$2:A"),A2),USERS!A$1,""), 
  IF(COUNTIF(INDIRECT(USERS!A$2 & "!A$2:A"),A2),USERS!A$2,""),
  IF(COUNTIF(INDIRECT(USERS!A$3 & "!A$2:A"),A2),USERS!A$3,""),
  IF(COUNTIF(INDIRECT(USERS!A$4 & "!A$2:A"),A2),USERS!A$4,""),
  IF(COUNTIF(INDIRECT(USERS!A$5 & "!A$2:A"),A2),USERS!A$5,""),
  IF(COUNTIF(INDIRECT(USERS!A$6 & "!A$2:A"),A2),USERS!A$6,"") })
=textjoin(", ",1,
 {if(countif(indirect(Users!A$1 & "!A$2:A"),A2),Users!A$1,""), 
  if(countif(indirect(Users!A$2 & "!A$2:A"),A2),Users!A$2,""),
  if(countif(indirect(Users!A$3 & "!A$2:A"),A2),Users!A$3,""),
  if(countif(indirect(Users!A$4 & "!A$2:A"),A2),Users!A$4,""),
  if(countif(indirect(Users!A$5 & "!A$2:A"),A2),Users!A$5,""),
  if(countif(indirect(Users!A$6 & "!A$2:A"),A2),Users!A$6,""), 
  if(countif(indirect(Users!A$7 & "!A$2:A"),A2),Users!A$7,""), 
  if(countif(indirect(Users!A$8 & "!A$2:A"),A2),Users!A$8,""), 
  if(countif(indirect(Users!A$9 & "!A$2:A"),A2),Users!A$9,""), 
  if(countif(indirect(Users!A$10 & "!A$2:A"),A2),Users!A$10,""),
  if(countif(indirect(Users!A$11 & "!A$2:A"),A2),Users!A$11,""),
  if(countif(indirect(Users!A$12 & "!A$2:A"),A2),Users!A$12,""),
  if(countif(indirect(Users!A$13 & "!A$2:A"),A2),Users!A$13,""),
  if(countif(indirect(Users!A$14 & "!A$2:A"),A2),Users!A$14,""),
  if(countif(indirect(Users!A$15 & "!A$2:A"),A2),Users!A$15,""),
  if(countif(indirect(Users!A$16 & "!A$2:A"),A2),Users!A$16,""),
  if(countif(indirect(Users!A$17 & "!A$2:A"),A2),Users!A$17,""),
  if(countif(indirect(Users!A$18 & "!A$2:A"),A2),Users!A$18,""),
  if(countif(indirect(Users!A$19 & "!A$2:A"),A2),Users!A$19,""),
  if(countif(indirect(Users!A$20 & "!A$2:A"),A2),Users!A$20,"")}) 
我只允许6个用户,但这可以扩展到处理10到20个用户,使用IF或IFERROR测试,以避免在任何时候用户选项卡中的用户数量较少时出现问题

如果你对此有任何疑问,请告诉我

更新#1 以下是允许20个用户使用的扩展公式。只要它们添加到用户的任何位置!A1:A20,并且图纸名称与其列出的名称匹配,则将包括其值。如果您发现任何问题,请告诉我。我还是会试着把它转换成一个数组公式

=TEXTJOIN(", ",1,
 {IF(COUNTIF(INDIRECT(USERS!A$1 & "!A$2:A"),A2),USERS!A$1,""), 
  IF(COUNTIF(INDIRECT(USERS!A$2 & "!A$2:A"),A2),USERS!A$2,""),
  IF(COUNTIF(INDIRECT(USERS!A$3 & "!A$2:A"),A2),USERS!A$3,""),
  IF(COUNTIF(INDIRECT(USERS!A$4 & "!A$2:A"),A2),USERS!A$4,""),
  IF(COUNTIF(INDIRECT(USERS!A$5 & "!A$2:A"),A2),USERS!A$5,""),
  IF(COUNTIF(INDIRECT(USERS!A$6 & "!A$2:A"),A2),USERS!A$6,"") })
=textjoin(", ",1,
 {if(countif(indirect(Users!A$1 & "!A$2:A"),A2),Users!A$1,""), 
  if(countif(indirect(Users!A$2 & "!A$2:A"),A2),Users!A$2,""),
  if(countif(indirect(Users!A$3 & "!A$2:A"),A2),Users!A$3,""),
  if(countif(indirect(Users!A$4 & "!A$2:A"),A2),Users!A$4,""),
  if(countif(indirect(Users!A$5 & "!A$2:A"),A2),Users!A$5,""),
  if(countif(indirect(Users!A$6 & "!A$2:A"),A2),Users!A$6,""), 
  if(countif(indirect(Users!A$7 & "!A$2:A"),A2),Users!A$7,""), 
  if(countif(indirect(Users!A$8 & "!A$2:A"),A2),Users!A$8,""), 
  if(countif(indirect(Users!A$9 & "!A$2:A"),A2),Users!A$9,""), 
  if(countif(indirect(Users!A$10 & "!A$2:A"),A2),Users!A$10,""),
  if(countif(indirect(Users!A$11 & "!A$2:A"),A2),Users!A$11,""),
  if(countif(indirect(Users!A$12 & "!A$2:A"),A2),Users!A$12,""),
  if(countif(indirect(Users!A$13 & "!A$2:A"),A2),Users!A$13,""),
  if(countif(indirect(Users!A$14 & "!A$2:A"),A2),Users!A$14,""),
  if(countif(indirect(Users!A$15 & "!A$2:A"),A2),Users!A$15,""),
  if(countif(indirect(Users!A$16 & "!A$2:A"),A2),Users!A$16,""),
  if(countif(indirect(Users!A$17 & "!A$2:A"),A2),Users!A$17,""),
  if(countif(indirect(Users!A$18 & "!A$2:A"),A2),Users!A$18,""),
  if(countif(indirect(Users!A$19 & "!A$2:A"),A2),Users!A$19,""),
  if(countif(indirect(Users!A$20 & "!A$2:A"),A2),Users!A$20,"")}) 

根据您的评论,我有一个公式来返回jobid和用户。但为了计算用户数量,我不得不添加另一列和公式。见下文:

D1中的关键公式如下:

={"Job ID","Users (hidden)";
  ArrayFormula(trim(split(regexreplace(REGEXREPLACE(transpose(query(query({
     query({ Users!A$1 & "♦️" & row(indirect(Users!A$1 & "!A$2:A")), indirect(Users!A$1 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$2 & "♦️" & row(indirect(Users!A$2 & "!A$2:A")), indirect(Users!A$2 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$3 & "♦️" & row(indirect(Users!A$3 & "!A$2:A")), indirect(Users!A$3 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$4 & "♦️" & row(indirect(Users!A$4 & "!A$2:A")), indirect(Users!A$4 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$5 & "♦️" & row(indirect(Users!A$5 & "!A$2:A")), indirect(Users!A$5 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$6 & "♦️" & row(indirect(Users!A$6 & "!A$2:A")), indirect(Users!A$6 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0) },
     "select max(Col1) where Col2 <>'' group by Col1 pivot Col2",0)
     ,,99^99)),
     "♦️[0-9 ]+" , ", "),
     "(.*),", "$1"),
     "♥️",0)))}
如果
用户中的任何一个出现错误,则给我一个错误!A2
为空,单元格
用户中没有与名称匹配的选项卡!A2
具有该名称的选项卡没有数据

如果您采取这些措施,那么主公式可以预设为处理二十个(或更多)用户。我上面展示的公式适用于当前的六个用户,但我已经用更多的方法进行了测试。我将在底部为20个用户提供公式

让我知道这是否有帮助,或者如果你有问题。很高兴回答他们

20个用户的公式。在用户中,每个“用户”都有一个名称或虚拟名称占位符,必须有一个具有该名称的选项卡,并且每个选项卡中必须至少有一个JobID值,或者一个虚拟JobID,可能类似于99999

={"Job ID","Users (hidden)";
  ArrayFormula(trim(split(regexreplace(REGEXREPLACE(transpose(query(query({
     query({ Users!A$1 & "♦️" & row(indirect(Users!A$1 & "!A$2:A")), indirect(Users!A$1 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$2 & "♦️" & row(indirect(Users!A$2 & "!A$2:A")), indirect(Users!A$2 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$3 & "♦️" & row(indirect(Users!A$3 & "!A$2:A")), indirect(Users!A$3 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$4 & "♦️" & row(indirect(Users!A$4 & "!A$2:A")), indirect(Users!A$4 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$5 & "♦️" & row(indirect(Users!A$5 & "!A$2:A")), indirect(Users!A$5 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$6 & "♦️" & row(indirect(Users!A$6 & "!A$2:A")), indirect(Users!A$6 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$7 & "♦️" & row(indirect(Users!A$7 & "!A$2:A")), indirect(Users!A$7 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$8 & "♦️" & row(indirect(Users!A$8 & "!A$2:A")), indirect(Users!A$8 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$9 & "♦️" & row(indirect(Users!A$9 & "!A$2:A")), indirect(Users!A$9 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$10 & "♦️" & row(indirect(Users!A$10 & "!A$2:A")), indirect(Users!A$10 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$11 & "♦️" & row(indirect(Users!A$11 & "!A$2:A")), indirect(Users!A$11 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$12 & "♦️" & row(indirect(Users!A$12 & "!A$2:A")), indirect(Users!A$12 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$13 & "♦️" & row(indirect(Users!A$13 & "!A$2:A")), indirect(Users!A$13 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$14 & "♦️" & row(indirect(Users!A$14 & "!A$2:A")), indirect(Users!A$14 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$15 & "♦️" & row(indirect(Users!A$15 & "!A$2:A")), indirect(Users!A$15 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$16 & "♦️" & row(indirect(Users!A$16 & "!A$2:A")), indirect(Users!A$16 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$17 & "♦️" & row(indirect(Users!A$17 & "!A$2:A")), indirect(Users!A$17 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$18 & "♦️" & row(indirect(Users!A$18 & "!A$2:A")), indirect(Users!A$18 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$19 & "♦️" & row(indirect(Users!A$19 & "!A$2:A")), indirect(Users!A$19 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0);
     query({ Users!A$20 & "♦️" & row(indirect(Users!A$20 & "!A$2:A")), indirect(Users!A$20 & "!A$2:A")&"♥️"}, "where Col2<> '♥️'",0) },
     "select max(Col1) where Col2 <>'' group by Col1 pivot Col2",0)
     ,,99^99)),
     "♦️[0-9 ]+" , ", "),
     "(.*),", "$1"),
     "♥️",0)))}
={“作业ID”,“用户(隐藏)”;
数组公式(trim)(split)(regexreplace)(regexreplace)(transpose)(查询({
查询({Users!A$1&“♦️" & 行(间接(用户!A$1&“!A$2:A”)、间接(用户!A$1&“!A$2:A”)&”♥️“}”,Col2'♥️'",0);
查询({Users!A$2&“♦️&row(间接(用户!A$2&“!A$2:A”)、间接(用户!A$2&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$3&“♦️&row(间接(用户!A$3&“!A$2:A”)、间接(用户!A$3&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$4&“♦️&row(间接(用户!A$4&“!A$2:A”)、间接(用户!A$4&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$5&“♦️&row(间接(用户!A$5&“!A$2:A”)、间接(用户!A$5&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$6&“♦️&row(间接(用户!A$6&“!A$2:A”)、间接(用户!A$6&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$7&“♦️&row(间接(用户!A$7&“!A$2:A”)、间接(用户!A$7&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$8&“♦️&row(间接(用户!A$8&“!A$2:A”)、间接(用户!A$8&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$9&“♦️&row(间接(用户!A$9&“!A$2:A”)、间接(用户!A$9&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$10&“♦️&row(间接(用户!A$10&“!A$2:A”)、间接(用户!A$10&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$11&“♦️&row(间接(用户!A$11&“!A$2:A”)、间接(用户!A$11&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$12&“♦️&row(间接(用户!A$12&“!A$2:A”)、间接(用户!A$12&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$13&“♦️&row(间接(用户!A$13&“!A$2:A”)、间接(用户!A$13&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$14&“♦️&row(间接(用户!A$14&“!A$2:A”)、间接(用户!A$14&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$15&“♦️&row(间接(用户!A$15&“!A$2:A”)、间接(用户!A$15&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$16&“♦️&row(间接(用户!A$16&“!A$2:A”)、间接(用户!A$16&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$17&“♦️&row(间接(用户!A$17&“!A$2:A”)、间接(用户!A$17&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$18&“♦️&row(间接(用户!A$18&“!A$2:A”)、间接(用户!A$18&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$19&“♦️&row(间接(用户!A$19&“!A$2:A”)、间接(用户!A$19&“!A$2:A”)&♥️“}”,Col2'♥️'",0);
查询({Users!A$20&“♦️&row(间接(用户!A$20&“!A$2:A”)、间接(用户!A$20&“!A$2:A”)&♥️“}”,Col2'♥️'",0) },
“选择最大值(Col1),其中Col2”“按Col1枢轴Col2分组”,0)
,,99^99)),
"♦️[0-9 ]+" , ", "),
"(.*),", "$1"),
"♥️",0)))}

输入数据的描述也会很有帮助,不仅仅是输出数据。另外,请分享您迄今为止的尝试:@mshcruz当然。给我几分钟。我将分享一个电子表格。大约有多少用户,我的意思是有多少不同的谷歌表格?不超过10-12个,但JobID将是应用程序从6k到10k。具体来说,需要一个Google查询,而不是appscript.Als