计划的动态自定义过滤表

Dynamic Custom filtered tables for a Schedule

我有几个关于在 google sheet 秒内整理和组织日程的问题。 我找到了一些变通办法来完成我想完成的大部分工作,但我希望得到一些意见,也许还有一些关于如何让它更好地工作的想法。

问题 - 我有一个可以为所有员工的工作时间表生成的 CSV 文件。与它一起工作和观察并不是很共同发明。我正在尝试从 spreadsheet 中获取数据并按日期、部门和姓名对其进行排序。

  1. 有些人有分班制,这会导致第二行的名称应为空白单元格。 (解决创建另一个列表,如果单元格为空,它会复制上面的数据。)
  2. 轮班的时间和部门在同一个单元格中,需要分开(解决搜索所有部门的每个单元格并显示匹配的名称,时间取第 12 个字符左侧的所有文本)
  3. 最后,最好将名称颠倒过来,这样就可以是 First then Last 而不是“Last, First”。除了能够使用 custom/nick 个名字代替 Nunez,Elizabeth 还会显示 Eli Nunez。这对部门来说很好。 (解决方法类似于部门,只需搜索每个名称并显示与“=IF(ISNUMBER(SEARCH...”)
  4. 的匹配项

理想情况下,这将使用动态 filter/pivot table/dynamic 数组来完成,这样每个单元格中的代码就不会很多,并且会自动填充和排序。

如果需要,我也可以提供我所有的代码工作。

Sheet Example
“全周”sheet 是我的起点,“按天排序”sheet 是我要寻找的 output/end 目标。

希望这是足够的信息,如果问错了地方,我们深表歉意/post。


谢谢
- 艾伦

感谢您的帮助。我在将它实施到我的最终计划中时仍然遇到了一些麻烦 sheet。 Here 是我的最终 sheet 以及我所有的解决方法代码。

尝试:

=INDEX(IFERROR(REGEXREPLACE(TRANSPOSE(SPLIT(TRIM(FLATTEN(QUERY(QUERY(SUBSTITUTE(
 TRIM(SPLIT(FLATTEN(QUERY(TRANSPOSE(REGEXREPLACE(REGEXREPLACE(TRIM(QUERY(SPLIT(FLATTEN(
 QUERY(TRANSPOSE(QUERY(SPLIT(FLATTEN(IF('Full Week'!B2:20="",,'Full Week'!B1:1&"♣"&
 TEXT('Full Week'!B1:1, "emmdd\♠ddd\♦")&"♣"&REGEXREPLACE(VLOOKUP(ROW('Full Week'!A2:A20), 
 IF('Full Week'!A2:A20<>"", {ROW('Full Week'!A2:A20), 'Full Week'!A2:A20}), 2, 1), 
 "(.*),(.*)", "♥ ")&"♣♥"&SUBSTITUTE('Full Week'!B2:20, CHAR(10), "♣"))), "♣"), 
 "select Col2,Col5,Col3,Col4 
  where not Col4 matches '^♥ $' 
    and Col1 >= date '"&TEXT(TODAY()+1, "e-m-d")&"' 
    and Col1 <= date '"&TEXT(TODAY()+4, "e-m-d")&"'")),,9^9)), "♦"), 
 "select max(Col2) 
  group by Col2
  pivot Col1")), "^♥", "♂ ♥"), "^$", " ♥ ♥ ♥")&" ♥"),,9^9)), "♥")), " ", "♀"), 
 "offset 1", 0),,9^9))), " ")), "♀|♂", " ")))

domo sheet