У надбудові Power Pivot кожен стовпець має певний тип даних і може містити тільки відповідні дані: цілі числа, десяткові числа, текст, грошові суми, дати й час тощо. Тип даних також визначає, які види операцій можна проводити зі стовпцем, а також який об’єм пам’яті займає зберігання значень у стовпці.
Якщо використовується надбудова Power Pivot, можна змінити тип даних стовпця. Це може знадобитися, якщо стовпець дат імпортовано як рядок, але він має бути чимось іншим. Докладні відомості див. в статті Установлення типу даних стовпця в Power Pivot.
У цій статті
Зведення типів даних
У таблиці нижче наведено список типів даних, які підтримуються в моделі даних. Під час імпорту даних чи використання значення у формулі, навіть якщо джерело початкових даних містить інший тип даних, дані буде перетворено в один із цих типів даних. Ці типи даних також використовуються у значеннях, які є результатом формул.
Тип даних у програмі Excel |
Тип даних у формулах DAX |
Опис |
---|---|---|
Ціле число |
64-розрядне (8-байтне) ціле значення 1, 2 |
Числа без десяткових знаків. Цілими можуть бути додатні чи від’ємні числа, але це має бути ціле число від –9 223 372 036 854 775 808 (–2^63) до 9 223 372 036 854 775 807 (2^63–1). |
Десяткове число |
64-розрядне (8-байтне) дійсне число 1, 2 |
Дійсні числа – це числа, які можуть мати десяткові знаки. Дійсні числа охоплюють широкий діапазон значень: від’ємні значення від –1,79E +308 до –2,23E –308; нуль; додатні значення від 2,23E –308 до 1,79E + 308. Проте кількість значимих цифр обмежено до 15 десяткових розрядів. |
TRUE/FALSE |
Логічне значення |
Значення True або False. |
Текст |
Рядок |
Рядок символьних даних у Юнікоді. Це можуть бути рядки, числа або дати, представлені в текстовому форматі. Максимальна довжина рядка 268 435 456 символів Юнікод (256 мега-символів) або 536 870 912 байт. |
Дата |
Дата або час |
Дати та час у прийнятному представленні дата-час. Допустимі дати – всі дати після 1 січня 1900 року. |
Грошова одиниця |
Грошова одиниця |
Тип даних "Грошова одиниця" допускає значення від –922 337 203 685 477,5808 до 922 337 203 685 477,5807 із чотирма десятковими розрядами заданої точності. |
Н/Д |
Пусте значення |
Пусті значення – це тип даних у формулах DAX, який представляє та замінює Null-значення SQL. Можна створити пусте значення за допомогою функції BLANK, а також перевірити на наявність пустих значень за допомогою логічної функції ISBLANK. |
1 Формули DAX не підтримують типи даних, менші за ті, що наведено в таблиці.
2 Якщо спробувати імпортувати дані з дуже великими числовими значеннями, імпорт може завершитися з наведеною нижче помилкою.
Помилка бази даних у пам’яті: стовпець "<ім’я стовпця>" таблиці "<ім’я таблиці>" містить значення "1,7976931348623157e+308", яке не підтримується. Операцію скасовано.
Ця помилка виникає, тому що це значення в надбудові Power Pivot представляє Null-значення. Значення в наведеному нижче списку – це синоніми Null-значення.
Значення |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2,2250738585072014e–308 |
Вилучіть значення з даних і повторіть спробу імпорту.
Тип даних "Таблиця"
DaX використовує тип даних таблиці в багатьох функціях, наприклад агрегаціях і обчисленнях часового аналізу. Для деяких функцій потрібне посилання на таблицю; інші функції повертають таблицю, яку потім можна використовувати як вхідні дані для інших функцій. У деяких функціях, для яких потрібна таблиця як ввід, можна вказати вираз, який обчислюється в таблиці; для деяких функцій обов'язкове посилання на базову таблицю. Відомості про вимоги певних функцій див. в статті Довідник із функцій DAX.
Неявне та явне перетворення типу даних у формулах DAX
У кожної функції DAX є певні вимоги до типів даних, які використовуються як вхідні та вихідні дані. Наприклад, для кількох функцій потрібні цілі числа для одних аргументів і дати для інших; для інших функцій потрібен текст або таблиці.
Якщо дані в указаному як аргумент стовпці несумісні з типом даних, потрібним для функції, у більшості випадків формули DAX завершаться з помилкою. Однак за змоги формули DAX спробують неявно перетворити дані в потрібний тип даних. Наприклад:
-
Можна ввести дату як рядок, а формули DAX проаналізують рядок і спробують привести його до одного з форматів дати й часу Windows.
-
Можна виконати додавання TRUE + 1 і отримати результат 2, оскільки значення TRUE неявно перетворюється в число 1, а потім виконується операція 1+1.
-
Якщо додати значення у два стовпця, а одне значення буде представлено як текст ("12"), а інше – як число (12), формули DAX неявно перетворять рядок у число, а потім виконають додавання для отримання числового результату. Наведений нижче вираз повертає значення 44: = "22" + 22.
-
Якщо спробувати об’єднати два числа, у програмі Excel їх буде представлено як рядки, а потім об’єднано. Наведений нижче вираз повертає значення "1234": = 12 & 34.
У таблиці нижче підсумовано неявні перетворення типів даних, які виконуються у формулах. Програма Excel за змоги виконує неявні перетворення відповідно до вимог конкретної операції.
Таблиця неявних перетворень даних
Тип перетворення, що виконується, визначає оператор, який перетворює потрібні значення перед необхідною операцією. У цих таблицях наведено список операторів і вказано перетворення, яке виконується з кожним типом даних у стовпці, коли він у парі з типом даних у перехресному рядку.
Примітка.: У ці таблиці не включено текстові типи даних. Якщо число представлено в текстовому форматі, у певних випадках надбудова Power Pivot спробує визначити числовий тип і представити його як число.
Додавання (+)
Оператор (+) |
INTEGER |
CURRENCY |
REAL |
Дата або час |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
Дата або час |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
Дата або час |
REAL |
REAL |
REAL |
REAL |
Дата або час |
Дата або час |
Дата або час |
Дата або час |
Дата або час |
Дата або час |
Наприклад, якщо в операції додавання використовується дійсне число разом із даними грошової одиниці, обидва значення буде перетворено в тип REAL, а результат буде повернено як тип REAL.
Віднімання (–)
У таблиці нижче заголовок рядка – це зменшуване (ліворуч), а заголовок стовпця – це від’ємник (праворуч).
Оператор (–) |
INTEGER |
CURRENCY |
REAL |
Дата або час |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Дата або час |
Дата або час |
Дата або час |
Дата або час |
Дата або час |
Наприклад, якщо в операції віднімання використовується дата з будь-яким іншим типом даних, обидва значення буде перетворено в дати, а повернуте значення також буде датою.
Примітка.: Моделі даних також підтримують унарний оператор, – (від’ємний), але цей оператор не змінює тип даних операнда.
Множення (*)
Оператор (*) |
INTEGER |
CURRENCY |
REAL |
Дата або час |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
INTEGER |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
CURRENCY |
REAL |
REAL |
CURRENCY |
REAL |
REAL |
Наприклад, якщо в операції множення ціле число поєднано з дійсним, обидва числа буде перетворено в дійсні числа, а повернуте значення також матиме тип REAL.
Ділення (/)
У таблиці нижче заголовок рядка – це чисельник, а заголовок стовпця – знаменник.
Оператор (/) (Рядок або стовпець) |
INTEGER |
CURRENCY |
REAL |
Дата або час |
---|---|---|---|---|
INTEGER |
REAL |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Дата або час |
REAL |
REAL |
REAL |
REAL |
Наприклад, якщо в операції ділення ціле число поєднано зі значенням грошової одиниці, обидва значення буде перетворено в дійсні числа, а результат також буде дійсним числом.
Оператори порівняння
У виразах порівняння логічні значення вважаються більшими, ніж значення рядка, а значення рядка вважаються більшими, ніж числові значення або значення дати або часу; вважається, що числа та значення дати чи часу мають однаковий ранг. З логічними значеннями чи значеннями рядка не виконується жодних неявних перетворень; значення BLANK або пусті значення перетворюються на 0/""/false залежно від типу даних іншого значення, що порівнюється.
Наведені нижче вирази DAX ілюструють таку поведінку.
=IF(FALSE()>"істина";"Вираз дійсний";"Вираз хибний") повертає значення "Вираз дійсний";
=IF("12">12;"Вираз дійсний";"Вираз хибний") повертає значення "Вираз дійсний";
=IF("12"=12;"Вираз дійсний";"Вираз хибний") повертає значення "Вираз хибний".
Перетворення виконуються неявно для числових типів або типів дати чи часу, як описано в таблиці нижче.
Оператор порівняння |
INTEGER |
CURRENCY |
REAL |
Дата або час |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Дата або час |
REAL |
REAL |
REAL |
Дата або час |
Обробка пустих рядків, пустих і нульових значень
У формулах DAX Null-значення, пусте значення, пуста клітинка чи відсутнє значення представлено одним новим типом значення – BLANK. Можна також створити пусті значення за допомогою функції BLANK або перевірити на наявність пустих значень за допомогою функції ISBLANK.
Те, як пусті значення оброблюються в операціях, таких як додавання чи об’єднання, залежить від окремої функції. У таблиці нижче підсумовано відмінності між формулами DAX і Microsoft Excel у тому, як оброблюються пусті дані.
Вираз |
DAX |
Excel |
---|---|---|
BLANK + BLANK |
BLANK |
0 (нуль) |
BLANK +5 |
5 |
5 |
BLANK * 5 |
BLANK |
0 (нуль) |
5/BLANK |
Нескінченність |
Помилка |
0/BLANK |
NaN |
Помилка |
BLANK/BLANK |
BLANK |
Помилка |
FALSE АБО BLANK |
FALSE |
FALSE |
FALSE І BLANK |
FALSE |
FALSE |
TRUE АБО BLANK |
TRUE |
TRUE |
TRUE ТА BLANK |
FALSE |
TRUE |
BLANK АБО BLANK |
BLANK |
Помилка |
BLANK І BLANK |
BLANK |
Помилка |
Докладні відомості про те, як певна функція або оператор обробляє пусті клітинки, див. в окремих розділах для кожної функції DAX у розділі Довідник із функцій DAX.