Excel-给定开始date和结束date,在两者之间创build一个数组
我有一些ID的开始date和结束date,
数据集1
ID Trans_Date Action 1234567890 01-Jan-2012 Active 1234567890 05-Jan-2012 Dc 1234567890 06-Jan-2012 Active 1234567890 12-Jan-2012 Dc 1234567890 15-Jan-2012 Active
我需要扩展如下所示,
所需的数据集,
ID Trans_Date Action 1234567890 01-Jan-12 Active 1234567890 02-Jan-12 Active 1234567890 03-Jan-12 Active 1234567890 04-Jan-12 Active 1234567890 05-Jan-12 DC 1234567890 06-Jan-12 Active 1234567890 07-Jan-12 Active 1234567890 08-Jan-12 Active 1234567890 09-Jan-12 Active 1234567890 10-Jan-12 Active 1234567890 11-Jan-12 Active 1234567890 12-Jan-12 DC 1234567890 13-Jan-12 DC 1234567890 14-Jan-12 DC 1234567890 15-Jan-12 Active
目前我正在做体力劳动工作,是否有公式或VBA代码?
请参考“SO”上提出的问题
给定开始date和结束date,在两者之间创build一个数组。
我需要在Excel中相同。
您可以使用公式在两个备用列(例如D和E)中开发列表。 如果你的第一个列表在列AC: –
(1)将第一个date(C2)复制到D2中
(2)把这个公式放在D3中,并拉下来:
=IF(D2>=MAX(B$2:B$6),"",D2+1)
(3)将这个公式写入E2并下拉:
=IF(D2="","",INDEX(C$2:C$6,MATCH(D2,B$2:B$6,1)))
这可以扩展为不同的ID号码: –
(1)将第一个ID号码复制到D2中
(2)把这个公式写在D3中
=IF(COUNTIF(D$1:D2,D2)<(MAX(IF(A$2:A$20=D2,B$2:B$20))-MIN(IF(A$2:A$20=D2,B$2:B$20))+1), D2, INDEX($A$2:$A$20, MATCH(0, COUNTIF($D$1:D2, $A$2:$A$20), 0)))
(3)把这个公式写入E2:
=MIN(IF(A$2:A$20=D2,B$2:B$20))+COUNTIF(D$1:D1,D2)
(4)把这个公式写在F2中: –
=INDEX(C$2:C$20,MATCH(E2,IF(A$2:A$20=D2,B$2:B$20),1))
所有这些都是数组公式,并且必须使用Ctrl Shift Enter进行input
但如果应用于许多行数据可能会变慢。