Изменение порядка рядов данных диаграммы в Excel
как один ряд переупорядочивания используется для создания диаграммы в Excel?
например, я иду на диаграмму, щелкните правой кнопкой мыши > выберите данные. В левой колонке я вижу серию 1, серию 2,..., серия n. Скажем, я хочу переместить серию 3 после серии 4, Можно ли это сделать с помощью диаграммы? Я не хочу перемещать ячейки данных на листе.
Я использую Excel 2011 (mac os x).
9 ответов
выбрать серию и посмотрите в строке формул. Последний аргумент - порядок сюжета серии. Вы можете редактировать эту формулу так же, как и любую другую, прямо в строке формул.
например, выберите ряд 4, затем измените 4 на 3.
Правой Кнопкой Мыши на диаграмме. В диалоговом окне "форматирование рядов данных" есть вкладка "порядок рядов", на которой можно перемещать ряды вверх и вниз. Я нахожу это намного проще, чем возиться с последним аргументом формулы серии.
Это в Excel 2003 в Windows. Аналогичное диалоговое окно в Excel 2011 для 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
чтобы изменить порядок укладки рядов на диаграммах в Excel для Mac 2011:
- выберите диаграмму,
- Выберите серию (проще всего в разделе Лента>макет диаграммы>текущий выбор),
- нажмите макет диаграммы>выбор формата или меню>Формат>серия данных...,
- во всплывающем меню Формат серии данных нажмите Заказать, затем выберите отдельные серии и нажмите Вверх или Вниз кнопки для регулировки укладки порядок по оси для серии объектов. Это изменяет порядок построения и легенды, но не может изменить номер порядка в Формуле ряда.
У меня был сюжет из трех серий на вторичной оси, и серия, которую я хотел сверху, застряла внизу в нарушение Вверх и Вниз кнопки. Он был отформатирован только как маркеры. Я вставил строку, и вуаля(!), Я мог бы изменить его порядок в сюжете. Позже Я можно было удалить линию, и иногда ее все еще можно было заказать, но иногда нет.
FYI, если вы используете две оси y, порядковые номера будут иметь значение только в наборе рядов этой оси Y. Я считаю, что вторичная ось y по умолчанию находится поверх первичной. Если вы хотите, чтобы серия на первичной оси была сверху,вам нужно сделать ее вторичной.
изменить последовательность ряда в Excel 2010:
- выберите (нажмите) любой ряд данных и перейдите на вкладку" Дизайн "в группе" инструменты диаграммы".
- нажмите "Выбрать данные" в группе "данные" и во всплывающем окне выделите ряд, который нужно переместить.
- нажмите треугольник вверх или вниз в верхней части левого окна с надписью "легенды" (серия).
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