Excelでグラフを作成するためにシリーズをどのように並べ替えますか?
たとえば、グラフに移動し、右クリックして[データの選択]をクリックします。左の列には、シリーズ1、シリーズ2、...、シリーズnがあります。たとえば、シリーズ4の後にシリーズ3を移動したいのですが、チャートビューから実行できますか?ワークシートのデータセルを移動したくありません。
Excel 2011(mac os x)を使用しています。
シリーズを選択し、数式バーを見てください。最後の引数は、シリーズのプロット順序です。この数式は、数式バーで他の数式と同じように編集できます。
たとえば、シリーズ4を選択し、4を3に変更します。
チャート上のシリーズを右クリックします。 [データシリーズの書式設定]ダイアログには、[シリーズ順序]タブがあり、ここでシリーズを上下に移動できます。これは、シリーズ式の最後の引数をいじるよりもずっと簡単だと思います。
これは、WindowsのExcel 2003にあります。 Excel 2011 for Macにも同様のダイアログがあります。
これらはUP/DOWNボタンです
下記参照
Excel 2007または2010を使用しており、凡例のみを並べ替える場合は、以下のコードを使用します。 mChartNameがチャート名と一致していることを確認してください。
Sub ReverseOrderLegends()
mChartName = "Chart 1"
Dim sSeriesCollection As SeriesCollection
Dim mSeries As Series
With ActiveSheet
.ChartObjects(mChartName).Chart.SetElement (msoElementLegendNone)
.ChartObjects(mChartName).Chart.SetElement (msoElementLegendRight)
Set sSeriesCollection = .ChartObjects(mChartName).Chart.SeriesCollection
For Each mSeries In sSeriesCollection
If mSeries.Values(1) = 0.000000123 Or mSeries.Values(1) = Empty Then
mSeries.Delete
End If
Next mSeries
LegendCount = .ChartObjects(mChartName).Chart.SeriesCollection.Count
For mLegend = 1 To LegendCount
.ChartObjects(mChartName).Chart.SeriesCollection.NewSeries
.ChartObjects(mChartName).Chart.SeriesCollection(LegendCount + mLegend).Name = .ChartObjects(mChartName).Chart.SeriesCollection(LegendCount - mLegend + 1).Name
.ChartObjects(mChartName).Chart.SeriesCollection(LegendCount + mLegend).Values = "={0.000000123}"
.ChartObjects(mChartName).Chart.SeriesCollection(LegendCount + mLegend).Format.Fill.ForeColor.RGB = .ChartObjects(mChartName).Chart.SeriesCollection(LegendCount - mLegend + 1).Format.Fill.ForeColor.RGB
Next mLegend
For mLegend = 1 To LegendCount
.ChartObjects(mChartName).Chart.Legend.LegendEntries(1).Delete
Next mLegend
End With
End Sub
Mac 2011のExcelでグラフ内のシリーズの積み重ね順序を変更するには:
セカンダリ軸に3つのシリーズのプロットがあり、上にしたいシリーズがMove UpおよびMove Downボタンを無視して下にスタックしていました。たまたまマーカーとしてのみフォーマットされていました。行を挿入し、presto(!)、プロット内の順序を変更できました。後でラインを削除することができ、時には注文することもできましたが、注文しないこともありました。
参考までに、2つのy軸を使用している場合、注文番号はそのy軸の一連のセット内でのみ違いを生じます。セカンダリ-y軸はデフォルトでプライマリの上にあると思います。プライマリ軸のシリーズを一番上にしたい場合は、代わりにセカンダリにする必要があります。
Excel 2010でシリーズのシーケンスを変更するには:
この関数は系列名を取得し、それらを配列に入れ、配列をソートし、それに基づいて、望ましい出力を提供するプロット順を定義します。
Function Increasing_Legend_Sort(mychart As Chart)
Dim Arr()
ReDim Arr(1 To mychart.FullSeriesCollection.Count)
'Assigning Series names to an array
For i = LBound(Arr) To UBound(Arr)
Arr(i) = mychart.FullSeriesCollection(i).Name
Next i
'Bubble-Sort (Sort the array in increasing order)
For r1 = LBound(Arr) To UBound(Arr)
rval = Arr(r1)
For r2 = LBound(Arr) To UBound(Arr)
If Arr(r2) > rval Then 'Change ">" to "<" to make it decreasing
Arr(r1) = Arr(r2)
Arr(r2) = rval
rval = Arr(r1)
End If
Next r2
Next r1
'Defining the PlotOrder
For i = LBound(Arr) To UBound(Arr)
mychart.FullSeriesCollection(Arr(i)).PlotOrder = i
Next i
End Function