čtvrtek 14. února 2008

Jak vytvořit graf se dvěma měřítky v tabulkách Google

Často potřebuji sledovat vývoj dvou veličin v čase a na to se výborně hodí klasický spojnicový graf. Problém ovšem nastane, pokud se absolutní hodnoty daných veličin podstatně liší. Dobrým příkladem je graf návštěvnosti a počtu získaných objednávek určitého webu. Jelikož objednávkou končí v průměru např. jen každá třicátá návštěva, je křivka objednávek moc plochá a nic užitečného mi neřekne.

MS Excel umí nastavit jedné sérii hodnot jiné měřítko, to ale v tabulkách z Dokumentů Google nejde. Nejprve jsem to řešil tak, že jsem pro jednu z veličin zvolil jinou jednotku. V uvedeném příkladu tedy například desítky návštěv místo jednotek návštěv. To ale nebylo ideální, protože jsem pro každý graf musel pokaždé znovu vymýšlet vhodné jednotky. Nakonec jsem si řekl, že spreadsheet by měl přeci pracovat za mne a naučil jsem ho přepočítávat měřítka automaticky a univerzálně. Výsledek vidíte na dalším obrázku:

Jak jsem toho dosáhl? Podívejte se na vzorový spreadsheet. Na prvním listu nazvaném Špatné řešení je původní graf s jedním měřítkem. K druhému listu Lepší řešení jsem se dostal tímto postupem:

  1. Mezi původní sloupce B a C jsem vložil nový sloupec C. Na poloze tohoto sloupce záleží, protože Google Docs umějí tvořit grafy jen ze souvislé oblasti.
  2. Definoval jsem si pojmenovaný rozsah Navstevy (B5:B49) a rozsah Objednavky (D5:D49). Dělá se to na záložce Vzorce tlačítkem Názvy rozsahů.
  3. Do první datové buňky sloupce C (tj. C5) jsem vložil vzorec =MIN(ARRAYFORMULA(Navstevy/Objednavky))*D5. Ten vypočítá podíly návštěv a objednávek v jednotlivých řádcích celých rozsahů Navstevy a Objednavky, najde nejmenší z těchto podílů a vynásobí jím hodnotu z buňky D5 (tedy počet objednávek). Tím je zaručeno, že se křivky nebudou křížit. Pokud by vám křížení nevadilo, můžete místo minima použít třeba průměr.
  4. Vzorec jsem zkopíroval do celého sloupce C (C5:C49).
  5. Z oblasti A4:C49 jsem vytvořil graf.
  6. Do buňky F4 nad graf jsem vložil vzorec =CONCATENATE("Počet objednávek je v grafu vynásoben koeficientem "; ROUND(MIN(ARRAYFORMULA(Navstevy/Objednavky)); 4); "."), který ukazuje koeficient použitý pro přepočet měřítka.
  7. Celý sloupec C jsem skryl příkazem Skrýt sloupec, takže ho ve výsledné tabulce nevidíte.

Možná vám připadá celé řešení hodně složité, ale ve skutečnosti jde vcelku snadno a hlavně stále stejně aplikovat na mnoho různých případů. Pokud by vás ale napadlo, jak v Dokumentech Google vytvářet grafy s více měřítky lépe, podělte se, prosím, o své náměty v komentářích.

3 komentáře:

  1. Ano. Druhý příklad je typický "manažerský" graf :-)

    OdpovědětVymazat
  2. Obezlička je to asi funkční, ale měl bych k tomu jednu drobnou výhradu. Pokud se někde takto kombinují význazně odlišné hodnoty v jednom grafu, ten přepočítávací faktor se zvolí nějaký "kulatější" (tedy např. 5x, 100x apod.) a pak se zapíše přímo k té přepočtené křice. Někde v titlku nebo popisce si toho nemusí každý všimnout.

    OdpovědětVymazat
  3. VJ, máte pravdu, že řešení není dokonalé. Obávám se ale, že to je zatím maximum, jakého lze v Google Docs dosáhnout. MS Excel druhé měřítko vynese na druhou osu Y vpravo, takže je to názornější, jenže to Tabulky Google neumějí.

    OdpovědětVymazat

Děkuji za váš čas věnovaný článku a za váš komentář. Všechny věcné připomínky, doplnění či otázky k danému článku rád zveřejním. Osobní vzkazy autorovi nebo jiné příspěvky bez informační hodnoty pro ostatní čtenáře budou z komentářů odstraněny, uvítám je však na adrese marek@sovavsiti.cz.