pondělí 8. prosince 2008

Současné zobrazení N nejlepších a N nejhorších

Na posledním školení jsem zákazníkům demonstroval příklad na výpis Top N a Ostatní. Padl dotaz, zda by šlo do téže sestavy vypsat současně "N" nejlepších a "N" nejhorších. Níže najdete řešení provedené nad demonstračními daty "Paint":

1. Vyberte Jeden sloupec s dimenzí a jeden faktový


2. Stejný faktový sloupec přidejte ještě 3x


3. Jeho druhý výskyt upravte (Upravit sloupec)


4. Na témže sloupci nastavte třídění


5. Následující sloupec bude sloužit pro určení toho, které z řádků patří mezi „Nejlepších 5“ a které mezi „Nejhorších 5“. Zvolte opět „Upravit sloupec“ (tlačítko fx) a použijte následující CASE příkaz:
CASE WHEN RANK("Sales Measures".Dollars) <= 5 THEN Markets.Market WHEN RANK("Sales Measures".Dollars) > MAX(RANK("Sales Measures".Dollars))-5 THEN Markets.Market ELSE 'Ostatní' END

V takto upraveném sloupci budou zobrazeny názvy poboček (hodnot dimenze) v případě, že jsou mezi prvními nebo posledními 5ti. V opačném případě bude v tomto sloupci hodnota „Ostatní“


6. Poslední sloupec bude sloužit pro agregaci dle skupin „Nejlepších 5“, „Nejhorších 5“ a „Ostatní“. Klikněte opět na „Upravit sloupec“ a aplikujte následující vzorec:
CASE WHEN Rank("Sales Measures".Dollars) <= 5 THEN 'Nejlepších 5' WHEN Rank("Sales Measures".Dollars) > MAX(RANK("Sales Measures".Dollars))-5 THEN 'Nejhorších 5' ELSE 'Ostatní' END


Takto nyní vypadá seznam sloupců ve výběru kritérií:


7. Nyní se přepněte do zobrazení kontingenční tabulky. Vylučte sloupce Pořadí a Market (původní dimenze). V části Míry ponechte pouze sloupec Dollars (faktová tabulka) a sloupec Skupina a Pobočky umístěte do sekce řádků:


8. Sloupec skupina skryjte a nastavte pro něj součty (symbol ∑ - volba „za“). Také zvolte celkový součet v sekci řádky.


9. Graf pro takovéto společné výsledky nemá v podstatě smysl, neboť obvykle, jako i v tomto případě, jsou výsledky ze spodní části tabulky o několik řádů menší než ty z horní části. Pokud byste však chtěli graf použít, je možné výsledná data ještě filtrovat. Ukažme si možnost filtru pomocí výzvy sloupce:

a/ Na záložce „Výběry“ zvolte „Vytvořit výzvu – Výzva filtru sloupce“ a formulář vyplňte následovně (v prvním rozevíracím seznamu – Filtr podle sloupce - vyberte poslední hodnotu):


b/ Potvrďte OK. Test výzvy vypadá následovně (například):


Hodnoty však nejdou nabídnout přímo, vzhledem k tomu, že jsou z vypočítaného sloupce. Musíte je tedy zadávat ručně. Pokud se překlepnete, žádná data nebudou vrácena.

c/ Výsledek pak vypadá takto:


10. Přidejme tedy graf:


11. Graf zařaďte do složeného pohledu (Compound Layout) a otestujte sestavu prostřednictvím testovací výzvy:


Mohli jste samozřejmě ještě použít dynamicky naplněnou hodnotu počtu nejlepších/nejhorších výsledků pomocí prezentační proměnné, jak je naznačeno v původním příkladu.


Petr Zeman (OKsystem)

Žádné komentáře: