• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2007 円グラフの判例の上位項目表示)

Excel2007 円グラフの判例の上位項目表示

このQ&Aのポイント
  • Excel2007 円グラフの判例の上位10項目の表示方法はありますか?
  • Excel2007 円グラフの判例で上位10項目のみ表示させたい場合、簡単な方法はありますか?
  • Excel2007 円グラフの判例で上位項目のみを表示させる方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

凡例項目を削除するVBAの例です。 降順にプロットされていることが前提条件です。 グラフを選択しておいて実行してください。 (例1) Dim i As Long ActiveChart.Legend.Delete ActiveChart.HasLegend = True With ActiveChart.Legend For i = .LegendEntries.Count To 11 Step -1 .LegendEntries(i).Delete Next End With

meruru17
質問者

お礼

ありがとうございます。VBAは詳しく理解していませんが、逆に通常ではできないのでしょうね。。 1000項目のケースは不要としても、全部で30項目の場合など、適宜活用できそうですね。参考にしてみます

その他の回答 (3)

回答No.4

1,000 個もあったら、円グラフの中に載せたとしても、それを見た人は読み取れませんよね。平均で 0.1 % ですからね。 既に出ている回答にもあるように、ムリヤリ凡例のみ非表示にしようと思えば、VBA における Legend オブジェクトの操作でできます。けれど、図解の手法として本当にそれでよいのか、見直してみたほうがよいでしょう。 No.2 さんのように、「その他」などの項目を作って一まとめにするというのが通常の方法だと思いますので、それをお勧めします。グラフだけでなく、人に見せる表とか、箇条書きであっても、同じことです。 ベストアンサーは辞退します。

meruru17
質問者

お礼

ありがとうございます。質問内容内の意図している作業自体がナンセンスという解釈ですね。おっしゃるとおりと思います。方法論といてのご回答も一応いただけたようですので参考にしてみます。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

数値データを判定するようにしてみました。 プロット順は影響しません。 (例2) Dim rng As Range Dim v As Variant Dim i As Long With ActiveChart .Legend.Delete .HasLegend = True With .SeriesCollection(1) v = .values Set rng = Range(Split(.Formula, ",")(2)) End With With ActiveChart.Legend For i = UBound(v) To 1 Step -1 If WorksheetFunction.Rank(v(i), rng, 0) > 10 Then .LegendEntries(i).Delete End If Next End With End With

meruru17
質問者

お礼

詳解にありがとうございます。全く中身がわかりませんがご参考にさせて頂きます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! ご希望の方法ではないのですが・・・ 一案として、 元データの最終行に 11位以下すべてを合計した行を設け 分類を「その他」とし Ctrlキーを押しながら上位10位と最後の合計した行の分類・データを範囲指定 → 円グラフ作成 これで↓のようなグラフになります。 これではダメですか?m(_ _)m

meruru17
質問者

お礼

ありがとうございます。1000項目のケースとしてご回答いただいた「その他」でまとめるのは合理的だと思います。全部で30項目の場合なども想定してできれば下位項目をひとまとめにせずにできればありがたかったというところですが参考にさせていただきます。

関連するQ&A