V tomto článku sa popisuje syntax vzorca a používanie funkcie CUBEVALUE v Microsoft Exceli.
Popis
Vráti súhrnnú hodnotu kocky.
Syntax
CUBEVALUE(pripojenie;[členský_výraz1];[členský_výraz2];…)
Syntax funkcie CUBEVALUE obsahuje nasledujúce argumenty:
-
Pripojenie Povinný argument. Predstavuje textový reťazec názvu pripojenia ku kocke.
-
Členský_výraz Voliteľný argument. Predstavuje textový reťazec multidimenzionálneho výrazu (MDX), ktorý sa vyhodnocuje ako jedinečný člen alebo n-tica v kocke. Argumentom členský_výraz môže byť aj množina definovaná funkciou CUBESET. Argument členský_výraz používajte ako rozdeľovač, ktorým definujete časť kocky, ktorej agregátnu hodnotu chcete vrátiť. Ak argument členský_výraz neurčuje žiadnu mieru, použije sa predvolená miera kocky.
Poznámky
-
Počas vyhodnocovania funkcie CUBEVALUE sa v bunke dočasne zobrazí správa "#ZÍSKAVAJÚ_SA_ÚDAJE…", pokiaľ sa nenačítajú všetky údaje.
-
Ak parameter členský_výraz obsahuje odkaz na bunku a táto bunka obsahuje funkciu kocky, potom parameter členský_výraz použije výraz MDX položky v odkazovanej bunke a nie hodnotu zobrazenú v odkazovanej bunke.
-
Ak názov pripojenia nie je platným pripojením zošita uloženým v zošite, funkcia CUBEVALUE vráti #NAME? . Ak server OLAP (Online Analytical Processing) nie je spustený, nie je k dispozícii alebo vráti chybové hlásenie, funkcia CUBEVALUE vráti #NAME? .
-
Ak je neplatný aspoň jeden prvok n-tice, funkcia CUBEVALUE vráti #VALUE! .
-
Funkcia CUBEVALUE vracia chybovú hodnotu #NEDOSTUPNÝ, ak:
-
Syntax člena výrazu je nesprávna.
-
Člen určený parametrom členský_výraz v kocke neexistuje.
-
N-tica nie je platná, pretože neexistuje prienik určitých hodnôt. (Toto sa môže vyskytnúť v prípade viacerých prvkov rovnakej hierarchie.)
-
Množina obsahuje aspoň jedného člena s odlišnou dimenziou ako ostatní členovia.
-
Funkcia CUBEVALUE môže vrátiť chybovú hodnotu #NEDOSTUPNÝ, ak odkazujete na objekt relácie, ako sú vypočítavaný člen alebo množina členov kontingenčnej tabuľky so zdieľaným pripojením k údajom a kontingenčná tabuľka je zrušená alebo konvertovaná na vzorce. (Na karte Možnosti v skupine Nástroje kliknite na položku Nástroje OLAP a potom kliknite na položku Konvertovať na vzorce).
-
Problém: Hodnoty null sa konvertujú na reťazce nulovej dĺžky
V prípade, že bunka v Exceli neobsahuje žiadne údaje, pretože ste ju nikdy nezmenili alebo ste odstránili jej obsah, bude obsahovať prázdnu hodnotu. V mnohých databázových systémoch sa prázdne hodnoty nazývajú nulové hodnoty. Prázdna alebo nulová hodnota doslovne znamená „žiadna hodnota“. Vzorec však nikdy nemôže vrátiť prázdny reťazec alebo nulovú hodnotu. Vzorec vždy vracia niektorú z troch hodnôt: číselnú hodnotu, textovú hodnotu, ktorá môže byť reťazcom s nulovou dĺžkou, alebo chybovú hodnotu, ako napríklad #ČÍSLO! alebo #HODNOTA.
Ak vzorec obsahuje funkciu CUBEVALUE pripojenú k databáze OLAP (Online Analytical Processing) a výsledkom dotazu na túto databázu je hodnota Null, Program Excel skonvertuje túto hodnotu Null na reťazec s nulovou dĺžkou, a to aj v prípade, že by vzorec inak vrátil číselnú hodnotu. Môže to viesť k situácii, keď rozsah buniek obsahuje kombináciu číselných hodnôt a hodnôt reťazca s nulovou dĺžkou a táto situácia môže ovplyvniť výsledky iných vzorcov, ktoré odkazujú na daný rozsah buniek. Ak napríklad bunky A1 a A3 obsahujú čísla a bunka A2 obsahuje vzorec s funkciou CUBEVALUE, ktorá vráti reťazec s nulovou dĺžkou, nasledujúci vzorec by vrátil #VALUE! chyba:
=A1+A2+A3
Ak tomu chcete predísť, môžete pomocou funkcie ISTEXT otestovať, či má reťazec nulovú dĺžku a použiť funkciu IF na nahradenie reťazca s nulovou dĺžkou nulou, ako je to znázornené v nasledujúcom príklade:
=IF(ISTEXT(A1);0;A1)+IF(ISTEXT(A2);0;A2)+IF(ISTEXT(A3);0;A3)
Ďalšia možnosť je, že použijete funkciu CUBEVALUE vo vnútri podmienky IF, ktorá vráti hodnotu 0, ak funkcia CUBEVALUE vráti reťazec s nulovou dĺžkou, ako je to znázornené v nasledujúcom príklade:
=IF (CUBEVALUE("Predaj";"[Meranie].[Zisk]";"[Obdobie].[2004]";"[Všetky produkty].[Nápoje]")=""; 0; CUBEVALUE("Predaj";"[Meranie].[Zisk]";"[Obdobie].[2004]";"[Všetky produkty].[Nápoje]"))
Všimnite si, že funkcia SUM nepotrebuje tento text, pretože pri výpočte svojej hodnoty automaticky ignoruje reťazce s nulovou dĺžkou.
Príklady
=CUBEVALUE("Predaj";"[Meranie].[Zisk]";"[Obdobie].[2004]";"[Všetky produkty].[Nápoje]")
=CUBEVALUE($A$1;"[Meranie].[Zisk]";D$12;$A23)
=CUBEVALUE("Predaj";$B$7;D$12;$A23)