Excel精英培训网

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

[已解决]分类统计及日期匹配

[复制链接]
发表于 2014-4-22 11:57 | 显示全部楼层 |阅读模式
需求说明:
1、首先跟据“项目信息”sheet中各个项目的“项目编码”(项目编码和项目名称是唯一对应、保持一致的)进行分类统计,并将分类结果放到“项目回款时间统计”sheet中(“已回款”的项目不需统计),并根据项目编号进行排序;
2、然后根据“项目回款时间统计”sheet中的项目编号,将“项目信息”sheet中的各个项目的具体“项目回款额”,根据具体的回款日期,放到“项目回款时间统计”sheet中的对应日期单元格。
请各位高手指点指点,多谢,详见附件。
项目信息.jpg
项目回款时间统计.jpg
分类统计及日期匹配.rar (10.74 KB, 下载次数: 9)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-4-22 12:05 | 显示全部楼层
回复

使用道具 举报

发表于 2014-4-22 12:23 | 显示全部楼层
C1=SUMPRODUCT(($A2=项目信息!$A$2:$A$11)*(项目信息!$E$2:$E$11=项目回款时间统计!C$1)*项目信息!$D$2:$D$11)
回复

使用道具 举报

发表于 2014-4-22 12:56 | 显示全部楼层
C2
  1. =TEXT(SUM(IFERROR((项目信息!$B$2:$B$12=$B2)*(项目信息!$E$2:$E$11=C$1)*项目信息!$D$2:$D$12,)),"0;;")
复制代码
三键下拉
回复

使用道具 举报

发表于 2014-4-22 12:57 | 显示全部楼层
分类统计及日期匹配.rar (12.2 KB, 下载次数: 3)
回复

使用道具 举报

发表于 2014-4-22 13:01 | 显示全部楼层
透视表好像能解决这个问题
回复

使用道具 举报

发表于 2014-4-22 13:18 | 显示全部楼层
  1. Sub Macro1()
  2. Dim arr, brr, crr, d, d2, i&, zf$
  3. Set d = CreateObject("scripting.dictionary")
  4. Set d2 = CreateObject("scripting.dictionary")
  5. arr = Sheet1.Range("a1").CurrentRegion
  6. Sheet2.Activate
  7. brr = Range("a1").CurrentRegion
  8. For i = 2 To UBound(arr)
  9.     zf = arr(i, 1) & "," & arr(i, 2) & "," & arr(i, 5)
  10.     d(zf) = arr(i, 4)
  11.     d2(arr(i, 1) & "," & arr(i, 2)) = ""
  12. Next
  13. ReDim crr(1 To d2.Count, 1 To UBound(brr, 2))
  14. a = d2.keys
  15. For i = 0 To d2.Count - 1
  16.     x = Split(a(i), ",")
  17.     crr(i + 1, 1) = x(0)
  18.     crr(i + 1, 2) = x(1)
  19.     For j = 3 To UBound(brr, 2)
  20.         zf = a(i) & "," & brr(1, j)
  21.         crr(i + 1, j) = d(zf)
  22.     Next
  23. Next
  24. Range("a2").Resize(UBound(crr), UBound(crr, 2)) = crr
  25. Range("a1").Resize(UBound(crr) + 1, UBound(crr, 2)).Sort [a1], Header:=xlGuess
  26. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-22 13:19 | 显示全部楼层    本楼为最佳答案   
………………

分类统计及日期匹配.zip

15.67 KB, 下载次数: 20

评分

参与人数 1 +1 收起 理由
moonofwell + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-4-22 15:50 | 显示全部楼层
dsmch 发表于 2014-4-22 13:19
………………

多谢,但是“已回款”的的项目不需要显示到“项目回款时间统计”sheet中,现在是所有项目都显示出来了,您再帮忙看看能不能处理一下,多谢:)
回复

使用道具 举报

发表于 2014-4-22 17:59 | 显示全部楼层
Sub Macro1()
Dim arr, brr, crr, d, d2, i&, zf$
Set d = CreateObject("scripting.dictionary")
Set d2 = CreateObject("scripting.dictionary")
arr = Sheet1.Range("a1").CurrentRegion
Sheet2.Activate
brr = Range("a1").CurrentRegion
For i = 2 To UBound(arr)
    zf = arr(i, 1) & "," & arr(i, 2) & "," & arr(i, 5)
    d(zf) = arr(i, 4)
    If arr(i, 5) <> "已回款" Then d2(arr(i, 1) & "," & arr(i, 2)) = ""
Next
ReDim crr(1 To d2.Count, 1 To UBound(brr, 2))
a = d2.keys
For i = 0 To d2.Count - 1
    x = Split(a(i), ",")
    crr(i + 1, 1) = x(0)
    crr(i + 1, 2) = x(1)
    For j = 3 To UBound(brr, 2)
        zf = a(i) & "," & brr(1, j)
        crr(i + 1, j) = d(zf)
    Next
Next
Range("a2").Resize(UBound(crr), UBound(crr, 2)) = crr
Range("a1").Resize(UBound(crr) + 1, UBound(crr, 2)).Sort [a1], Header:=xlGuess
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 22:19 , Processed in 1.372486 second(s), 18 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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