2016-05-26 6 views
0

Excelのピボットテーブルの成功率を計算したいと思います。これは私のデザインです:ピボットテーブルのパーセンテージ数式

Row Labels Count Threshold-% 

REG1  224  0.00% 
    FALSE 11 
    TRUE 213 

REG2  213  0.00% 
    FALSE 13 
    TRUE 200 

REG3  318  0.00% 
    FALSE 3 
    TRUE 315 

REG4  467  0.00% 
    FALSE 7 
    TRUE 460 

Grand Total 1222 0.00% 

そして、これは私のVBAコードである:私は私が望むデザインを実行するための式を作成して苦労しています

Sub CreatePivotTable() 

Dim sht As Worksheet 
Dim pvtCache As PivotCache 
Dim pvt As PivotTable 
Dim StartPvt As String 
Dim SrcData As String 
Dim lRow As Long 
Dim pf_name As String 

    pf_name = "Count of State" 

    lRow = Cells(Rows.Count, 12).End(xlUp).Row 

    'Data Range for Pivot Table 
    SrcData = ActiveSheet.Name & "!" & Range("A1:L" & lRow).Address(ReferenceStyle:=xlR1C1) 

    'Set Worksheet 
    Set sht = Worksheets("Metrics") 

    'Pivot Table Starting Point 
    StartPvt = sht.Name & "!" & sht.Range("A3").Address(ReferenceStyle:=xlR1C1) 

    'Create Pivot Cache from Source Data 
    Set pvtCache = ActiveWorkbook.PivotCaches.Create(_ 
     SourceType:=xlDatabase, _ 
     SourceData:=SrcData) 

    'Create Pivot Table From Pivot Cache 
    Set pvt = pvtCache.CreatePivotTable(_ 
     TableDestination:=StartPvt, _ 
     TableName:="PivotTable1") 

    Set pvt = Worksheets("Metrics").PivotTables("PivotTable1") 

    'Define Rows 
    sht.PivotTables("PivotTable1").AddFields RowFields:=Array("Region", "State") 

    'Create Count Column 
    With pvt.PivotFields("State") 
     .Orientation = xlDataField 
     .Function = xlCount 
     .Position = 1 
     .NumberFormat = "0" 
    End With 

    'Create Calculated Column 
    pvt.CalculatedFields.Add Name:="Threshold", Formula:="=SUM(True/True+False)" 

    'Populate Calculated Column 
    With pvt.PivotFields("Threshold") 
     .Orientation = xlDataField 
     .Function = xlSum 
     .Position = 2 
     .NumberFormat = "0.00%" 
     .Caption = "Threshold-%" 
    End With 

    'Show Grand Totals 
    pvt.ColumnGrand = True 
    pvt.RowGrand = True 

End Sub 

。これは、私が使用している行です:

'Create Calculated Column 
    pvt.CalculatedFields.Add Name:="Threshold", Formula:="=SUM(TRUE/TRUE+FALSE)" 

すべて私はすべてのために100%です。 TRUEとFALSEの値にアクセスするにはどうしたら正しい式で使用できるのですか?

また、TRUEまたはFALSEのパーセンテージの合計を表示せずに、各地域のパーセンテージの合計(したがってP%= TRUE /(TRUE + FALSE)* 100)を表示したいだけです。それから私は、総計行の領域の割合の平均値を表示したいと思い、このように:

Row Labels Count Threshold-% 

REG1  224  95.09% 
    FALSE 11 
    TRUE 213 

REG2  213  93.90% 
    FALSE 13 
    TRUE 200 

REG3  318  99.06% 
    FALSE 3 
    TRUE 315 

REG4  467  98.50% 
    FALSE 7 
    TRUE 460 

Grand Total 1222 96.64% 

答えて

0

私は、これはあなたが探しているものだと思う:

pvt.AddDataField pvt.PivotFields("State"), "Threshold", xlCount 
With pvt.PivotFields("Threshold") 
    .Calculation = xlPercentOfParentRow 
    .NumberFormat = "0.00%" 
End With 
+0

私は謝罪、私の質問wasnそれは私が思ったほど明確ではない。そのコードは機能していましたが、「国家総数」の総計と、その総計からの合計の割合を示していました。私が解決しようとしているのは、各地域の成功率(TRUEとFALSEの値に基づいて)です。その後、合計合計行に表示される結果の平均割合を取得します。 –

+0

私は質問を編集して、 –

+0

ピボットテーブルでこれを行う方法がわかりません。おそらく通常の数式を使用するか、VBAで計算する必要があります – tigeravatar

関連する問題