Типы данных в моделях данных

Применяется к
Excel для Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

В модели данных каждый столбец имеет связанный тип данных, который определяет тип данных, которые может содержаться в столбце: целые числа, десятичные числа, текст, денежные данные, даты и время и т. д. Тип данных также определяет, какие операции можно выполнять со столбцом и сколько памяти требуется для хранения значений в столбце.

Если вы используете надстройку Power Pivot, вы можете изменить тип данных столбца. Возможно, вам придется сделать это, если столбец даты был импортирован как строка, но вам нужно, чтобы это было что-то другое. Дополнительные сведения см. в разделе "Установка типа данных столбца в Power Pivot".

В этой статье

Сводка типов данных

В следующей таблице перечислены типы данных, поддерживаемые в модели данных. При импорте данных или использовании значения в формуле, даже если исходный источник данных содержит другой тип данных, данные преобразуются в один из этих типов. Значения, полученные с помощью формул, также используют эти типы данных.

Тип данных в Excel Тип данных в DAX Описание
Целое число 64-битное (восьмибайтовое) целое значение 1, 2 Числа без дробной части. Целые числа могут быть положительными или отрицательными числами, но должны быть целыми числами от -9 223 372 036 854 775 808 (-2^63) до 9 223 372 036 854 775 807 (2^63-1).
Десятичное число 64-битное (восьмибайтовое) вещественное число 1, 2 Действительные числа могут состоять из десятичных знаков. Вещественные числа охватывают широкий диапазон значений:
Отрицательные значения от -1,79E +308 до -2,23E -308
Ноль
Положительные значения от 2,23E -308 до 1,79E + 308
Однако количество значащих цифр ограничено 15 десятичными цифрами.
ИСТИНА/ЛОЖЬ логический Значение True или False.
Text (Текст) String Строка данных, символ Юникода. Может быть строками, числами или датами, представленными в текстовом формате.
Максимальная длина строки — 268 435 456 символов Юникода (256 мегасимволов) или 536 870 912 байт.
Дата Функции даты и времени Значения даты и времени в допустимом представлении даты и времени.
Допустимыми считаются все даты после 1 января 1900 года.
Валюта Валюта Тип данных "Денежный" допускает значения от -922 337 203 685 477 до 922 337 203 685 477,5807 с четырьмя десятичными цифрами фиксированной точности.
Н/Д Пустой. Пустое поле — это тип данных в DAX, который представляет и заменяет значения SQL Null. Пустое поле можно создать с помощью функции ПУСТО, а также проверить наличие пустых значений с помощью логической функции ЕПУСТО.

1 Формулы DAX не поддерживают типы данных размером меньше перечисленных в таблице.

2 При попытке импортировать данные с очень большими числовыми значениями может произойти сбой со следующей ошибкой:

Ошибка базы данных в памяти: столбец "<имя> столбца" таблицы "<имя> таблицы" содержит значение "1,7976931348623157e+308", которое не поддерживается. Операция отменена.

Эта ошибка возникает, так как Power Pivot использует это значение для представления значений NULL. Значения в следующем списке являются синонимами значения Null:

Value (Значение)
9223372036854775807
-9223372036854775808
1,7976931348623158E+308
2.2250738585072014E-308

Удалите значение из данных и повторите импорт.

тип данных таблицы

DAX использует табличный тип данных во многих функциях, таких как агрегаты и вычисления логики времени. Для некоторых функций требуется ссылка на таблицу; Другие функции возвращают таблицу, которую затем можно использовать в качестве входных данных для других функций. В некоторых функциях, которым требуется таблица в качестве входных данных, можно указать выражение, результатом вычисления которого является таблица; Для некоторых функций требуется ссылка на базовую таблицу. Сведения о требованиях определенных функций см. в справочнике по функциям DAX.

Явное и неявное преобразование типов данных в формулах DAX

Каждая функция DAX предъявляет определенные требования к типам данных, используемых в качестве входных и выходных данных. Например, некоторые функции требуют целые числа для одних аргументов и даты для других; Для других функций требуется текст или таблицы.

Если данные в столбце, указанном в качестве аргумента, несовместимы с типом данных, требуемым функцией, DAX во многих случаях возвращает ошибку. Тем не менее, как это возможно, DAX будет пытаться неявно преобразовать данные в требуемый тип данных. Например:

  • Вы можете ввести дату в виде строки, а DAX проанализирует строку и попытается привести ее к одному из форматов даты и времени Windows.
  • Можно сложить ИСТИНА + 1 и получить результат 2, так как ИСТИНА неявно преобразуется в число 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 Функции даты и времени
Функции даты и времени Функции даты и времени Функции даты и времени Функции даты и времени Функции даты и времени

Например, если вещественное число используется в операции сложения в сочетании с данными валюты, оба значения преобразуются в РЕАЛ, и результат возвращается в формате РЕАЛ.

Вычитание (-)

В следующей таблице заголовком строки является минус (слева), а заголовком столбца — вычитание (справа).

Оператор (-) 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

Например, если при умножении объединить целое число с действительным числом, оба числа преобразуются в действительные и возвращаемое значение также будет ВЕЩЕСТВЕННЫМ.

Дивизион (/)

В следующей таблице заголовок строки является числителем, а заголовок столбца — знаменателем.

Оператор (/)
(строка или столбец)
INTEGER CURRENCY REAL Функции даты и времени
INTEGER REAL CURRENCY REAL REAL
CURRENCY CURRENCY REAL CURRENCY REAL
REAL REAL REAL REAL REAL
Функции даты и времени REAL REAL REAL REAL

Например, если при выполнении операции деления объединить целое число с денежным значением, оба значения преобразуются в действительные числа, и результат также будет действительным числом.

Операторы сравнения

В выражениях сравнения логические значения считаются большими, чем строковые, а строковые значения считаются большими, чем числовые значения или значения даты и времени; Числа и значения даты и времени считаются имеющими одинаковый ранг. Для логических или строковых значений неявные преобразования не выполняются; ПУСТО или пустое значение преобразуется в 0/""/ложь в зависимости от типа данных другого сравниваемого значения.

Ниже приведены примеры DAX.

=ЕСЛИ(ЛОЖЬ()>"истина";"выражение истинно", "выражение ложно"), возвращает "выражение истинно"

=ЕСЛИ("12">12;"Выражение истинно"; "Выражение ложно") возвращает "Выражение истинно".

=ЕСЛИ("12"=12;"Выражение истинно"; "Выражение ложно") возвращает "Выражение ложно"

Преобразования выполняются неявно для числового типа или типа даты и времени, как описано в следующей таблице.

Оператор сравнения INTEGER CURRENCY REAL Функции даты и времени
INTEGER INTEGER CURRENCY REAL REAL
CURRENCY CURRENCY CURRENCY REAL REAL
REAL REAL REAL REAL REAL
Функции даты и времени REAL REAL REAL Функции даты и времени

К началу страницы

Работа с пустыми, пустыми строками и нулевыми значениями

В DAX пустое значение, пустая ячейка или пропущенное значение представляются одним и тем же новым типом значения — BLANK. Можно также создать пустые ячейки с помощью функции ПУСТО или проверить наличие пустых значений с помощью функции ЕПУСТО.

Способ обработки пустых значений в операциях, таких как сложение или объединение, зависит от конкретной функции. В следующей таблице приведены различия между формулами DAX и Microsoft Excel в том, что касается обработки пустых значений.

Expression DAX Excel
ПУСТО + ПУСТО ПУСТО 0 (ноль)
ПУСТО +5 5 5
ПУСТОЕ * 5 ПУСТО 0 (ноль)
5/ПУСТОЙ Бесконечность Ошибка
0/ПУСТО НаН Ошибка
ПУСТОЙ/ПУСТОЙ ПУСТО Ошибка
ЛОЖЬ ИЛИ ПУСТО ЛОЖЬ ЛОЖЬ
ЛОЖЬ И ПУСТОТА ЛОЖЬ ЛОЖЬ
ИСТИНА ИЛИ ПУСТО ИСТИНА ИСТИНА
ИСТИНА И ПУСТО ЛОЖЬ ИСТИНА
ПУСТО ИЛИ ПУСТО ПУСТО Ошибка
ПУСТЫЕ И ПУСТЫЕ ПУСТО Ошибка

Подробные сведения о том, как конкретная функция или оператор обрабатывает пустые значения, см. в соответствующих разделах по каждой функции DAX в разделе "Справочник по функциям DAX".

К началу страницы