Ako prepojiť stĺpce cez podmienku v PowerPivote

PowerPivot oficiálne umožňuje prepájať tabuľky cez 1 stĺpec. Čo ale v prípade, keď potrebujete neštandardné prepojenie, napr. cez rozsah hodnôt, ktoré sa nachádzajú v tej druhej a zároveň prepájanej tabuľke? Oficiálne to nejde, ale my si ukážeme, ako to pôjde 🙂

V podstate ide o jednoduchú modifikáciu vzorca, ktorý bol použitý na dynamickú kategorizáciu dát. Ak ste tento článok ešte nečítali, tak ho pre lepšie pochopenie odporúčam prečítať predtým, ako budete pokračovať.

Majme teda 2 tabuľky, ktoré chceme prepojiť. Použijeme na začiatok náš vzorový súbor, v ktorom je prvá tabuľka – Objednávky. Druhá tabuľka bude tabuľka pásiem, ktorú si do PowerPivotu dotiahneme napr. ako linkovanú tabuľku a pomenujeme napr. Pásma. Tabuľka pásiem bude vyzerať nasledovne:

ppivot_podm_prepojenie1

V stĺpci Názov sa nachádza názov pásma, ktorý chceme po prepojení na tabuľku Objednávky používať v kontingenčke na analýzu dát. V stĺpcoch Od a Do sa nachádzajú hranice intervalu, do ktorého musí spadať cena objednávky, a na ktorý chceme “prepojiť” cenu objednávky v tabuľke Objednávky v stĺpci Cena objednávky. To však nebudeme vedieť priamo, a preto si dopomôžeme fintou, že dotiahneme unikátny identifikátor riadku zo stĺpca ID z tabuľky Pásma do tabuľky Objednávky. To spravíme ako vypočítaný stĺpec v tabuľke Objednávky týmto vzorcom:

=CALCULATE(VALUES(‘Pásma'[ID]); FILTER(‘Pásma’; ‘Pásma'[Od] <= [Cena objednávky] && [Cena objednávky] < ‘Pásma'[Do]))

Tento stĺpec si pomenujeme tiež ID, a pokúsime sa prepojiť tieto 2 tabuľky štandardným prepojením cez tieto 2 stĺpce s rovnakým menom v oboch tabuľkách. Keď to ale skúsite, narazíte na chybovú hlášku s cyklickou závislosťou:

ppivot_podm_prepojenie2

Problém je v tom, že stĺpec ID v tabuľke Objednávky je odvodený z prepájanej tabuľky, a, aj keď nejde priamo o cyklickú závislosť, tak PowerPivot to berie ako cyklickú závislosť. Takže takto nám to priamo nedovolí prepojiť. Obídeme to ale podobnou fintou, akú sme použili už v článku o oprave dát – a to, že:

  1. zduplikujeme tabuľku s pásmami a nazveme ju Pásma2
  2. stĺpec ID v tabuľke Objednávky budeme počítať z tej zduplikovanej tabuľky (čiže nahraďte v hore uvedenom vzorci “Pásma” za “Pásma2”)
  3. tabuľku Pásma2 skryjeme pred užívateľmi
  4. prepojenie spravíme znova medzi stĺpcom ID z tabuľky Objednávky a rovnakým stĺpcom v tabuľke Pásma

A takéto prepojenie nám už PowerPivot dovolí spraviť 🙂 Zároveň sme skryli tú zduplikovanú tabuľku s pásmami kvôli tomu, aby zbytočne nemýlila používateľov, a aby sme upratali po sebe. Následne môžeme použiť dokopy v kontingenčke stĺpec Názov z tabuľky Pásma napr. s merítkom Obrat z tabuľky Objednávky:

ppivot_podm_prepojenie3

Nie je to síce jednoduché riešenie, ale po zopár opakovaniach už nad tým nebudete veľa rozmýšľať. Zároveň má tú výhodu, že tento vzorec s postupom môžete použiť na všetky možné podmienené aj inak neštandardné prepojenia tabuliek, lebo je univerzálny. Stačí nahradiť podmienku vo funkcii FILTER tou Vašou podmienkou, a potom už nič ďalšie nebráni svetlým zajtrajškom v powerpivotovaní 🙂 A v tom je tá sila – je to síce trochu komplikovanejšie ako bežné prepojenia, ale je to univerzálne. A vďaka tomu to môžete používať znova, a znova, a znova, až dokým sa Vám to nezunuje 🙂