全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
2620 3
2015-02-09
请问如何根据条件生成新数据行,原来的数据是这样的:
代码类别信息发布年份
000001

1

2007
000001

2

2010
000004

0

2006
000004

1

2009
每个公司的类别只有到第二次信息发布才发生变化,我要把中间没有发生变化的年份和类别补上,如改成下表,应该怎样写命令?谢谢!
代码类别信息发布年份
000001

1

2007
000001

1

2008
000001

1

2009
000001

2

2010
000001

2

2011
000001

2

2012
000001

2

2013
000004

0

2006
000004

0

2007
000004

0

2008
000004

1

2009
000004

1

2010
000004

1

2011
000004

1

2012
000004

1

2013

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-2-11 20:42:25
高手请现身呀!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-2-17 10:28:22
如果源数据在A1,可尝试如下代码:
Sub a()
    Range("A1").CurrentRegion.Copy
    Range("I1").Select
    ActiveSheet.Paste
For i = 3 To 1048576
    If i > WorksheetFunction.CountA(Range("K:K")) Then Exit For
    j = 0
    If Range("I" & i) = Range("I" & i - 1) And Range("J" & i) > Range("J" & i - 1) And Range("K" & i) = Range("K" & i - 1) + 1 Then j = 1
    If (Range("I" & i) = Range("I" & i - 1) And Range("K" & i) <> Range("K" & i - 1) And j <> 1 And Range("I" & i + 1) <> "") _
    Or (Range("I" & i) > Range("I" & i - 1) And Range("K" & i - 1) < 2013) Then
        Range("I" & i & ":K" & i).Select
        Selection.Insert Shift:=xlDown
        Range("I" & i) = Range("I" & i - 1)
        Range("J" & i) = Range("J" & i - 1)
        Range("K" & i) = Range("K" & i - 1) + 1
    ElseIf Range("I" & i + 1) = "" And Range("K" & i) < 2013 Then
        Range("I" & i + 1) = Range("I" & i)
        Range("J" & i + 1) = Range("J" & i)
        Range("K" & i + 1) = Range("K" & i) + 1
    End If
Next
End Sub
附件列表
1.jpg

原图尺寸 360.82 KB

1.jpg

test.rar

大小:16.82 KB

 马上下载

本附件包括:

  • test.xlsm

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-5-24 14:18:58
非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群