我在电子表格中有大量项目,这些项目具有与之关联的不同任务。每个项目都是一行,不同的任务是列。对于每个项目和任务,都有一个必须执行任务的日期。 (如果条目为空,则不必为该项执行任务。)
电子表格示例如下:https://docs.google.com/spreadsheets/d/1jzla_gMw_soVqW7OR3dSsT7Sd9zDYu-oSpdm5HeOzEs/edit?usp=sharing
是否可以将表转换为单个列表,其中包含日期,项目和任务(列表条目按日期排序)?随着时间的推移将添加行/列。
Current Table
task1, task2, task3
-------------------------------------
item1 | 1/20/2019 2/20/2020
item2 | 2/23/2020 3/10/2019
item3 | 4/10/2020 5/10/2020
Expected output:
1/20/2019, item1, task1
3/10/2019, item2, task3
2/20/2020, item1, task2
2/23/2020, item2, task2
4/10/2020, item3, task1
5/10/2020, item3, task3
在数据库术语中,您要执行的操作称为规范化。您可以使用一对ARRAYFORMULAS来完成,如下所示:
首先构建垂直(B5:B7)和水平(C4:E4)轴值的所有可能组合的列表并输入,比方说,A10
=arrayformula(
split(
transpose(
split(
concatenate(
arrayformula(
unique(filter(B5:B7, not(isblank(B5:B7)))) & "|" &
unique(filter(C4:E4, not(isblank(C4:E4)))) & "\"
)
),
"\")
),
"|")
)
使用维度值查找表中的日期并将其放在C10中
=arrayformula(
text(vlookup(A10:A18, $B$4:$E$7, match(B10:B18, $C$4:$E$4, 0)+1, false), "MM/DD/YYYY")
)