CUBEVALUE

Tento článek popisuje syntaxi vzorce a použití funkce CUBEVALUE v Microsoft Excelu.

Popis

Vrátí úhrnnou hodnotu z krychle.

Syntaxe

CUBEVALUE(připojení;[výraz_člena1]; [výraz_člena2]; …)

Syntaxe funkce CUBEVALUE má následující argumenty:

  • Připojení:    Povinný argument. Textový řetězec názvu připojení k datové krychli.

  • Výraz_člena:    Nepovinný argument. Textový řetězec výrazu MDX (Multidimensional Expression), jehož výsledkem je prvek nebo řazená kolekce členů v datové krychli. Jako hodnotu argumentu výraz_člena lze použít i sadu definovanou pomocí funkce CUBESET. Argument výraz_člena použijte jako průřez k definování části datové krychle, jejíž úhrnná hodnota bude vrácena. Jestliže v argumentu výraz_člena není uvedena žádná míra, použije se výchozí míra příslušné krychle.

Poznámky

  • Při vyhodnocování funkce CUBEVALUE se v buňce před načtením všech dat přechodně zobrazí zpráva #NAČÍTÁNÍ_DAT…

  • Jestliže je v argumentu výraz_člena použit odkaz na buňku a tento odkaz obsahuje funkci CUBE, nepoužije argument výraz_člena hodnotu zobrazenou v buňce, do níž vede odkaz, ale výraz MDX platný pro položku v této buňce.

  • Pokud název připojení není platné připojení sešitu uložené v sešitu, vrátí funkce CUBEVALUE #NAME? chybovou hodnotu #HODNOTA!. Pokud server OLAP (Online Analytical Processing) není spuštěný, není k dispozici nebo vrátí chybovou zprávu, vrátí funkce CUBEVALUE #NAME? chybovou hodnotu #HODNOTA!.

  • Pokud je alespoň jeden prvek v řazené kolekci členů neplatný, vrátí funkce CUBEVALUE #VALUE! chybovou hodnotu #HODNOTA!.

  • V následujících případech vrátí funkce CUBEVALUE chybovou hodnotu #NENÍ_K_DISPOZICI:

    • Syntaxe argumentu výraz_člena není správná.

    • V krychli neexistuje člen určený pomocí argumentu výraz_člena.

    • N-tice je neplatná, protože neexistuje průsečík zadaných hodnot. (Tato situace může nastat u více prvků ve stejné hierarchii.)

    • Sada obsahuje minimálně jeden člen s jiným rozměrem než ostatní členy.

    • Funkce CUBEVALUE může vrátit chybovou hodnotu #NENÍ_K_DISPOZICI, pokud v kontingenční tabulce při sdílení spojení odkazujete na objekt z relace, například na počítaný člen pojmenované sady, a příslušnou kontingenční tabulku odstraňujete nebo převádíte kontingenční tabulku na vzorce. (Na kartě Možnosti ve skupině Nástroje klikněte na položku Nástroje OLAP a poté klikněte na položku Převést na vzorce.)

Problém: Hodnoty Null jsou převáděny na řetězce nulové délky

Pokud nejsou v Excelu v buňce žádná data, protože jste ji nikdy nezměnili nebo smazali její obsah, obsahuje buňka prázdnou hodnotu. V řadě databázových systémů se prázdná hodnota nazývá hodnota Null. Je-li hodnota prázdná neboli Null, znamená to doslovně „Žádná hodnota“. Vzorec však nikdy nevrací prázdný řetězec nebo hodnotu Null. Vzorec vždy vrací jednu ze tří hodnot: číselnou hodnotu, textovou hodnotu (jíž může být řetězec nulové délky) nebo chybovou hodnotu, například #ČÍSLO! nebo #HODNOTA.

Pokud vzorec obsahuje funkci CUBEVALUE připojenou k databázi OLAP (Online Analytical Processing) a výsledkem dotazu na tuto databázi je hodnota Null, převede aplikace Excel tuto hodnotu Null na řetězec nulové délky, i když by vzorec jinak vrátil číselnou hodnotu. To může vést k situaci, kdy oblast buněk obsahuje kombinaci číselných a řetězcových hodnot nulové délky a tato situace může ovlivnit výsledky jiných vzorců, které na danou oblast buněk odkazují. Pokud například A1 a A3 obsahují čísla a A2 obsahuje vzorec s funkcí CUBEVALUE, který vrací řetězec nulové délky, následující vzorec vrátí #VALUE! vzorec:

=A1+A2+A3

Chcete-li se tomu vyhnout, můžete testovat výskyt řetězce nulové délky pomocí funkce JE.TEXT a pomocí funkce KDYŽ nahradit nulovou délku číslem 0 (nula), jak ukazuje následující příklad:

=KDYŽ(JE.TEXT(A1);0;A1)+KDYŽ(JE.TEXT(A2);0;A2)+KDYŽ(JE.TEXT(A3);0;A3)

Můžete také vnořit funkci CUBEVALUE do podmínky KDYŽ, která vrátí hodnotu 0, kdykoli funkce CUBEVALUE vrátí řetězec nulové délky, viz následující příklad:

=KDYŽ(CUBEVALUE("Prodeje";"[Objemy].[Zisk]";"[Čas].[2004]";"[Všechny výrobky].[Nápoje]")=""; 0; CUBEVALUE("Prodeje";"[Objemy].[Zisk]";"[Čas].[2004]";"[Všechny výrobky].[Nápoje]"))

U funkce SUMA není třeba provádět test na řetězec nulové délky, protože při výpočtu návratové hodnoty automaticky ignoruje řetězce nulové délky.

Příklady

=CUBEVALUE("Prodeje";"[Objemy].[Zisk]";"[Čas].[2004]";"[Všechny výrobky].[Nápoje]")

=CUBEVALUE($A$1;"[Objemy].[Zisk]";D$12;$A23)

=CUBEVALUE("Prodeje";$B$7;D$12;$A23)

Byly tyto informace užitečné?

Pokud si chcete chránit soukromí, nedávejte do zpětné vazby kontaktní informace. Ohodnoťte aplikaci Zásady ochrany osobních údajů.