Excel (一般機能)

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

 
(Windows 10全般 : Excel 2016)
ピボットグラフでグループ化
投稿日時: 23/02/20 02:15:14
投稿者: sylphis

現在、別ブックの実績データを抽出用ブックでデータモデルに取り込み、ピボットグラフを作成しています。その際、列に実績が1〜10000の数値が入った値を1000単位でグループ化したいです。
グループ化して1〜1000、1001〜2000のような形式でグラフ軸として出したいのですが可能でしょうか。
調べた限りグループ化はピボットテーブル等で実績数値からグラフを作成すればグループ化は可能ですが直接データモデルからピボットグラフを作成する際にグループ化の設定がないように思われます。
 
もし分かれば教えてください。
 

回答
投稿日時: 23/02/20 08:36:12
投稿者: んなっと

以下のような単純化した具体例(表形式)を示してください。
 
●元データ
 
    A   B
 1 実績 日数
 2 2147  26
 3 9271  13
 4 4896   6
 5 5252  10
 6 5535   3
 7 2489  22
 8 1237  50
 9 7310  28
10 5383  43
11 3257   4
12 4126  14
13 9446  16
14 7541   2
............
 
 
●欲しい集計結果とグラフの種類
 
     A      B
1 グループ     平均
2  1000〜      50
3  2000〜      24
4  3000〜      4
5  4000〜      10
6  5000〜 18.66666667
7  7000〜      15
8  9000〜     14.5
 
横軸 グループ 縦軸 平均 グラフの種類 集合縦棒グラフ

回答
投稿日時: 23/02/20 16:06:46
投稿者: んなっと

上記のように元データの列名が 実績 日数 の場合で書きます。
 
PowerPivotで [列の追加]
=FLOOR([実績],1000)+1&"〜"&CEILING([実績],1000)
 
とすると 計算列1 が追加される。(名前は変更)
 
→[ピボットテーブル]
→以下のように
 
       B      C
 3   計算列 1 平均 / 日数
 4  1001〜2000      50
 5  2001〜3000      24
 6  3001〜4000      4
 7  4001〜5000      10
 8  5001〜6000 18.66666667
 9  7001〜8000      15
10 9001〜10000     14.5

投稿日時: 23/02/21 12:58:43
投稿者: sylphis

んなっと様 ご回答ありがとうございます。
教えていただいたデータモデルに列追加の方法でで動作確認できました。
追加で申し訳ありませんがあと2点ほど教えていただけますでしょうか。
 
・教えていただきました方法ですと項目が文字列になってしまったため、並びがうまくいきません。
 何か方法はありますでしょうか。
 
・メジャーのDax式で同様の対応できますでしょうか。
 
ご確認をお願いいたします。

回答
投稿日時: 23/02/21 13:26:38
投稿者: んなっと

●文字列にしたくないなら
=FLOOR([実績],1000)+1
で。
 
●データを取り込んで集計・加工するならPowerQueryが普通だと思います。
PowerQueryで取り込んで、詳細エディターでこんな感じに。
 
let
    ソース = Excel.Workbook(File.Contents("E:\office\******.xlsx"), null, true),
    変更された型 = Table.TransformColumnTypes(ソース,{{"日数", Int64.Type}}),
    Srt = Table.Sort(変更された型,{{"実績", Order.Ascending}}),
    Add = Table.AddColumn(Srt, "グループ", each Text.From(Number.RoundDown([実績],-3)+1)&"〜"&Text.From(Number.RoundUp([実績],-3))),
    Grp = Table.Group(Add, {"グループ"}, {{"平均", each List.Average([日数]), type nullable number}})
in
    Grp
 
 
●すみません、Daxは知らないですし興味もありません。

投稿日時: 23/02/21 21:41:42
投稿者: sylphis

確認しました。やはりパワークエリですね。
ありがとうございます。