将数据表显示为视觉对象
Showing datatable as a visual
我有一些数据,其中包括 2 个人的任务列表。
我想用以下格式表示此数据。
所以它看起来像下面。
如何使用公式实现此目的?
[编辑]
我不认为这个问题与 'Data Wrangling in Excel - Rearranging Columns and Rows' 相同,因为我的问题是关于以更像甘特图的格式反映时间表,而另一个问题似乎更多是关于转置数据。
不确定您是否在相同的 sheet 或新的 sheet 上获得了所需的输出,但我使用了从单元格 A1
开始的新的 sheet。源数据sheet在公式中被称为S1
。
假设:
Column C
= 开始日期
Column D
= 结束日期
- 人员的条目组合在一起(Person1、Person1,然后是 Person2;永远不会是 Person1、Person2、Person1)
- 不能在同一时间段内为某人分配两个不同的区域(例如,Person1 不能在给定月份有 A 和 B)
- 您希望的日期始终是每月的第一天
Output/Formulas:
A1
为空
A2
: =INDEX('S1'!$A:$A,IFERROR(MATCH(A1,'S1'!$A:$A,0),1)+COUNTIF('S1'!$A:$A,A1))
A3
:从A2
复制下来的公式
B1
: =IF(A1<>"",EDATE(A1,1),MIN('S1'!$C:$D))
C1
到 J1
:从 B1
复制的公式
B2
:=INDEX('S1'!$B:$B,MATCH(1,INDEX(('S1'!$A:$A=$A2)*('S1'!$C:$C<=B)*('S1'!$D:$D>=B),0),0))
B3
和 C2
到 J3
:从 B2
复制的公式
解释:
A2
公式: 查看前一个 Person 条目首次出现的位置(MATCH
部分),并计算它有多少条目(COUNTIF
部分)以确定行中的下一个 Person 条目(INDEX
部分)。 IFERROR
部分用于 return 第一个 Person 条目,假定它位于第 1 行。
B1
公式: 向前一个日期标题(EDATE
部分)添加一个月。第一个日期标题查找源数据中的最早日期(MIN
部分)。
B2
公式: 在您的源数据上使用具有多个条件的匹配项(人员条目必须与指定人员匹配,开始日期必须早于或等于日期标题,结束日期必须在日期标题之后或之上)。第二个 INDEX
创建一个组合条件结果数组(如果为真则为 1,如果为假则为 0),以及 MATCH
return 是哪个条目。第一个 INDEX
return 是任务(A、B 或 C)。
我有一些数据,其中包括 2 个人的任务列表。
我想用以下格式表示此数据。
所以它看起来像下面。
如何使用公式实现此目的?
[编辑] 我不认为这个问题与 'Data Wrangling in Excel - Rearranging Columns and Rows' 相同,因为我的问题是关于以更像甘特图的格式反映时间表,而另一个问题似乎更多是关于转置数据。
不确定您是否在相同的 sheet 或新的 sheet 上获得了所需的输出,但我使用了从单元格 A1
开始的新的 sheet。源数据sheet在公式中被称为S1
。
假设:
Column C
= 开始日期Column D
= 结束日期- 人员的条目组合在一起(Person1、Person1,然后是 Person2;永远不会是 Person1、Person2、Person1)
- 不能在同一时间段内为某人分配两个不同的区域(例如,Person1 不能在给定月份有 A 和 B)
- 您希望的日期始终是每月的第一天
Output/Formulas:
A1
为空A2
:=INDEX('S1'!$A:$A,IFERROR(MATCH(A1,'S1'!$A:$A,0),1)+COUNTIF('S1'!$A:$A,A1))
A3
:从A2
复制下来的公式
B1
:=IF(A1<>"",EDATE(A1,1),MIN('S1'!$C:$D))
C1
到J1
:从B1
复制的公式
B2
:=INDEX('S1'!$B:$B,MATCH(1,INDEX(('S1'!$A:$A=$A2)*('S1'!$C:$C<=B)*('S1'!$D:$D>=B),0),0))
B3
和C2
到J3
:从B2
复制的公式
解释:
A2
公式: 查看前一个 Person 条目首次出现的位置(MATCH
部分),并计算它有多少条目(COUNTIF
部分)以确定行中的下一个 Person 条目(INDEX
部分)。IFERROR
部分用于 return 第一个 Person 条目,假定它位于第 1 行。B1
公式: 向前一个日期标题(EDATE
部分)添加一个月。第一个日期标题查找源数据中的最早日期(MIN
部分)。B2
公式: 在您的源数据上使用具有多个条件的匹配项(人员条目必须与指定人员匹配,开始日期必须早于或等于日期标题,结束日期必须在日期标题之后或之上)。第二个INDEX
创建一个组合条件结果数组(如果为真则为 1,如果为假则为 0),以及MATCH
return 是哪个条目。第一个INDEX
return 是任务(A、B 或 C)。