首页 文章

基于列创建多行

提问于
浏览
1

我需要帮助 .

我有一个带有近似列结构的Excel文件:

  • 组织

  • 程序名称

  • 2012(年)

  • 2013(年)

  • 2014(年)

在这个初始构造中,每一行都是它自己的程序名(即,每个程序只有一行) . 每个预算年度都有自己的列,其中输入给定年份的预算数据 .

我需要用单个YEAR列替换单个年份列:

  • 组织

  • 程序名称

在此设置中,每个程序预算都有单独的行 - 因此每个程序每年会有多行 .

我在原始构造中有3,000行,我需要切换到新格式以便为我的数据可视化工具提供信息 - 否则它不会将每个列识别为单个维度(年份) .

谢谢

1 回答

  • 3

    如果我理解这一点,你有:

    enter image description here

    而你想要的

    enter image description here

    这是非常粗糙但经过测试的VBA代码,可以帮助您入门 . 我不确定你是否有VBA经验 .

    Sub xxx()
    
        Sheets("Sheet1").Select
    
        Dim x As Integer
        x = 2
    
        For a = 2 To 3000
    
            Sheets("Sheet1").Select
            org = Range("A" & a).Value
            prog = Range("B" & a).Value
            y1 = Range("C" & a).Value
            y2 = Range("D" & a).Value
            y3 = Range("E" & a).Value
    
            Sheets("Sheet2").Select
    
            Range("A" & x).Value = org
            Range("B" & x).Value = prog
            Range("C" & x).Value = y1
            Range("C" & x + 1).Value = y2
            Range("C" & x + 2).Value = y3
    
            x = x + 3
    
        Next a
    
    End Sub
    

    如果您需要更多解释或更好的代码,请告诉我们 .

相关问题