一个重新排序系列如何用于在 Excel 中创建图表?
例如,我转到图表,右键单击 > 选择数据。在左栏中,我看到系列 1、系列 2 到系列 n。
比如说,我想将系列 3 移到系列 4 之后,可以从图表视图中完成吗?我不想移动工作表中的数据单元格。
我正在使用 Excel 2011 (mac OS X)。
一个重新排序系列如何用于在 Excel 中创建图表?
例如,我转到图表,右键单击 > 选择数据。在左栏中,我看到系列 1、系列 2 到系列 n。
比如说,我想将系列 3 移到系列 4 之后,可以从图表视图中完成吗?我不想移动工作表中的数据单元格。
我正在使用 Excel 2011 (mac OS X)。
选择一个系列并在公式栏中查看。最后一个参数是该系列的情节顺序。您可以像编辑任何其他公式一样,直接在公式栏中编辑此公式。
例如,选择系列 4,然后将 4 更改为 3。
右键单击图表上的任何系列。在“格式化数据系列”对话框中,有一个“系列顺序”选项卡,您可以在其中上下移动系列。我发现这比摆弄系列公式的最后一个参数要容易得多。
这是在 Windows 的 Excel 2003 中。Excel 2011 for Mac 中有一个类似的对话框:
这些是向上/向下按钮
见下文
使用下面的代码,如果您使用的是 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
仅供参考,如果您使用两个 y 轴,则订单号只会在该 y 轴的系列集中产生影响。我相信默认情况下辅助 -y 轴位于主轴之上。如果您希望主轴中的系列位于顶部,则需要将其设为次要。
要在 Excel for Mac 2011 下更改图表中系列的堆叠顺序:
我在第二轴上有一个三个系列的情节,而我想要在顶部的系列被卡在底部,无视“上移”和“下移”按钮。它恰好被格式化为标记。我插入了一条线,并且 presto(!),我可以改变它在图中的顺序。后来我可以删除这条线,有时它仍然可以订购,但有时不能。
要在 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