[[20151115203853]] 『ピボットテーブルで文字を表示』(もも) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ピボットテーブルで文字を表示』(もも)

シート1
名前 金額 住所
鈴木 200 2丁目
佐藤 500 4丁目



これを元にピボットテーブルを作成し

シート2
氏名 金額 住所
鈴木 200 2丁目
佐藤 500 3丁目
合計 700 1 件

という表を作りたいと思っているのですが、
住所の部分が「1」と表示されてしまいます。

ピボットテーブルでは文字の表示は出来ないのでしょうか?

< 使用 Excel:Excel2003、使用 OS:Windows7 >


 「ピボット 合計欄の表示書式」あたりで検索すると、いろいろでてきますね。

https://support.office.com/ja-jp/article/%E3%83%94%E3%83%9C%E3%83%83%E3%83%88%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB-%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%81%8A%E3%82%88%E3%81%B3%E6%9B%B8%E5%BC%8F%E3%82%92%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%99%E3%82%8B-a9600265-95bf-4900-868e-641133c05a80

 ここの フィールドの表示形式を変更する とか。

(β) 2015/11/15(日) 21:12


すみません、住所を値フィールドに設定しているのですか?
合計?データ個数?
どうやったら 1が表示されるのですか?

 名前    住所    合計 / 金額
 佐藤    4丁目   500
 鈴木    2丁目   200
 総計            700
 ではまずいのですか? 
(γ) 2015/11/15(日) 21:55

回答ありがとうございます。
住所を値フィールドに設定しています。
様式の関係上、名前と住所で金額を挟むように表示したいのです。
オフィスのサポートのリンクを見てみましたが、フィールド名を列に移動?することができません。
(もも) 2015/11/15(日) 22:33

値フィールドには「集計」方法を指定する必要がありますが、
何を指定しているのですか? 合計?データの個数?それ以外の何か?

(γ) 2015/11/15(日) 22:46


データの個数を指定しています。
(もも) 2015/11/15(日) 22:47

 うーん、ちょっと読み間違いしていました。

 「データ個数」としている以上、2丁目とか3丁目とかは表示できません。

 住所は 行ラベルに持って行くべきです。

 どうしても
 氏名 金額 住所 
 鈴木 200 2丁目 
 佐藤 500 3丁目 

 という列の順序にしたいなら、 
 できあがったピボットテーブルを別のところにコピーペイストしてから
 修正してください。

(γ) 2015/11/15(日) 23:28


ピボットではなく、関数でワークシートに引っ張ってくるとできますよ。
(カイル) 2015/11/15(日) 23:48

みなさんありがとうございます。
ピボットテーブルだけでは難しいんですね。
関数は自動で増えないですが、手で毎回追加する他ないようですね。
(もも) 2015/11/16(月) 06:47

マクロが使えるなら

 Sub test()
    Dim dic As Object
    Dim v
    Dim i As Long
    Dim n As Long
    Dim s As Long

    Set dic = CreateObject("scripting.dictionary")

    v = Sheets("Sheet1").Range("a1").CurrentRegion.Value

    For i = 1 To UBound(v, 1)
        If Not dic.exists(v(i, 1)) Then
            n = n + 1
            dic(v(i, 1)) = n
            v(n, 1) = v(i, 1)
            v(n, 2) = v(i, 2)
            v(n, 3) = v(i, 3)
        Else
            v(dic(v(i, 1)), 2) = v(dic(v(i, 1)), 2) + v(i, 2)
        End If
        If IsNumeric(v(i, 2)) Then s = s + v(i, 2)
    Next

    With Sheets("Sheet2").Range("a1")
        .Resize(, 3).EntireColumn.ClearContents
        .Resize(n, 3).Value = v
        .Offset(n).Resize(, 2).Value = Array("合計", s)
    End With

 End Sub

(マナ) 2015/11/16(月) 21:42


ピボットを更新すると自動で実行するマクロです。

 Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

    If Target.Name <> "もも" Then Exit Sub  '★実際のピボットテーブル名に修正して下さい

    Application.EnableEvents = False
    With Target
        With .PivotFields("名前")
            .ClearAllFilters
            .PivotItems("(blank)").Visible = False
        End With
        With .TableRange2
            .Columns(.Columns.Count + 1).EntireColumn.Clear
            .Columns(2).Copy .Cells(1, .Columns.Count + 1)
            .Columns(2).EntireColumn.Hidden = True
        End With
    End With
    Application.EnableEvents = True

 End Sub

(マナ) 2015/11/16(月) 23:36


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.