Color d'un gràfic a partir de cel·les amb les seves dades

Formulació del problema

M'agradaria que les columnes de l'histograma (o les rodanxes del gràfic circular, etc.) tinguessin automàticament el color que es va utilitzar per omplir les cel·les corresponents amb les dades d'origen:

Anticipant els crits sorpresos i indignats de companys individuals, cal tenir en compte que, per descomptat, el color de l'emplenament del diagrama també es pot canviar manualment (clic dret sobre la columna - Format punt/sèrie (Format punt de dades/sèrie) etc. – ningú discuteix. Però a la pràctica, hi ha moltes situacions en què és més fàcil i convenient fer-ho directament a les cel·les amb dades i, aleshores, el gràfic s'hauria de tornar a pintar automàticament. Intenteu, per exemple, establir l'emplenament per regió per a les columnes d'aquest gràfic:

Crec que entens la idea, oi?

Solució

Res més que una macro pot fer-ho. Per tant, obrim Editor Visual Basic de la pestanya revelador (Desenvolupador — Editor Visual Basic) o premeu la drecera del teclat Alt + F11, inseriu un nou mòdul buit a través del menú Inserir – Mòdul i copieu el text d'aquesta macro allà, que farà tota la feina:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") Set r = Range(m(2)) For i = 1 A r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Següent i Següent j Final Sub  

Ara podeu tancar Visual Basic i tornar a Excel. Utilitzar la macro creada és molt senzill. Seleccioneu el gràfic (àrea del gràfic, no àrea de traçat, quadrícula o columnes!):

i executeu la nostra macro amb el botó Macros llengüeta revelador (Desenvolupador - Macros) o amb una drecera de teclat Alt + F8. A la mateixa finestra, en cas d'ús freqüent, podeu assignar una drecera de teclat a la macro mitjançant el botó Paràmetres (Opcions).

PS

L'única mosca de la pomada és la impossibilitat d'utilitzar una funció similar per als casos en què el color s'assigna a les cel·les de les dades d'origen mitjançant regles de format condicional. Malauradament, Visual Basic no té una eina integrada per llegir aquests colors. Hi ha, per descomptat, certes “muletas”, però no funcionen per a tots els casos ni en totes les versions.

  • Què són les macros, com utilitzar-les, on inserir codi de macro a Visual Basic
  • Format condicional en Excel 2007-2013
  • Novetats als gràfics a Excel 2013

Deixa un comentari