google-sheets - Google 表格:以逗号分隔的列表返回员工姓名;按季节位置过滤并按资历排名
问题描述
我有一个庞大的 Google 表格员工数据库;名字(ColA)、可用日期(ColB,他们的名字在每个可用日期 {ColB} 出现一次 {ColA})、季节性位置(EH)、按地区(IO) 和资历划分的旅行名称知识库(D 列)。
我还有按季节划分的旅行列表(冬季/春季旅行选项卡),每次旅行的具体日期安排在相应的行中。这些旅行只能由该季节在旅行地点的工作人员完成,并在他们的知识库中列出。 示例工作簿。
理想情况下,我希望表格在一列中列出“可用员工”(每个“季节旅行”选项卡上的 ColL),其中员工的知识库中列出了任务,季节性位置中列出了区域,按资历排列(5, 4、3、2、1)。如果有办法让这一切发生,我还会添加夏季/秋季标签。
解决方案
粘贴到 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"))
推荐阅读
- c++ - 我将如何处理计算一个非常大的数字并将其存储为 C++ 中的整数?
- mysql - 大Mysql数据消息,加载时间太长
- css - 如何让大图标与 ::marker 中的文本对齐?
- amazon-redshift - SELECT INTO WITH NOT NULL 约束 Redshift
- python - 无法安装 easyocr(pytorch 错误)
- git - 由于主/主更改,我如何更新我的 GitHub 镜像?
- macros - Julia:宏如何知道它们的参数何时停止?
- unit-testing - 编写依赖于同一类中其他函数的单元测试
- html - Django ImageField 模板标签不显示
- python - 如何在 Python 中使用 networkx 计算加权传递性