在Excel中重新排列图表数据系列
在Excel中如何重新sorting用于创build图表?
例如,我进入图表,右键单击>select数据。 在左栏中,我看到了系列1,系列2,…,系列n。 说,我想在系列4之后移动系列3,可以从图表来看吗? 我不想移动工作表中的数据单元格。
我正在使用Excel 2011(mac os x)。
select一个系列,并在配方栏中查找。 最后一个参数是系列的绘图顺序。 你可以编辑这个公式,就像在公式栏中一样。
例如,select系列4,然后将4更改为3。
用鼠标右键单击图表上的任何系列。 在“格式数据系列”对话框中,有一个“系列顺序”选项卡,可以在其中上下移动系列。 我发现这比系列公式的最后一个参数摆弄得容易得多。
这是在Windows中的Excel 2003中。 在Excel 2011 for Mac中有一个类似的对话框:
这些是UP / DOWNbutton
见下文
使用下面的代码,如果您使用的是Excel 2007或2010,并且只想重新sorting图例。 确保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
要在Excel for Mac 2011下更改图表系列的堆叠顺序,请执行以下操作:
- select图表,
- select系列(在“function区”>“图表布局”>“当前select”下最简单)
- 单击图表布局>格式select或菜单>格式>数据序列…,
- 在popup菜单中格式化数据系列点击顺序,然后单击单个系列,然后单击上移或下移button以调整主题系列的轴上的堆叠顺序。 这会更改图和图例的顺序,但不能更改系列公式中的订单号。
我在副轴上有了三个系列的情节,而我想顶在上面的这个系列却被卡在底部,无视上移和下移的button。 它恰好被格式化为标记只。 我插入一行,并presto(!),我可以改变它的顺序在情节。 后来我可以删除线,有时它可以仍然是有序的,但有时不能。
在Excel 2010中更改系列的顺序:
- select(点击)任何数据系列,然后单击“图表工具”组中的“devise”选项卡。
- 点击“数据”组中的“select数据”,然后在popup窗口中高亮显示要移动的系列。
- 单击标有“Legend Entries”(系列)的左侧框顶部的向上或向下三angular形。
仅供参考,如果您使用两个y轴,则订单号只会在该y轴的一组系列内产生差异。 我相信次要的-y轴默认是在主要的顶部。 如果您希望主轴上的系列位于最上方,则需要将其设置为辅助。
这个函数获取系列名称,将它们放入一个数组中,对数组进行sorting,并根据该数组定义将给出所需输出的绘图顺序。
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
Excel 2010 – 如果你想重新排列数据透视图上的系列:
- 去你的基础数据透视表
- 右键单击您想要调整的系列的某个列标签(注意:您需要点击其中一个系列标题(即下面示例中的“星期六”或“星期天”)而不是“列标签的文字本身)
- 在popup菜单中,将鼠标hover在“移动”上,然后从结果子菜单中select一个选项来重新定位系列variables。
- 您的数据透视表将相应地更新自己