Excel精英培训网

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

[已解决]请高手帮忙指点根据条件求和的问题

[复制链接]
发表于 2012-4-20 11:22 | 显示全部楼层 |阅读模式
要求附件:
1、同一个“资金号码”下,对于“同一个品种”,要在”买卖方向“上出现过两次。即买、卖各一次
满足这个条件下,对”结算金额“求和。
2、对于不满足 1 的行进行删除。
最佳答案
2012-4-20 22:11
Sub a()
    Dim ar, br(), di, dk
    Dim i&, j&
    Dim d As New Dictionary
    ar = [A1].CurrentRegion
    For i = 2 To UBound(ar)
        d(ar(i, 1) & "," & ar(i, 2)) = d(ar(i, 1) & "," & ar(i, 2)) + IIf(ar(i, 3) = "买入", 1, -1)
    Next i
    For i = 2 To UBound(ar)
        If d(ar(i, 1) & "," & ar(i, 2)) = 0 Or Abs(d(ar(i, 1) & "," & ar(i, 2))) <> 1 Then
            d(ar(i, 1) & "," & ar(i, 2)) = d(ar(i, 1) & "," & ar(i, 2)) + ar(i, 5)
        Else
            d.Remove ar(i, 1) & "," & ar(i, 2)
        End If
    Next i
    ReDim br(0 To d.Count - 1)
    dk = d.Keys
    For i = 0 To d.Count - 1
        br(i) = Split(dk(i), ",")
    Next i
    [G10].Resize(UBound(br) + 1, 2) = Application.Transpose(Application.Transpose(br))
    [I10].Resize(UBound(br) + 1, 1) = Application.Transpose(d.Items)
End Sub

test.rar

4.92 KB, 下载次数: 7

发表于 2012-4-20 22:11 | 显示全部楼层    本楼为最佳答案   
Sub a()
    Dim ar, br(), di, dk
    Dim i&, j&
    Dim d As New Dictionary
    ar = [A1].CurrentRegion
    For i = 2 To UBound(ar)
        d(ar(i, 1) & "," & ar(i, 2)) = d(ar(i, 1) & "," & ar(i, 2)) + IIf(ar(i, 3) = "买入", 1, -1)
    Next i
    For i = 2 To UBound(ar)
        If d(ar(i, 1) & "," & ar(i, 2)) = 0 Or Abs(d(ar(i, 1) & "," & ar(i, 2))) <> 1 Then
            d(ar(i, 1) & "," & ar(i, 2)) = d(ar(i, 1) & "," & ar(i, 2)) + ar(i, 5)
        Else
            d.Remove ar(i, 1) & "," & ar(i, 2)
        End If
    Next i
    ReDim br(0 To d.Count - 1)
    dk = d.Keys
    For i = 0 To d.Count - 1
        br(i) = Split(dk(i), ",")
    Next i
    [G10].Resize(UBound(br) + 1, 2) = Application.Transpose(Application.Transpose(br))
    [I10].Resize(UBound(br) + 1, 1) = Application.Transpose(d.Items)
End Sub

test(1).rar

12.23 KB, 下载次数: 26

评分

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

查看全部评分

回复

使用道具 举报

发表于 2012-4-21 17:57 | 显示全部楼层
楼主不要光评分啊,给个最佳答案撒
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 21:31 , Processed in 0.125979 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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