Metody distribuce hodnot pro hodnoty konsolidovaných buněk
Příkazy Splasher, které zpětně zapisují hodnoty do konsolidovaných buněk, mají jako předponu symbol hash (#). Název každého příkazu splasher je zkrácen na jedno písmeno, například C (Copy) nebo L (Like).
Pokud je v buňce zapsána textová hodnota, která začíná jedním z těchto písmen nebo symbolem #, případně obsahuje celý název příkazu splasher, může být hodnota nesprávně analyzována jako příkaz splasher. Když k tomu dojde, buňka zobrazí údaj #REF!
.
Pokud je hodnota k zápisu do buňky vždy text a nikdy datum ani číslo, můžete se tomuto problému vyhnout tak, že k hodnotě přidáte předponu dvou apostrofů. První apostrof zajistí, že řetězec nebude interpretován jako číslo ani jako datum nebo čas. Druhý apostrof zajistí, že řetězec nebude interpretován jako příkaz splasher.
Problém se vyskytuje pouze s hodnotami buňky, nikoli s poznámkami nebo atributy buněk. Nastane pouze v případě, že je splashing aktivní.
Příklad
C2019-20
do buňky.
=CELLWRITE("C2019-20","DEPM","BPCCONFIG_CYCLE","...
Písmeno C
je však interpretováno jako příkaz COPY a bude vrácena chyba #REF!
.
Přidání dvou apostrofů po počátečních uvozovkách instruuje analyzátor, že se nejedná o příkaz splasher, číslo ani datum:
=CELLWRITE("''C2019-20","DEPM","BPCCONFIG_CYCLE","...
Alokace a alterace
Pro každou metodu zpětného zápisu můžete určit alokaci či alteraci hodnot.
Alokace nahradí stávající hodnoty. Pokud například buňka obsahuje hodnotu 1 a zapíšete do ní pomocí alokace hodnotu 2, výsledná hodnota buňky bude 2.
Alterace upraví stávající hodnoty o hodnotu, kterou zadáte. Pokud například buňka obsahuje hodnotu 1 a zadáte do ní pomocí alterace hodnotu 2, výsledná hodnota buňky bude 3.
Příkazy alterace mají jako předponu znak et (&).
Metody a příkazy zpětného zápisu
Ve výchozím nastavení jsou metody zpětného zápisu aditivní – stávající hodnoty různými způsoby zvyšují. Můžete změnit syntaxi každé metody zpětného zápisu, aby hodnoty odečítala a měnila hodnoty procentuálně.
V této části s příklady syntaxe vážené, rovnoměrné, základní a analogické alokace může mít hodnota [value] jako předponu znaménko minus (-), a zapisovat tak záporné hodnoty. Může mít rovněž jako příponu znak procent (%), a měnit tak hodnoty procentuálně.
Syntaxe | Vysvětlení |
---|---|
&W20 | Přidá 20 k hodnotě buňky |
&W-20 | Odečte 20 od hodnoty buňky |
&W5% | Zvýší hodnotu buňky o 5 % |
Znaménko plus (+) je implicitní, ale můžete je explicitně zadat (např. &W+20). Každá metoda zpětného zápisu podporuje dvě nebo tři alternativní syntaxe. Například syntaxe #W[value]
a #@[value]
jsou ekvivalentní. Příklady, které obsahují konkrétní názvy dimenzí a prvků vycházejí z aplikace Vzorky
Vážená
Vzájemné proporce podřízených hodnot zůstávají při zvýšení či snížení příslušné nadřazené hodnoty zachovány.
Vážená alokace: #W[value]
Pokud pomocí vážené alokace zapíšete do nadřazené buňky například dvojnásobnou hodnotu, hodnota každé podřízené buňky se rovněž zdvojnásobí.
Vážená alterace: &W[value]
Pokud pomocí vážené alokace zapíšete do nadřazené buňky například dvojnásobnou hodnotu, hodnota každé podřízené buňky se rovněž zdvojnásobí a přičte ke stávající hodnotě.
Příklad
Hodnota nadřazené buňky je 9 a hodnota každé ze tří podřízených buněk je 3. Váženou alterací zapíšete do nadřazené buňky hodnotu 18. Hodnota každé podřízené buňky se zdvojnásobí a přičte ke stávající hodnotě. Každá podřízená buňka tak bude mít výslednou hodnotu 9. Nadřazená buňka bude mít výslednou hodnotu 27.
Rovnoměrná
Hodnoty, které zadáte do nadřazených buněk, se distribuují rovnoměrně
Rovnoměrná alokace: #E[value]
Hodnota, kterou zadáte do nadřazené buňky, nahradí stávající hodnotu a bude distribuována rovnoměrně mezi podřízené buňky.
Příklad
Nadřazená buňka má tři podřízené. Rovnoměrnou alokací zapíšete do nadřazené buňky hodnotu 12. Každá podřízená buňka bude mít výslednou hodnotu 4.
Rovnoměrná alterace: &E[value]
Hodnota, kterou zadáte do nadřazené buňky, bude distribuována rovnoměrně mezi podřízené buňky a přičtena ke stávající hodnotě.
Příklad
Hodnota nadřazené buňky je 12. Jsou zde tři podřízené buňky, každá s hodnotou 4. Rovnoměrnou alterací zapíšete do nadřazené buňky hodnotu 12. Hodnota 12 se distribuuje rovnoměrně do každé podřízené buňky a přičte ke stávající hodnotě. Každá podřízená buňka bude mít výslednou hodnotu 8. Nadřazená buňka bude mít výslednou hodnotu 24.
Základní
Hodnota, kterou zapíšete do nadřazené buňky, se zapíše do každé podřízené buňky. Hodnota nadřazené buňky se aktualizuje.
Základní alokace: #B[value]
Hodnota, kterou zapíšete do nadřazené buňky, se zapíše do každé podřízené buňky a nahradí stávající hodnotu.
Příklad
Nadřazená buňka má tři podřízené. Základní alokací zapíšete do nadřazené buňky hodnotu 2. Každá podřízená buňka bude mít výslednou hodnotu 2. Nadřazená buňka bude mít výslednou hodnotu 6.
Základní alterace: &B[value]
Hodnota, kterou zapíšete do nadřazené buňky, se zapíše do každé podřízené buňky a přičte ke stávající hodnotě.
Příklad
Nadřazená buňka má tři podřízené. Hodnota každé podřízené buňky je 2. Hodnota nadřazené buňky tedy bude 6. Základní alterací zapíšete do nadřazené buňky hodnotu 2. Hodnota 2 se zapíše do každé podřízené buňky a přičte ke stávající hodnotě. Každá podřízená buňka bude mít výslednou hodnotu 4. Nadřazená buňka bude mít výslednou hodnotu 12.
COPY
Hodnoty z jedné oblasti kostky je možné zkopírovat do jiné: například skutečná čísla za jeden rok do rozpočtu na jiný rok. V tomto příkladu jsou skutečná čísla zdrojem a rozpočet je cílem.
Do cílové buňky je třeba zapsat příkaz Kopírovat. V příkazu zadáte pouze dimenze a prvky, které odlišují zdrojovou oblast kostky od cílové. Pokud prvky patří jednoznačně do konkrétní dimenze, je třeba zadat pouze prvky.
Kopírování – alokace: #C[Tuple]
Kopírování – alterace: &C[Tuple]
Řazená kolekce je adresa konkrétní oblasti databáze. V tomto případě je řazenou kolekcí adresa dat, která chcete zkopírovat. Doporučuje se k definici řazené kolekce použít jedinečné názvy prvků.
Pokud jsou zdrojem i cílem konsolidované (C) nebo základní (N) prvky, příkaz COPY s alokací využívá při zpětném zápisu externí váženou základní metodu specifickou pro OLAP. V případě prvků C musí být struktura prvků nižší úrovně podobná. Zdrojové i cílové prvky tedy musí mít stejný počet podřízených prvků, jim podřízených prvků atd. V ostatních případech se použije externí vážená metoda.
Příkaz COPY s alterací využívá při zpětném zápisu externí váženou delta metodu.
Příklady
Chcete zkopírovat skutečné hodnoty za čtvrté čtvrtletí 2006 do rozpočtu téhož čtvrtletí. Vyberte buňku obsahující čísla rozpočtu daného čtvrtletí a zadejte:
#COPY [VALTYPE].[Variance].[Actual];[PERIOD].[All Years].[2006].[2006_Q4]
Chcete zkopírovat skutečné hodnoty pro Německo za třetí čtvrtletí 2006 do rozpočtu pro Francii na čtvrté čtvrtletí 2006.
Vyberte buňku obsahující rozpočet pro Francii na čtvrté čtvrtletí a zadejte:
#COPY [REGION].[All Regions].[Europe].[Germany];[VALTYPE].[Variance].[Actual];[PERIOD].[All Years].[2006].[2006_Q3]
COPYFULL
Příkaz COPYFULL s alokací využívá při zpětném zápisu externí váženou metodu specifickou pro OLAP.
Příkaz COPYFULL s alterací využívá externí váženou delta metodu.
Datové prvky
Služba Microsoft Analysis Services podporuje datové prvky. Datový prvek je kopie nadřazeného prvku, ale bez jeho stavu. Do datového prvku můžete provádět zpětný zápis, aniž byste ovlivnili podřízené prvky.
Příklad
Máte personální hierarchii, ve které je manažer nadřazeným prvkem. Pokud plánujete plat manažera, můžete provést zpětný zápis hodnoty do datového prvku Manažer namísto prvku Manažer. Plat ostatního personálu tak nemá na plat manažera vliv a naopak.
LIKE
Hodnoty můžete do podřízených buněk konsolidované buňky distribuovat pomocí funkce splash ve stejných proporcích, jako hodnoty podřízených buněk jiné konsolidované buňky.
Do cílové buňky je třeba zapsat příkaz Like. V příkazu zadáte pouze dimenze a prvky, které odlišují zdrojovou oblast databáze od cílové. Pokud prvky patří jednoznačně do konkrétní dimenze, není třeba zadávat pouze prvky.
V příkazech zpětného zápisu písmeno L označuje LIKE.
LIKE – alokace: #L[value][Tuple]
LIKE – alterace: &L[value][Tuple]
Řazená kolekce je adresa konkrétní oblasti databáze. V tomto případě je řazenou kolekcí adresa zdrojové oblasti databáze.
Příklad
Prodejní výsledky pro Španělsko za čtvrté čtvrtletí 2005 jsou 60. Výsledky za jednotlivé měsíce jsou: říjen 10, listopad 20 a prosinec 30.
Chcete-li zjistit, jaký vliv by na první čtvrtletí 2006 v Itálii měl prodejní výsledek 600 (při distribuci ve stejných proporcích jako ve čtvrtém čtvrtletí 2005 ve Španělsku), vyberte buňku obsahující prodej v Itálii za první čtvrtletí a zadejte tuto hodnotu:
#L 600 [REGION].[All
Regions].[Europe].[Spain];[PERIOD].[All Years].[2005].[2005_Q4]
Prodej v Itálii za první čtvrtletí tedy bude 600. Výsledky za jednotlivé měsíce pak budou: leden 100, únor 200 a březen 300.
#delete
Chcete-li odstranit všechny hodnoty z řezu databáze, zadejte příkaz #delete
do buňky, která obsahuje vzorec pro zpětný zápis (např. WBC).
LIKEFULL
Příkaz LIKEFULL kombinuje příkazy LIKE a COPYFULL. Znamená to, že umožňuje zpětný zápis určené hodnoty, ale pro zpětný zápis využívá režim Externí vážený. Syntaxe pro alokaci je:
#LIKEFULL [value] [tuple]
Syntaxe pro alteraci je:
&LIKEFULL [value] [tuple]
. Při zpětném zápisu se využívá externí vážená delta metoda.