Изменение порядка рядов данных диаграммы в Excel

как один ряд переупорядочивания используется для создания диаграммы в Excel?

например, я иду на диаграмму, щелкните правой кнопкой мыши > выберите данные. В левой колонке я вижу серию 1, серию 2,..., серия n. Скажем, я хочу переместить серию 3 после серии 4, Можно ли это сделать с помощью диаграммы? Я не хочу перемещать ячейки данных на листе.

Я использую Excel 2011 (mac os x).

9 ответов


выбрать серию и посмотрите в строке формул. Последний аргумент - порядок сюжета серии. Вы можете редактировать эту формулу так же, как и любую другую, прямо в строке формул.

например, выберите ряд 4, затем измените 4 на 3.


Правой Кнопкой Мыши на диаграмме. В диалоговом окне "форматирование рядов данных" есть вкладка "порядок рядов", на которой можно перемещать ряды вверх и вниз. Я нахожу это намного проще, чем возиться с последним аргументом формулы серии.

Это в Excel 2003 в Windows. Аналогичное диалоговое окно в Excel 2011 для Mac:

enter image description here


Это кнопки вверх / вниз

enter image description here


см. ниже

используйте приведенный ниже код, Если вы используете 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

чтобы изменить порядок укладки рядов на диаграммах в Excel для Mac 2011:

  1. выберите диаграмму,
  2. Выберите серию (проще всего в разделе Лента>макет диаграммы>текущий выбор),
  3. нажмите макет диаграммы>выбор формата или меню>Формат>серия данных...,
  4. во всплывающем меню Формат серии данных нажмите Заказать, затем выберите отдельные серии и нажмите Вверх или Вниз кнопки для регулировки укладки порядок по оси для серии объектов. Это изменяет порядок построения и легенды, но не может изменить номер порядка в Формуле ряда.

У меня был сюжет из трех серий на вторичной оси, и серия, которую я хотел сверху, застряла внизу в нарушение Вверх и Вниз кнопки. Он был отформатирован только как маркеры. Я вставил строку, и вуаля(!), Я мог бы изменить его порядок в сюжете. Позже Я можно было удалить линию, и иногда ее все еще можно было заказать, но иногда нет.


FYI, если вы используете две оси y, порядковые номера будут иметь значение только в наборе рядов этой оси Y. Я считаю, что вторичная ось y по умолчанию находится поверх первичной. Если вы хотите, чтобы серия на первичной оси была сверху,вам нужно сделать ее вторичной.


изменить последовательность ряда в Excel 2010:

  • выберите (нажмите) любой ряд данных и перейдите на вкладку" Дизайн "в группе" инструменты диаграммы".
  • нажмите "Выбрать данные" в группе "данные" и во всплывающем окне выделите ряд, который нужно переместить.
  • нажмите треугольник вверх или вниз в верхней части левого окна с надписью "легенды" (серия).

Excel 2010-если вы хотите изменить порядок серии на сводная диаграмма:

  • перейдите к базовой сводной таблице
  • правой кнопкой мыши на одном из столбцов для серии вы хотите изменить (Примечание: Вы должны нажать на одну из серий заголовки (т. е. 'суббота или воскресенье' в примере, приведенном ниже) не 'столбцов' текст сам)
  • во всплывающем меню наведите указатель мыши на "переместить" , а затем выберите опцию из результирующее подменю для изменения положения переменной серии.
  • ваша сводная диаграмма будет обновляться соответственно

enter image description here


эта функция получает имена рядов, помещает их в массив, сортирует массив и на основе этого определяет порядок построения, который даст желаемый результат.

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