本文作者:office教程网

excel 实现更为普遍的二维报表整理为数据清单的方法

office教程网 2023-04-30 21:53:50
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要: 下面1图所示的二维报表数据。这种表格设计的初衷是为了方便输入数据,但是却为数据汇总和分析造成了麻烦。例如,要统计办公室的复印纸的耗量和费用,就比较麻...

下面1图所示的二维报表数据。这种表格设计的初衷是为了方便输入数据,但是却为数据汇总和分析造成了麻烦。例如,要统计办公室的复印纸的耗量和费用,就比较麻烦。对于这样的表格,最后将其设计为日记流水账的形式,如图2所示。尽管在输入数据时有些麻烦,但统计汇总分析就很方便。

  那么如何将图1所示的二维表格转换为图2所示的规范表格呢,利用函数也是很复杂的,可以利用VBA编制程序比较方便。下面就是相关的VBA程序代码。

excel 如何将二维报表整理为数据清单的方法

下面1图所示的二维报表数据,是我们实际工作中常见到的。这种报表看起来整齐清楚,就算是数据透视表,然而它并不是真正的数据透视表,无法像数据透视表一样随意进行行列转换并分析数

Public Sub DataList()
    Dim myArray As Variant
    Dim n As Long, i As Long, k As Long, j As Long
    Dim ws0 As Worksheet
    Dim wsNew As Worksheet
    myArray = Array("日期", "材料", "单位", "部门", "数量", "金额")
    Set ws0 = Worksheets("不科学表格")
    n = ws0.Range("A65536").End(xlUp).Row - 2
    On Error Resume Next
    Application.DisplayAlerts = False
    Worksheets("数据清单").Delete
    Application.DisplayAlerts = False
    On Error GoTo 0
    Set wsNew = Worksheets.Add
    With wsNew
        .Name = "数据清单"
        .Range("A1:F1") = myArray
        k = 1
        For j = 4 To 8 Step 2
            For i = 1 To n
                If ws0.Cells(i 2, j) <> "" Then
                    .Cells(k 1, 1) = Format(ws0.Cells(i 2, 1), "yyyy-m-d")
                    .Cells(k 1, 2) = ws0.Cells(i 2, 2)
                    .Cells(k 1, 3) = ws0.Cells(i 2, 3)
                    .Cells(k 1, 4) = ws0.Cells(1, j)
                    .Cells(k 1, 5) = ws0.Cells(i 2, j)
                    .Cells(k 1, 6) = ws0.Cells(i 2, j 1)
                    k = k 1
                End If
            Next i
        Next j
    End With
    Set ws0 = Nothing
    Set wsNew = Nothing
End Sub

  只要运行上面代码,就可以迅速的将二维报表数据转换为数据清单。现在就可以利用整理好的“数据清单”制作数据透视表。

excel 在制作数据透视表之前,非法日期转换为合法日期的方法

非法日期的存在,直接影响到的进一步分析,尤其是无法对日期进行分组。因此,在制作数据透视表之前,必须将非法日期转换为合法日期。非法日期有两种,一种是输入格式问题,如2008.0

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:excel 实现更为普遍的二维报表整理为数据清单的方法发布于2023-04-30 21:53:50
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: