Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3018|回复: 9

[已解决]分表数据调入总表问题

[复制链接]
发表于 2014-8-7 10:34 | 显示全部楼层 |阅读模式
附表中有若干分表和一个汇总表,点击汇总表“生成报表”按纽时,分表C列数据自动从大到小排序,然后前几行累计求和,当累求和占总和比例到70%时,以红色标出,并把C列标色数据对应调入到汇总表中。程序运行中出现问题:分表中标红最后一行C列数据没有对应调入汇总表中,不知原因,请老师指教。十分感谢! 行业大类筛选模板A(主营业务收入).zip (19.15 KB, 下载次数: 12)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2014-8-7 11:24 | 显示全部楼层
自己试着修改了几个数据,也没有把分表中标红最后一行C列数据对应调到汇总表中,不知原因,郁闷中
回复

使用道具 举报

发表于 2014-8-7 11:28 | 显示全部楼层
你子表里面数据和汇总表数据不一致啊!啊!青州(19)汇总表是0你上面有数字
回复

使用道具 举报

 楼主| 发表于 2014-8-7 11:47 | 显示全部楼层
是的。只是把标红色的C列数据对应调入汇总表中,其它的数据不调入。现在问题是标红色的最后一行C列数据没调过去。谢谢
回复

使用道具 举报

发表于 2014-8-7 12:00 | 显示全部楼层
忙了半天我以为是把总表数据做成分表数据
回复

使用道具 举报

 楼主| 发表于 2014-8-7 12:15 | 显示全部楼层
阿呆88 发表于 2014-8-7 12:00
忙了半天我以为是把总表数据做成分表数据

是把分表中标红色数据对应调入汇总表中。谢谢
回复

使用道具 举报

 楼主| 发表于 2014-8-7 12:18 | 显示全部楼层
自动从大到小排序、自动计算占比70%问题都解决了,就是调入时出了问题,分表最后一行数据未调过去。

点评

没看懂要求,分表最后一行也没有数值,汇总什么?  发表于 2014-8-7 20:45
回复

使用道具 举报

 楼主| 发表于 2014-8-8 16:02 | 显示全部楼层
行业大类筛选模板A(主营业务收入).zip (16.81 KB, 下载次数: 15)
回复

使用道具 举报

发表于 2014-8-8 20:18 | 显示全部楼层    本楼为最佳答案   
Sub Macro1()
Dim arr, brr, d, i&, j%, n&
Set d = CreateObject("scripting.dictionary")
arr = Sheets("汇总表").Range("a1").CurrentRegion
ReDim brr(1 To UBound(arr) - 1, 1 To Sheets.Count - 1)
For j = 1 To Sheets.Count
    If Sheets(j).Name <> "汇总表" Then
        Sheets(j).Activate
        sht = Sheets(j).Name
        ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
        n = Range("a65536").End(xlUp).Row - 1
        [f1] = Application.Sum(Range("c2").Resize(n, 1))
        [d2] = "=C2/$F$1"
        With Range("d2").Resize(n, 1)
            .NumberFormatLocal = "0.0%"
            .FillDown
            .Value = .Value
        End With
        [a1].Resize(n + 1, 4).Sort [d2], Order1:=xlDescending, Header:=xlGuess
        h = 0
        For i = 2 To n
            zf = Cells(i, 1) & sht
            h = h + Cells(i, 4)
            If h < 0.7 Then d(zf) = Cells(i, 3) Else d(zf) = Cells(i, 3): [a2].Resize(i - 1, 4).Interior.ColorIndex = 3: Exit For
        Next
    End If
    [f1] = ""
Next
For i = 2 To UBound(arr)
    For j = 3 To UBound(arr, 2)
        zf = arr(i, 1) & arr(1, j)
        brr(i - 1, j - 2) = d(zf)
    Next
Next
Sheets("汇总表").Activate
[c2].Resize(UBound(brr), UBound(brr, 2)) = brr
End Sub
回复

使用道具 举报

 楼主| 发表于 2014-8-11 08:22 | 显示全部楼层
dsmch 发表于 2014-8-8 20:18
Sub Macro1()
Dim arr, brr, d, i&, j%, n&
Set d = CreateObject("scripting.dictionary")

谢谢老师。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 00:52 , Processed in 0.532828 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表