我有一些ID的开始日期和结束日期,
数据集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'上提出的问题
给定开始日期和结束日期,创建两者之间的日期数组。
我需要在Excel上使用相同的功能。
答案 0 :(得分:0)
您可以使用公式在两个备用列(例如D和E)中开发列表。如果您的第一个列表位于A-C列: -
(1)将第一个日期(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 输入
输入但如果应用于多行数据,可能会很慢。