0

下面是表格

安特 | 瓦尔 | 位置
230 | 一个 | 德尔
450 | 乙 | 网红670
| c | BLR
890 | d | 德尔
111 | 电子| 网红
133 | 一个 | 网红
155 | 乙 | 德尔
177 | c | BLR
199 | 一个 | 德尔
221 | 乙 | BLR
243 | c | BLR
265 | d | 网红287
| 一个 | 意见领袖
309 | 乙 | 德尔
331 | c | 德尔
353 | d | 意见领袖
375 | 电子| BLR
397 | 一个 | BLR
419 | 乙 | 德尔
441 | c | 网红

在 a,b,c,d,e 值中,如何根据 a's..b's..c's..d's..e 的数量找到相应位置的最大 2 个值。
我能够通过数据透视表获得前 2 个值的总和,对于一个位置请告诉如何通过 VBA 同时获取所有位置的顶部 val 的总和
2

我已经发布了相同的 VBA 代码,它只给出了一个位置的结果。

抱歉无法上传快照。

4

3 回答 3

1

假设您的数据在 A1 到 C20 中。您拥有三个独特的位置:DEL、KOL、BLR。

在 D1 中输入:

=SUMPRODUCT(--(A$1:A$20)*(C$1:C$20=C1)) 并复制到 D3

在 E1 中输入:

=大(D1:D3,1)

在 E2 中输入:

=大(D1:D3,2)

应该看起来像:

在此处输入图像描述

编辑:

根据您的评论,DEL 的最高两个值为:

=大(如果(C1:C20 =“删除”,A1:A20),1)

=大(如果(C1:C20 =“删除”,A1:A20),2)

这些是必须使用CNTRL-SHFT-ENTER输入的数组公式,而不仅仅是ENTER

于 2013-09-20T12:01:13.503 回答
0
   1. Insert a Pivot Table.
   2. Add Val in Row Labels.
   3.  Add Location in column Labels.
   4.  Add Amt in Values field(Sumof Amt).

    Now In created Pivot Table,  

   1.  In column labels filter for only one location(eg: Blr).
   2.  In Row Labels filter apply value filters and select Top 10..(last item).
   3.  In place of 10(by default) give 2.

   4.  Now the table consists of Top 2 val with their sum of Amount for BLR Location.

相同的 VBA 代码:

    Private Sub CommandButton1_Click()
    Dim wkbk As Workbook
    Set wkbk = ActiveWorkbook

    With wkbk.Sheets(1)
    LastRow = .Range("A1").End(xlDown).Row
    LastCol = .Range("A1").End(xlToRight).Column
    Set rngSource = .Range("A1", .Cells(LastRow, LastCol))

    End With

       With wkbk.Sheets(2)
       Set dst = .Range("a1")
       End With  With wkbk
    Sheets(1).PivotTableWizard _
    SourceType:=xlDatabase, _
    SourceData:=rngSource, _
    TableDestination:=dst, _
    TableName:="Pivotinfo"
    End With

    With wkbk.Sheets(2).PivotTables("Pivotinfo")
        .PivotFields("Val").Orientation = xlRowField
        .PivotFields("Location").Orientation = xlColumnField



            With .PivotFields("Amt")
            .Orientation = xlDataField
            .Function = xlSum  With wkbk.Sheets(2).PivotTables("Pivotinfo").PivotFields("Location")
    .PivotItems("DEL").Visible = False
    .PivotItems("KOL").Visible = False
    End With

    With wkbk.sheets(2).PivotTables("Pivotinfo").PivotFields("Val").AutoShow _
    xlAutomatic, xlTop, 2, "Sum of Amt"
    End With
    End With
    End With
    End Sub
于 2013-09-20T13:51:16.903 回答
0

DMAX函数根据给定条件返回列表或数据库中列中的最大数。

http://www.techonthenet.com/excel/formulas/dmax.php

于 2013-09-20T12:08:41.273 回答