У цій статті наведено синтаксис формули та описано, як у програмі Microsoft Excel використовувати функцію CUBEVALUE.
Опис
Ця функція повертає групове значення з куба.
Синтаксис
CUBEVALUE(підключення;[вираз_члена1];[вираз_члена2];…)
Синтаксис функції CUBEVALUE має такі аргументи:
-
Підключення (Connection) – обов'язковий параметр. Текстовий рядок імені підключення до куба.
-
вираз_члена – необов’язковий аргумент. Це текстовий рядок багатовимірного виразу (MDX), який обчислює елемент або кортеж усередині куба. Аргумент "вираз_члена" може також бути набором, визначеним функцією CUBESET. Використовуйте аргумент "вираз_члена" як роздільник для визначення частини куба, для якої повертається групове значення. Якщо для аргументу "вираз_члена" не визначено вимір, використовується стандартний для цього куба вимір.
Примітки
-
Коли функція CUBEVALUE обчислюється, у клітинці тимчасово відображається повідомлення "#GETTING_DATA…" (Отримання даних…), доки дані не буде отримано.
-
Якщо для аргументу "вираз_члена" використовується посилання на клітинку, яке містить функцію кубів, то аргумент "вираз_члена" використовує вираз 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, і використати функцію IF для заміни нульової довжини на 0 (нуль), як у наведеному прикладі:
=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)