Bublinové grafy v Excelu jsou atraktivním způsobem jak přehledně vizualizovat data. Jejich vytvoření však nemusí být tak úplně jednoduché. Pojďme se tedy podívat, jak na to.

Příklad

Řekněme, že chci vytvořit tento graf. Na jedné ose je podíl na trhu, na druhé ose je tempo růstu trhu. Velikost bublin pak znázorňuje velikost tržeb za tento výrobek. Jak možná poznáte, tento graf vychází z BCG matice popisující výrobkové portfolio firmy.

1 hotovy graf

Návod

Existují minimálně tři způsoby jak bublinkový graf vytvořit. Ve všech budeme vycházet z následující tabulky:

2 zdrojova tabulka

Prosté označení oblasti a vložení grafu

První způsob by asi napadl každého, má ale svá negativa. Označíme oblast všech dat kromě popisků a vložíme bublinkový graf.

3 vložení bublinového grafu

Ten vypadá takto. Tedy neobsahuje ani legendu, ani popisky bublin - nepoznám, která bublina je který výrobek. Mohu však přidat alespoň popisky. Tedy nejprve je vložím:

4 přidání popisků bublin

Pak je změním a přitom zdroj těchto popisků odkážu na přehled výrobků.

5 úprava popisků - načtení z oblasti

Takto vypadá výsledek.

6 výsledný graf - jedna řada

V grafu jsou všechny bublinky stejně barevné. To se dá změnit tak, že každou bublinku natvrdo přebarvíme. Vypovídá to však o tom, že všechny bubliny jsou jednou datovou řadou. Což se nám nelíbí hlavně proto, že k takovém grafu není možné přidat smysluplnou legendu. Pokud legendu nepotřebujete, nemusíte už dál číst. Pokud, ano, pojďme na bod dva.

Postupné vložení bublin

V tomto případě vložíme nejprve graf, aniž bychom předem vybrali data. Vloží se tedy prázdný.

7 prázdný graf

My pak zdroj dat musíme změnit.

8 přidání jednotlivé datové řady

Klikneme na Přidat. Postupně doplňujeme odkazy na buňky s hodnotami dle obrázku - název, hodnota na x, hodnota na y, velikost bubliny.

9 vyplnění datové řady

To uděláme pro všechny řádky. Do grafu tak postupně přibývají bublinky, až je graf hotov. Všimneme si, že každá bublinka už je jinak barevná (jedná se totiž o různé datové řady), a také je možné snadno přidat legendu.

10 bublinový graf s legendou a různobarevnými bublinami

Na druhou stranu je jasné, že při větším množství bublin je tento postup pořádně zdlouhavý.

Makro

Řešením té zdlouhavosti je makro. Nemusíte ho chápat, ale můžete ho použít. Přiznávám se - toto makro jsem nevykoumal sám, ale zkopíroval přímo ze stránek Microsoftu. Stačí označit celou tabulku a pak makro spustit. Makro v zásadě dělá to samé co předchozí postup - ale na jeden klik.

Public Sub CreateMultiSeriesBubbleChart()
    If (selection.Columns.Count <> 4 Or selection.Rows.Count < 3) Then
        MsgBox "Selection must have 4 columns and at least 2 rows"
        Exit Sub
    End If
    
    Dim bubbleChart As ChartObject
    Set bubbleChart = ActiveSheet.ChartObjects.Add(Left:=selection.Left, Width:=600, Top:=selection.Top, Height:=400)
    bubbleChart.chart.ChartType = xlBubble
    Dim r As Integer
    For r = 2 To selection.Rows.Count
        With bubbleChart.chart.SeriesCollection.NewSeries
            .Name = "=" & selection.Cells(r, 1).Address(External:=True)
            .XValues = selection.Cells(r, 2).Address(External:=True)
            .Values = selection.Cells(r, 3).Address(External:=True)
            .BubbleSizes = selection.Cells(r, 4).Address(External:=True)
        End With

    Next

    bubbleChart.chart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
    bubbleChart.chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "=" & selection.Cells(1, 2).Address(External:=True)
    
    bubbleChart.chart.SetElement (msoElementPrimaryValueAxisTitleRotated)
    bubbleChart.chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "=" & selection.Cells(1, 3).Address(External:=True)
    
    bubbleChart.chart.SetElement (msoElementPrimaryCategoryGridLinesMajor)
    bubbleChart.chart.Axes(xlCategory).MinimumScale = 0
End Sub

 

1 Komentář

  1. Sekce „Postupné vložení bublin“ mi vyřešila problém, dík moc. Jen moc nechápu, proč to Excel neumí automaticky, jako jiné grafy… Ještě jednou dík! Jirka

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář