重新排列图表数据系列

43

如何重新排序用于创建Excel图表的系列?

例如,我进入图表,右键单击 > 选择数据。在左侧列中,我看到系列1、系列2到系列n。

比如,我想把第3个系列移动到第4个系列后面,可以在图表视图中完成吗?我不想移动工作表中的数据单元格。

我使用的是Excel 2011(Mac OS X)。


1
正如您之前所要求的(在我编辑之前),这种类型的问题适合在Super User上提问,因为它不涉及代码。 - Lance Roberts
如何使用VBA对图表中的数据系列进行排序? - M--
9个回答

69

选择一个系列并查看公式栏。最后一个参数是该系列的绘图顺序。您可以像处理其他任何公式一样,在公式栏中直接编辑此公式。

例如,选择第四个系列,然后将 4 改为 3。


1
不错!但是,如果你有“n”系列,你不能跳到n+1;Excel会让你停留在“n”。我的条形图有一些带空格的列对,但我无法在最后两个对之间添加空格,但这很棒!谢谢! - KM.
@KM 在图表中添加另一个系列,进行必要的操作,最后再删除。 - M--

39

在图表上右键单击任何系列。在“格式化数据系列”对话框中,有一个“系列顺序”选项卡,在其中可以上下移动系列。我发现这比调整系列公式的最后一个参数要容易得多。

这是在Windows上的Excel 2003中。在Mac上的Excel 2011中也有类似的对话框:

输入图像描述


22

这些是上/下按钮

图片描述


5
谢谢。不幸的是,它们在Mac版本中缺失。唉。 - KM.
1
这在2010年的Windows版本中非常好用。它比尝试操作公式要好得多。在2010年,您可以通过在图表上右键单击并选择“选择数据”来访问此功能。这很容易做到,并且很容易教给办公室里的其他人。 - Nigel

4

Excel 2010 - 如果你想重新排列 数据透视图图表 中的系列:

  • 前往底层的数据透视表
  • 右键单击要调整的系列中的一个“列标签”(注意:需要点击其中一个系列标题(例如下面示例中的“Saturday”或“Sunday”),而不是“列标签”文本本身)
  • 在弹出菜单中,将鼠标悬停在“移动”上,然后从结果子菜单中选择一个选项以重新定位系列变量。
  • 你的数据透视图图表将相应更新

enter image description here


4
请查看下文。
如果您使用的是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

3
要更改Excel for Mac 2011中图表系列的堆叠顺序:
  1. 选择图表,
  2. 选择系列(最容易在Ribbon>Chart Layout>Current Selection下),
  3. 点击Chart Layout>Format Selection或Menu>Format>Data Series…,
  4. 在弹出菜单格式化数据系列上,点击Order,然后单击各个系列并单击向上移动向下移动按钮以调整主题系列在轴上的堆叠顺序。这将更改绘图和图例的顺序,但可能不会更改系列公式中的顺序号。

我在次坐标轴上有一个三个系列的图表,我想要的系列却固执地排在底部,无论怎么单击向上移动向下移动按钮都无济于事。它的格式为仅标记。我插入了一条线,噫!在绘图中可以更改其顺序。后来我可以删除该线,有时仍然可以排序,但有时不行。


3

如果您正在使用两个y轴,则序号仅在该y轴系列中产生差异。我相信默认情况下,辅助-y轴位于主要位置的顶部。如果您希望主轴中的系列处于顶部,则需要将其设置为辅助轴。


默认情况下,次要-y-轴位于主要轴的底部。 - mooseman
1
@mooseman:你错了。至少在Excel 2010中是这样的。 - Trojanian
2年前,我最可能使用的是2007,那么我到底错在哪里? - mooseman

2

如何在Excel 2010中更改系列的顺序:

  • 选择(单击)任何数据系列,然后在“图表工具”组中单击“设计”选项卡。
  • 在“数据”组中单击“选择数据”,在弹出窗口中突出显示要移动的系列。
  • 单击标有“图例条目”(系列)的左侧框的上箭头或下箭头。

1
这个函数获取系列名称,将它们放入一个数组中,对数组进行排序,并根据此定义绘图顺序,以获得所需的输出。
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

https://stackoverflow.com/questions/43546534/how-to-sort-legend-of-a-chart-in-vba - M--

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接