使用公式将excel表/矩阵显示为列表

时间:2015-01-20 02:10:12

标签: excel list matrix excel-formula

这是我之前的问题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

1 个答案:

答案 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 确认,并根据需要向下复制