这是我之前的问题here的后续内容,因为我认为它值得探索。
我的源数据按位列标题(B1:E1)和事件作为行标题(A2:A50)进行组织。剩余的单元格(B2:E50)填充有表示何时将保持每个位置的下一个事件的日期。并非所有地点都为每个活动提供服务,因此可以使用N / A" s。活动可能会在同一天在同一地点举行。
在上一个答案中,我学习了如何在每个位置下显示事件作为单独的列表,按日期排序。对于本练习,我希望将所有事件合并到一个由三列(日期,事件,位置)组成的列表中,按顺序排序,并使用公式进行排序。与上一个练习一样,数据透视表是不可能的。
来源数据:
A B C D E
1 San Francisco Tampa Philadelphia Houston
...
6 Introduction 7-Feb-15 24-Jan-15 17-Jan-15 10-Jan-15
7 Beginner I 9-Feb-15 26-Jan-15 19-Jan-15 12-Jan-15
8 Beginner II 23-Feb-15 9-Feb-15 2-Feb-15 26-Jan-15
9 Beginner III 9-Mar-15 23-Feb-15 16-Feb-15 9-Feb-15
10 Intermediate I 16-Mar-15 19-Jan-15 N/A 19-Jan-15
11 Intermediate II 12-Jan-15 2-Feb-15 N/A 2-Feb-15
12 Intermediate III 26-Jan-15 16-Feb-15 N/A 16-Feb-15
13 Advanced I 9-Feb-15 N/A N/A 2-Mar-15
14 Advanced II 23-Feb-15 N/A N/A 16-Mar-15
15 Advanced III 9-Mar-15 N/A N/A 30-Mar-15
期望的输出:
January
10-Jan-15 Introduction Houston
12-Jan-15 Beginner I Houston
12-Jan-15 Intermediate II San Francisco
17-Jan-15 Introduction Philadelphia
19-Jan-15 Beginner I Philadelphia
19-Jan-15 Intermediate I Houston
19-Jan-15 Intermediate I Tampa
24-Jan-15 Introduction Tampa
26-Jan-15 Beginner I Tampa
26-Jan-15 Beginner II Houston
26-Jan-15 Intermediate III San Francisco
答案 0 :(得分:1)
您可以以与以前几乎相同的方式获取日期列表,因为公式不关心源是单个列还是矩阵,因此在“摘要”工作表中的单元格A1中的月份的第1个月可以从A3
中的这个数组公式开始= IFERROR(小(IF)(Master!B $ 2:E $ 50> = A $ 1,IF(Master!B $ 2:E $ 50< EOMONTH(A $ 1,0)+ 1,Master!B $ 2:E $ 50)),ROWS(A $ 3:A3)), “”)
然后接下来可能更容易获得城市,所以在C3
= IF(A3 = “”, “”,INDEX(主B $ 1:E $ 1,小型(IF(主设备B $ 2:!E $ 50 = A3,COLUMN(主设备B $ 2:E 50 $)列(主B $ 2!)+1),COUNTIF(A $ 3:A3,A3))))
然后在B3中找到文本
= IF(A3 = “”, “”,INDEX(主A $ 2:!甲$ 50 SMALL(IF(INDEX(主B $ 2:E $ 50,0,MATCH(C3,万事达B $ 1:电子$ 1,0))= A3,ROW(主A $ 2:!甲$ 50)-ROW(主A $ 2)+1),COUNTIFS(A $ 3:A3,A3,C $ 3:C3,C3))))< / p>
所有公式都需要用 CTRL + SHIFT + ENTER 确认,并根据需要向下复制