首页 > 解决方案 > Google 表格:以逗号分隔的列表返回员工姓名;按季节位置过滤并按资历排名

问题描述

我有一个庞大的 Google 表格员工数据库;名字(ColA)、可用日期(ColB,他们的名字在每个可用日期 {ColB} 出现一次 {ColA})、季节性位置(EH)、按地区(IO) 和资历划分的旅行名称知识库(D 列)。

我还有按季节划分的旅行列表(冬季/春季旅行选项卡),每次旅行的具体日期安排在相应的行中。这些旅行只能由该季节在旅行地点的工作人员完成,并在他们的知识库中列出。 示例工作簿。

理想情况下,我希望表格在一列中列出“可用员工”(每个“季节旅行”选项卡上的 ColL),其中员工的知识库中列出了任务,季节性位置中列出了区域,按资历排列(5, 4、3、2、1)。如果有办法让这一切发生,我还会添加夏季/秋季标签。

标签: google-sheetsgoogle-sheets-formulaarray-formulasgoogle-query-languagetextjoin

解决方案


粘贴到 B2 并向下拖动:

=ARRAYFORMULA(IFERROR(TEXTJOIN(", ", 1, UNIQUE(QUERY(TO_TEXT('Staff availability'!A:D), 
 "select Col1 
  where Col2 matches '"&TEXTJOIN("|", 1, TO_DATE(VLOOKUP(A2, 
 {'Winter Trips'!A:K; 'Spring Trips'!A:K}, SEQUENCE(1, 10, 2), 0)))&"' 
  order by Col4 desc", 0))), "no one"))

在此处输入图像描述


更新:

=ARRAYFORMULA(IFERROR(TEXTJOIN(", ", 1, UNIQUE(QUERY(
 SUBSTITUTE(QUERY(TRIM(IFERROR(SPLIT(FLATTEN(IF('Staff availability'!E$2:O="",,TRANSPOSE(QUERY(TRANSPOSE({"♦"&'Staff availability'!A$2:A, "♦♠"&TO_TEXT('Staff availability'!B$2:B), "♦"&'Staff availability'!C$2:D}),,9^9))&"♦"&'Staff availability'!E$2:O)), "♦"))), 
 "where Col5 = '"&QUERY(FILTER(INDIRECT("B1:B"&ROW()), INDIRECT("A1:A"&ROW())="-"), "offset "&COUNTA(FILTER(INDIRECT("B1:B"&ROW()), INDIRECT("A1:A"&ROW())="-"))-1)&"' 
     or Col5 contains '"&TRIM(A4)&"'"), "♠", ), 
 "select Col1 
  where Col2 matches '"&TEXTJOIN("|", 1, TO_DATE(VLOOKUP(A4, {'Winter Trips'!A:K; 'Spring Trips'!A:K}, SEQUENCE(1, 10, 2), 0)))&"' 
  order by Col4 desc", 0))), "no one"))

0


推荐阅读