web-dev-qa-db-fra.com

Réorganisation des séries de données de graphique dans Excel

Comment peut-on réorganiser une série utilisée pour créer un graphique dans Excel?

Par exemple, je vais dans le graphique, faites un clic droit> Sélectionner des données. Dans la colonne de gauche, je vois la série 1, la série 2, ..., la série n. Dis, je veux déplacer la série 3 après la série 4, cela peut-il être fait à partir de la vue graphique? Je ne veux pas déplacer les cellules de données dans la feuille de calcul.

J'utilise Excel 2011 (Mac OS X).

39
KM.

Sélectionnez une série et regardez dans la barre de formule. Le dernier argument est l'ordre de parcelle de la série. Vous pouvez modifier cette formule comme n'importe quelle autre, directement dans la barre de formule.

Par exemple, sélectionnez la série 4, puis changez le 4 en 3.

65
Jon Peltier

Cliquez avec le bouton droit sur n'importe quelle série du graphique. Dans la boîte de dialogue "Formater la série de données", il existe un onglet "Ordre des séries" dans lequel vous pouvez déplacer les séries de haut en bas. Je trouve cela beaucoup plus facile que de jouer avec le dernier argument de la formule de la série.

Ceci est dans Excel 2003 sous Windows. Il existe une boîte de dialogue similaire dans Excel 2011 pour Mac:

enter image description here

39

Ce sont les boutons UP/DOWN

enter image description here

21
Dr. belisarius

Voir ci-dessous

Utilisez le code ci-dessous, si vous utilisez Excel 2007 ou 2010 et souhaitez réorganiser les légendes uniquement. Assurez-vous que mChartName correspond à votre nom de graphique.

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
4
Hakan

Excel 2010 - si vous souhaitez réorganiser la série sur un tableau croisé dynamique :

  • aller au tableau croisé sous-jacent
  • cliquez avec le bouton droit de la souris sur l'une des étiquettes de colonne de la série que vous souhaitez modifier (Remarque: vous devez cliquer sur l'un des en-têtes de la série (par exemple, "Samedi" ou "Dimanche" dans l'exemple ci-dessous) et non sur "Colonne". Le texte des étiquettes lui-même)
  • dans le menu contextuel, survolez 'Déplacer' avec le curseur de la souris, puis sélectionnez une option dans le sous-menu résultant pour repositionner la variable de série.
  • votre tableau croisé dynamique se mettra à jour en conséquence

enter image description here

3
Jon295087

Pour modifier l'ordre d'empilement des séries dans les graphiques sous Excel pour Mac 2011:

  1. sélectionnez le graphique,
  2. sélectionnez la série (plus facile sous Ruban> Disposition du graphique> Sélection actuelle),
  3. cliquez sur Disposition du graphique> Sélection du format ou sur Menu> Format> Série de données…,
  4. dans le menu contextuel Format de la série de données, cliquez sur Ordre, puis sur une série et sur le bouton Déplacer vers le haut ou Déplacer vers le bas pour régler l'ordre d'empilement sur l'axe de la série en question. Cela modifie l'ordre du tracé et de la légende, mais ne peut pas changer le numéro d'ordre dans la formule Série.

J'avais un graphe de trois séries sur l'axe secondaire et la série que je voulais en haut était collée en bas, au mépris des boutons Move Up et Move Down. Il s'est avéré être formaté en tant que marqueurs uniquement. J'ai inséré une ligne, et hop (!), Je pourrais changer son ordre dans l'intrigue. Plus tard, je pouvais supprimer la ligne et parfois, elle pouvait toujours être commandée, mais parfois pas.

3
Jeff Glassman

Pour votre information, si vous utilisez deux axes des ordonnées, les numéros d’ordre ne feront une différence que dans l’ensemble des séries de cet axe des ordonnées. Je crois que l'axe -y secondaire par défaut est au-dessus du primaire. Si vous voulez que la série de l'axe principal soit en haut, vous devrez plutôt la rendre secondaire.

3
omikun

Pour modifier la séquence d'une série dans Excel 2010:

  • Sélectionnez (cliquez sur) n'importe quelle série de données et cliquez sur l'onglet "Conception" dans le groupe "Outils de graphique".
  • Cliquez sur "Sélectionner les données" dans le groupe "Données" et dans la fenêtre contextuelle, mettez en surbrillance la série à déplacer.
  • Cliquez sur le triangle haut ou bas en haut de la zone de gauche, intitulé "Entrées de légende" (série).
2
Helper

Cette fonction récupère les noms des séries, les place dans un tableau, trie le tableau et définit l’ordre de traçage qui donnera le résultat souhaité.

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
1
M--