根据表内容编译列表

时间:2019-05-10 17:25:25

标签: google-sheets array-formulas google-sheets-formula google-sheets-query

我有一张桌子,结构类似于下面的屏幕快照。在此表中,我在B列中有待完成的任务,这些任务将在C:W列中完成的日子,以及谁将在A列中完成此任务。

https://snag.gy/lGZnYy.jpg

我希望做的是能够创建将反映此表中数据的列表,因此在1:1行中,您将具有此表中人员的姓名,而在A列中,您将具有WEEKNUM,并且在每个列表的内容内,将根据该人该周的工作来编制列表。我还想包含一个UNIQUE函数,这样就不会重复同一周的重复结果。

有人可以为此提供一些帮助吗?

1 个答案:

答案 0 :(得分:0)

粘贴到 A1 单元格中:

=ARRAYFORMULA(TRANSPOSE(UNIQUE(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
 IF(INDIRECT("Table!"&ADDRESS(3, MATCH(WEEKNUM(HLOOKUP(TODAY(), Table!2:2, 1, 0), 21), 
 WEEKNUM(Table!2:2, 21), 0), 4)&":"&ADDRESS(COUNTA(Table!A1:A)+1, MATCH(WEEKNUM(
 HLOOKUP(TODAY(), Table!2:2, 1, 0), 21), WEEKNUM(Table!2:2, 21), 0)+6, 4))<>"", 
 Table!A3:A&"♦", ),,999^99)),,999^99), "♦"))))))

粘贴到 A2 单元格中,然后向右拖动:

=ARRAYFORMULA(QUERY(IFERROR(SPLIT(UNIQUE(TRIM(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
 IF(INDIRECT("Table!"&ADDRESS(3, MATCH(WEEKNUM(HLOOKUP(TODAY(), Table!2:2, 1, 0), 21), 
 WEEKNUM(Table!2:2, 21), 0), 4)&":"&ADDRESS(COUNTA(Table!$A1:$A)+1, MATCH(WEEKNUM(
 HLOOKUP(TODAY(), Table!2:2, 1, 0), 21), WEEKNUM(Table!2:2, 21), 0)+6, 4))<>"",
 Table!$A3:$A&"♠"&Table!$B3:$B&"♥", ),,999^99)),,999^99), "♥")))), "♠")),
 "select Col2 where Col1='"&A1&"'", 0))

0