В тази статия е описан синтаксисът и употребата на функцията CUBEVALUE в Microsoft Excel.
Описание
Връща агрегирана стойност от куба.
Синтаксис
CUBEVALUE(връзка; [член_израз1]; [член_израз2];...)
Синтаксисът на функцията CUBEVALUE има следните аргументи:
-
"връзка" Задължително. Текстов низ за името на връзката към куба.
-
"член_израз" Незадължително. Текстов низ на многомерен израз (MDX), който изчислява член или кортеж в куба. Като алтернатива, "член_израз" може да бъде множество, определено с функцията CUBESET. Използвайте "член_израз" като сегментатор, за да определите парчето от куба, за което се връща агрегираната стойност. Ако не е зададен размер за "член_израз", използва се размерът по подразбиране за този куб.
Забележки
-
Когато функцията CUBEVALUE се изчислява, в клетката временно се показва съобщението "#GETTING_DATA…", преди да бъдат извлечени всички данни.
-
Ако за "член_израз" се използва препратка към клетка и тази препратка към клетка съдържа CUBE функция, тогава "член_израз" използва MDX израза за елемента в посочената клетка, а не стойността, показана в тази посочена клетка.
-
Ако името на връзката не е валидна връзка на работна книга, съхранена в работната книга, CUBEVALUE връща #NAME? стойността на грешка. Ако сървърът за онлайн аналитична обработка (OLAP) не се изпълнява или връща съобщение за грешка, CUBEVALUE връща #NAME? стойността на грешка.
-
Ако поне един елемент в кортежа е невалиден, CUBEVALUE връща #VALUE! стойността на грешка.
-
CUBEVALUE връща стойност на грешка #N/A, когато:
-
Синтаксисът на "член_израз" е неправилен.
-
Членът, зададен от "член_израз", не съществува в куба.
-
Кортежът е невалиден, понеже няма пресичане на зададените стойности. (Това може да се случи с множество елементи от една и съща йерархия.)
-
Множеството съдържа поне един член с размерност, която е различна от тази на другите членове.
-
CUBEVALUE може да върне стойност на грешка #N/A, ако указвате обект, съществуващ в рамките на сесия, като например изчисляем член или наименувано множество в обобщена таблица, когато се споделя връзка и обобщената таблица е изтрита или сте преобразували обобщената таблица във формули. (В раздела Опции, в групата Инструменти щракнете върху Инструменти за OLAP, а след това щракнете върху Преобразуване във формули.)
-
Проблем: Стойностите null се преобразуват в низове с нулева дължина
В Excel ако в дадена клетка няма данни, защото никога не сте я променяли или сте изтрили съдържанието, клетката съдържа празна стойност. В много системи за бази данни празната стойност се нарича стойност Null. Празната или Null стойност означава буквално "Няма стойност". Обаче формула не може да върне никога празен низ или стойност Null. Формулата винаги връща една от трите стойности: числова стойност; текстова стойност, която може да е низ с нулева дължина или стойност за грешка, като например #NUM! или #VALUE.
Ако една формула съдържа функция CUBEVALUE, свързана с база данни за онлайн аналитична обработка (OLAP), и заявка към тази база данни дава стойност Null, Excel преобразува тази стойност Null в низ с нулева дължина дори ако формулата в противен случай би върнала числова стойност. Това може да доведе до ситуация, в която диапазон от клетки съдържа комбинация от числови и низови стойности с нулева дължина и тази ситуация може да повлияе на резултатите от други формули, които препращат към този диапазон от клетки. Ако например A1 и A3 съдържат числа, а A2 съдържа формула с функция CUBEVALUE, която връща низ с нулева дължина, следващата формула ще върне #VALUE! грешка:
=A1+A2+A3
За да предотвратите това, можете да тествате за низове с нулева дължина, като използвате функцията ISTEXT и замествайки низа с нулева дължина с 0 (нула) с помощта на функцията IF, както е показано в следващия пример:
=IF(ISTEXT(A1);0;A1)+IF(ISTEXT(A2);0;A2)+IF(ISTEXT(A3);0;A3)
Като алтернатива, можете да вложите функцията CUBEVALUE в условие с IF, което връща стойност 0, ако функцията CUBEVALUE изчисли низ с нулева дължина, както е показано в следващия пример:
=IF (CUBEVALUE("Продажби";"[Мерки].[Печалба]";"[Час].[2004]","[Всички продукти].[Напитки]")=""; 0; CUBEVALUE("Продажби";"[Мерки].[Печалба]";"[Час].[2004]";"[Всички продукти].[Напитки]"))
Забележете, че функцията SUM не изисква този тест за низове с нулева дължина, тъй като автоматично игнорира низовете с нулева дължина при изчисляването на връщаната от нея стойност.
Примери
=CUBEVALUE("Продажби";"[Мерки].[Печалба]";"[Час].[2004]";"[Всички продукти].[Напитки]")
=CUBEVALUE($A$1,"[Мерки].[Печалба]";D$12;$A23)
=CUBEVALUE("Продажби";$B$7;D$12;$A23)