Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
ピボットテーブルのランキングについて
投稿日時: 23/04/23 20:55:31
投稿者: sylphis

ピボットテーブルのランキングでの質問です。
性別、年代別の売上集計のピボットテーブルで売上ランキングをつけたいのですが値フィールドの設定で
降順での順位を指定すると性別ごとに年代別にランキングがでてしまいます。
 
性別  年代  売上   ランキング
 女性  10代  10000    5
     20代  15000    4
     30代  40000    1
     40代  30000    2
     50代  20000    3
 男性  10代  50000    1
     20代  40000    2
     30代  30000    3
     40代  20000    4
     50代  10000    5
 
これを男女混合でランキングにしたいのですがどうしたらいいでしょうか。

回答
投稿日時: 23/04/24 13:02:36
投稿者: んなっと

元データの右端に下のように「全体」を追加(その下のセルはすべて空欄でOKです)
 
    A   B   C   D
 1 性別 年代 売上 全体
 2 女性 10代 6000   
 3 女性 20代 6000   
 4 女性 30代 7000   
 5 女性 40代 2000   
 6 女性 50代 5000   
 7 男性 10代 1000   
 8 男性 20代 7000   
 9 男性 30代 4000   
10 男性 40代 6000   
11 男性 50代 1000   
12 女性 10代 1000   
13 女性 20代 3000   
14 女性 30代 3000   
15 女性 40代 3000   
16 女性 50代 2000   
17 男性 10代 1000   
18 男性 20代 7000   
19 男性 30代 8000   
20 男性 40代 7000   
21 男性 50代 3000   
 
→挿入
→ピボットテーブル
→[行]に 「性別」 「年代」」 「全体」 をドラッグ
 [Σ値]に 「売上」 を2回ドラッグ
 
    A   B    C      D       E
 3 性別 年代  全体 合計 / 売上 合計 / 売上2
 4 女性 10代 (空白)     7000     7000
 5    20代 (空白)     9000     9000
 6    30代 (空白)    10000     10000
 7    40代 (空白)     5000     5000
 8    50代 (空白)     7000     7000
 9 男性 10代 (空白)     2000     2000
10    20代 (空白)    14000     14000
11    30代 (空白)    12000     12000
12    40代 (空白)    13000     13000
13    50代 (空白)     4000     4000
 
→合計 / 売上2 の上でマウス右クリック
→値フィールドの設定
→計算の種類 降順での順位
 基準フィールド 「性別」
 OK
 
    A   B    C      D       E
 3 性別 年代  全体 合計 / 売上 合計 / 売上2
 4 女性 10代 (空白)     7000       6
 5    20代 (空白)     9000       5
 6    30代 (空白)    10000       4
 7    40代 (空白)     5000       7
 8    50代 (空白)     7000       6
 9 男性 10代 (空白)     2000       9
10    20代 (空白)    14000       1
11    30代 (空白)    12000       3
12    40代 (空白)    13000       2
13    50代 (空白)     4000       8
 
→合計 / 売上2 を 全体順位 に変更
→C列非表示
 
    A   B    C      D     E
 3 性別 年代  全体 合計 / 売上 全体順位
 4 女性 10代 (空白)     7000     6
 5    20代 (空白)     9000     5
 6    30代 (空白)    10000     4
 7    40代 (空白)     5000     7
 8    50代 (空白)     7000     6
 9 男性 10代 (空白)     2000     9
10    20代 (空白)    14000     1
11    30代 (空白)    12000     3
12    40代 (空白)    13000     2
13    50代 (空白)     4000     8
14 総計           83000     

回答
投稿日時: 23/04/24 13:30:16
投稿者: んなっと

同順位があった場合の、それ以降の順位付けがうまくいかないようです。
データモデルに追加してからDAX関数を使う方法もあるようですが、無知なので回答できません。

回答
投稿日時: 23/04/24 13:41:28
投稿者: んなっと

PowerQueryが使えるなら...
 
 データ
→テーブルまたは範囲から
→「先頭行〜」にチェックを入れてOK
→詳細エディター
→以下のコードを貼り付け
 
 
let
    ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
    Grp = Table.Group(ソース, {"性別", "年代"}, {{"売上", each List.Sum([売上]), type nullable number}}),
    Rnk = Table.AddRankColumn(Grp,"全体順位",{"売上",Order.Descending}),
    Srt = Table.Sort(Rnk,{{"性別", Order.Ascending}, {"年代", Order.Ascending}})
in
    Srt
 
 
→OK
→閉じて読み込む
 
    A   B   C     D
 1 性別 年代  売上 全体順位
 2 女性 10代  7000     6
 3 女性 20代  9000     5
 4 女性 30代 10000     4
 5 女性 40代  5000     8
 6 女性 50代  7000     6
 7 男性 10代  2000    10
 8 男性 20代 14000     1
 9 男性 30代 12000     3
10 男性 40代 13000     2
11 男性 50代  4000     9

投稿日時: 23/05/01 11:34:49
投稿者: sylphis

教えていただいた内容に沿って対応したらできました。ありがとうございました。