Поделиться через


Типы данных в Power BI Desktop

В этой статье описываются типы данных, которые поддерживаются Power BI Desktop и выражениями анализа данных (DAX).

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

Эта концепция важна, так как некоторые функции DAX имеют особые требования к типу данных. Во многих случаях DAX неявно преобразует типы данных, но в некоторых случаях это не так. Например, если для функции DAX требуется тип данных Date , но тип данных для столбца — Text, функция DAX не будет работать правильно. Поэтому важно и полезно использовать правильные типы данных для столбцов.

Определение и указание типа данных столбца

В Power BI Desktop можно определить и указать тип данных столбца в редакторе Power Query, в представлении таблицы или в представлении отчета:

  • В редакторе Power Query выберите столбец и выберите тип данных в группе преобразования ленты.

    Снимок экрана редактора Power Query с раскрывающимся списком типа данных.

  • В представлении таблицы или отчета выберите столбец, затем выберите раскрывающуюся стрелку рядом с типом данных на вкладке Инструменты столбцов ленты.

    Снимок экрана: представление таблицы с раскрывающимся списком

Раскрывающийся список "Тип данных" в редакторе Power Query содержит два типа данных, не присутствующих в представлении таблицы или в представлении отчета: дата/время/часовой пояс и длительность. При загрузке столбца с этими типами данных в модель Power BI столбец даты и времени или часового пояса преобразуется в тип данных date/time , а столбец "Длительность " преобразуется в тип данных десятичного числа .

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

Типы чисел

Power BI Desktop поддерживает три типа чисел: десятичное число, фиксированное десятичное число и целое число.

Свойство столбца в табличной объектной модели (TOM) DataType можно использовать для указания перечислений DataType для числовых типов. Дополнительные сведения о программном изменении объектов в Power BI см. в статье Program Power BI семантические модели с помощью табличной объектной модели.

Десятичное число

Десятичное число является наиболее распространенным типом чисел и может обрабатывать числа с дробными значениями и целыми числами. Десятичное число представляет 64-разрядные (восьмибайтовые) числа с плавающей запятой с отрицательными значениями от -1,79E +308 до -2,23E -308, положительные значения от 2.23E -308 до 1,79E +308 и 0. Числа, такие как 34, 34.01 и 34.000367063, являются допустимыми десятичными числами.

Максимальная точность, которую может представлять тип десятичного числа , составляет 15 цифр. Десятичный разделитель может находиться в любом месте числа. Этот тип соответствует тому, как Excel сохраняет свои числа, и TOM указывает этот тип как DataType.Double перечисление.

Фиксированное десятичное число

Тип данных фиксированного десятичного числа имеет фиксированное расположение для десятичного разделителя. Десятичный разделитель всегда имеет четыре цифры справа и позволяет 19 цифр значения. Наибольшее значение фиксированного десятичного числа может представлять положительный или отрицательный 922 337 203 685 477,5807.

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

Этот тип данных соответствует десятичному типу SQL Server Decimal (19,4) или типу данных Валюта в службах Analysis Services и Power Pivot в Excel. TOM определяет этот тип как DataType.Decimal перечисление.

Целое число

Целое число представляет 64-разрядное (восьмибайтовое) целое число. Так как это целое число, целое число не имеет цифр справа от десятичного знака. Этот тип позволяет 19 цифр положительных или отрицательных целых чисел от -9 223 372 036 854 775 807 (-2^63+1) и 9223 372 036 854 775 806 (2^63-2), поэтому могут представлять наибольшее возможное число числовых типов данных.

Как и в случае с фиксированным десятичным типом, целочисленный тип может оказаться полезным при необходимости управления округлением. TOM представляет тип данных целого числа в виде DataType.Int64 перечисления.

Замечание

Модель данных Power BI Desktop поддерживает 64-разрядные целые значения, но из-за ограничений JavaScript наибольшее число визуальных элементов Power BI может безопасно выразиться в 9 007 199 254 740 991 (2^53-1). Если в модели данных больше чисел, их размер можно уменьшить с помощью вычислений, прежде чем добавлять их в визуальные элементы.

Точность вычислений типа чисел

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

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

Вычисления сравнения, связанные с равенством между значениями типа данных Decimal number, возможно, могут возвращать непредвиденные результаты. Операции сравнения включают в себя равно =, больше >, меньше <, больше или равно >=, и меньше или равно <=.

Эта проблема наиболее очевидна при использовании функции RANKX в выражении DAX , которая вычисляет результат дважды, что приводит к немного разным числам. Пользователи отчета могут не заметить разницу между двумя числами, но результат ранжирования может быть заметно неточным. Чтобы избежать непредвиденных результатов, можно изменить тип данных столбца с десятичного числа на фиксированное десятичное илицелое число или выполнить принудительное округление с помощью ROUND. Тип данных фиксированного десятичного числа имеет большую точность, так как десятичный разделитель всегда имеет четыре цифры справа.

Редко сложение значений столбца типа данных 'десятичное число' может возвращать непредвиденные результаты. Этот результат, скорее всего, соответствует столбцам с большим количеством положительных чисел и отрицательных чисел. Результат суммы влияет на распределение значений по строкам в столбце.

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

Типы даты и времени

Power BI Desktop поддерживает пять типов данных даты и времени в редакторе Power Query. Во время загрузки в модель данных преобразуются как Дата/Время/Часовой пояс, так и Длительность, как показано ниже.

Дата и время представляет как значение даты, так и времени. Базовое значение даты и времени хранится как десятичное число, поэтому можно фактически преобразовать между этими двумя. Часть времени хранится в виде дроби от целого числа, кратного 1/300 секунды (3,33 мс). Тип данных поддерживает даты от 1900 до 9999.

Дата представляет только дату без части времени. Дата преобразуется в модель в виде значения даты и времени с нуля для дробного значения.

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

Дата/ часовой пояс представляет дату и время в формате UTC со смещением часового пояса и преобразуется в дату и время при загрузке в модель. Модель Power BI не меняет часовой пояс на основе расположения пользователя или языкового стандарта. Значение 09:00, загруженное в модель в США, отображается как 09:00, где бы отчет ни открывался или просматривался.

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

Замечание

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

Тип текста

Тип текстовых данных — это строка данных в кодировке Юникод, которая может быть буквами, цифрами или датами, представленными в текстовом формате. Максимальное максимальное ограничение для длины строки составляет примерно 32 000 символов Юникода, основанных на базовом обработчике Power BI Power Query, и его ограничения на длину типов текстовых данных. Текстовые типы данных, превышающие практический максимальный предел, могут привести к ошибкам.

Способ хранения текстовых данных Power BI может привести к отображению данных по-разному в определенных ситуациях. В следующих разделах описываются распространенные ситуации, которые могут привести к тому, что текстовые данные могут немного изменить внешний вид между запросами данных в редакторе Power Query и загрузкой их в Power BI.

Конфиденциальность регистра

Подсистема, которая хранит и запрашивает данные в Power BI, является нечувствительной к регистру и обрабатывает разное написание букв как одно и то же значение. "A" равно "a". Однако Power Query учитывает регистр, где "A" не совпадает с "a". Разница в чувствительности к регистру может привести к ситуациям, когда текстовые данные изменяют капитализацию, казалось бы, необъяснимо после загрузки в Power BI.

В следующем примере показаны данные заказа: столбец OrderNo , уникальный для каждого заказа, и столбец Адреса , в который отображается имя адреса, введенное вручную во время заказа. Редактор Power Query отображает несколько заказов с одинаковыми именами адресатов, введенными в систему с разными прописными буквами.

Снимок экрана: текстовые данные с различными буквами в Power Query

После загрузки данных Power BI капитализация повторяющихся имен на вкладке Данные изменяется с исходной записи на один из вариантов капитализации.

Снимок экрана: текстовые данные с измененной заглавной буквой после загрузки в Power BI.

Это изменение происходит, поскольку редактор Power Query чувствителен к регистру, и поэтому он отображает данные точно так, как они хранятся в исходной системе. Механизм, в котором хранятся данные в Power BI, нечувствителен к регистру, поэтому он рассматривает строчные и прописные буквы как одинаковые. Данные Power Query, загруженные в подсистему Power BI, могут изменяться соответствующим образом.

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

Система рассматривает имя "Taina Hasu" как идентичное "TAINA HASU" и "Taina HASU", поэтому она не сохраняет эти вариации, а ссылается на первый вариант, который был сохранен. Имя "MURALI DAS" отображается прописными буквами, потому что оно было впервые проанализировано механизмом при загрузке данных сверху вниз.

На этом изображении показан процесс оценки:

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

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

Для четвертой строки подсистема сравнивает значение с именами в словаре и находит имя. Так как двигатель не учитывает регистр, "TAINA HASU" и "Taina Hasu" одинаковы. Модуль не добавляет новое имя в словарь, но ссылается на существующее имя. Тот же процесс происходит для оставшихся строк.

Это важно

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

Чтобы избежать этой ситуации, если вы используете режим работы DirectQuery с чувствительным к регистру источником данных, нормализуйте регистр в запросе к источнику данных или в Power Query Editor.

Начальные и конечные пробелы

Подсистема Power BI автоматически обрезает все конечные пробелы, которые следуют текстовым данным, но не удаляют начальные пробелы, предшествующие данным. Чтобы избежать путаницы, при работе с данными, содержащими начальные или конечные пробелы, следует использовать функцию Text.Trim для удаления пробелов в начале или конце текста. Если вы не удаляете ведущие пробелы, отношение может не установиться из-за повторяющихся значений, или результаты визуализации могут быть непредвиденными.

В следующем примере показаны данные о клиентах: столбец "Имя ", содержащий имя клиента и столбец индекса , уникальный для каждой записи. Имена отображаются в кавычках для ясности. Имя клиента повторяется четыре раза, но каждый раз с различными сочетаниями начальных и конечных пробелов. Эти вариации могут возникать из-за ввода данных вручную с течением времени.

Строка Основное пространство Конечный пробел Имя Индекс Text length
1 нет нет "Дилан Уильямс" 1 14
2 нет Да "Дилан Уильямс" 10 15
3 Да нет "Дилан Уильямс" 20 15
4 Да Да " Дилан Уильямс " 40 16

В редакторе Power Query полученные данные отображаются следующим образом.

Снимок экрана: текстовые данные с различными начальными и конечными пробелами в редакторе Power Query.

При переходе на вкладку "Таблица " в Power BI после загрузки данных та же таблица выглядит как на следующем рисунке с таким же количеством строк, что и раньше.

Снимок экрана: те же текстовые данные после загрузки в Power BI возвращают то же количество строк, что и раньше.

Однако визуализация, основанная на этих данных, возвращает только две строки.

Скриншот таблицы на основе тех же данных, которая возвращает только две строки.

На предыдущем изображении первая строка имеет общее значение 60 для поля Index , поэтому первая строка в визуальном элементе представляет последние две строки загруженных данных. Вторая строка с общим значением индекса11 представляет первые две строки. Разница в количестве строк между визуализацией и таблицей данных вызвана автоматическим удалением или обрезкой завершающих пробелов, но не начальных. Таким образом, движок оценивает первые и вторые строки, а также третьи и четвертые строки как идентичные, и визуализация возвращает эти результаты.

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

Снимок экрана: сообщение об ошибке о повторяющихся значениях.

В других ситуациях может не получиться создать отношение "многие ко одному" или "один к одному" из-за обнаруженных повторяющихся значений.

Снимок экрана: диалоговое окно с ошибкой связи

Эти ошибки можно отслеживать до начальных или конечных пробелов, а затем разрешить их с помощью Text.Trim или Format>Trim в разделе Преобразование, чтобы удалить пробелы в редакторе Power Query.

Тип истина/ложь

Тип данных True/false — это логическое значение true или False. Для лучших и наиболее согласованных результатов при загрузке столбца, содержащего логическое значение true/false, в Power BI задайте для типа столбца значение True/False.

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

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

Однако при публикации отчета в службе Power BI столбец состояния регистрации бюллетеня отображает значение 0 и -1 вместо ожидаемых значений TRUE или FALSE. Ниже описано, как происходит это преобразование и как его предотвратить.

Упрощенный запрос для этой таблицы отображается на следующем рисунке:

Снимок экрана: столбцы, установленные как логические.

Тип данных столбца "Подписка на информационный бюллетень " имеет значение Any, и в результате Power BI загружает данные в модель в виде текста.

Снимок экрана: данные, загруженные в Power BI.

При добавлении простой визуализации, отображающей подробные сведения для каждого клиента, данные отображаются в визуальном элементе должным образом, как в Power BI Desktop, так и при публикации в службе Power BI.

Скриншот визуального элемента, на котором данные отображаются, как и ожидалось.

Однако при обновлении семантической модели в службе Power BI столбец "Подписка на информационный бюллетень " в визуальных элементах отображает значения как -1 и 0, а не отображает их как TRUE или FALSE:

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

При повторной публикации отчета из Power BI Desktop столбец "Подписка на информационный бюллетень " снова отображает значение TRUE или FALSE , но после обновления в службе Power BI значения снова изменяются, чтобы отобразить значение -1 и 0.

Решение для предотвращения этой ситуации заключается в том, чтобы установить тип логических столбцов True/False в Power BI Desktop и повторно опубликовать ваш отчет.

Снимок экрана: изменение типа данных столбца на True/False.

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

Снимок экрана: значения, отображаемые по-разному при изменении типа данных.

После изменения типа данных повторной публикации в службе Power BI и обновления отчет отображает значения true или False, как ожидалось.

Снимок экрана: значения true или false, использующие тип данных True/False, отображаются как ожидалось после обновления.

Чтобы свести итог, при работе с логическими данными в Power BI убедитесь, что для столбцов задан тип данных True/False в Power BI Desktop.

Пустой тип

Пустой — это тип данных DAX, представляющий и заменяющий значения NULL SQL. Можно создать пустое с помощью функции BLANK и проверить наличие пустых с помощью логической функции ISBLANK .

Тип бинарный

Вы можете использовать тип двоичных данных для представления любых данных с двоичным форматом. В редакторе Power Query этот тип данных можно использовать при загрузке двоичных файлов при преобразовании его в другие типы данных перед загрузкой в модель Power BI.

Двоичные столбцы не поддерживаются в модели данных Power BI. Двоичный выбор существует в меню представления таблиц и представлений отчетов по историческим причинам, но при попытке загрузить двоичные столбцы в модель Power BI вы можете столкнуться с ошибками.

Замечание

Если двоичный столбец находится в выходных данных шагов запроса, попытка обновить данные через шлюз может вызвать ошибки. Рекомендуется явно удалить все двоичные столбцы в качестве последнего шага в запросах.

Тип таблицы

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

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

Неявное и явное преобразование типов данных

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

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

Рассмотрим пример.

  • Если ввести дату в виде строки, DAX анализирует строку и пытается привести ее в качестве одного из форматов даты и времени Windows.
  • Можно добавить TRUE + 1 и получить результат 2, так как DAX неявно преобразует TRUE в число 1 и выполняет операцию 1+1.
  • Если вы добавляете значения в два столбца с одним значением, представленным в виде текста ("12") и другого в виде числа (12), DAX неявно преобразует строку в число, а затем добавляет числовой результат. Выражение = "22" + 22 возвращает 44.
  • Если попытаться конкатенировать два числа, DAX превращает их в строки, затем объединяет. Выражение = 12 и 34 возвращает значение "1234".

Таблицы неявных преобразований данных

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

Замечание

Эти таблицы не включают тип текстовых данных. Если число представлено в текстовом формате, в некоторых случаях Power BI пытается определить тип числа и представить данные в виде числа.

Добавление (+)

ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ Дата/время
ЦЕЛОЕ ЧИСЛО ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ Дата/время
ВАЛЮТА ВАЛЮТА ВАЛЮТА РЕАЛЬНЫЙ Дата/время
РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ Дата/время
Дата и время Дата/время Дата/время Дата/время Дата/время

Например, если операция добавления использует реальное число в сочетании с данными валюты, DAX преобразует оба значения в REAL и возвращает результат в виде REAL.

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

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

ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ Дата/время
ЦЕЛОЕ ЧИСЛО ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ РЕАЛЬНЫЙ
ВАЛЮТА ВАЛЮТА ВАЛЮТА РЕАЛЬНЫЙ РЕАЛЬНЫЙ
РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ
Дата и время Дата/время Дата/время Дата/время Дата/время

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

Замечание

Модели данных поддерживают унарный оператор - (отрицательный), но этот оператор не изменяет тип данных операнда.

Умножение (*)

ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ Дата/время
ЦЕЛОЕ ЧИСЛО ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ ЦЕЛОЕ ЧИСЛО
ВАЛЮТА ВАЛЮТА РЕАЛЬНЫЙ ВАЛЮТА ВАЛЮТА
НАСТОЯЩИЙ РЕАЛЬНЫЙ ВАЛЮТА РЕАЛЬНЫЙ РЕАЛЬНЫЙ

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

Деление (/)

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

ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ Дата/время
ЦЕЛОЕ ЧИСЛО РЕАЛЬНЫЙ ВАЛЮТА РЕАЛЬНЫЙ РЕАЛЬНЫЙ
ВАЛЮТА ВАЛЮТА РЕАЛЬНЫЙ ВАЛЮТА РЕАЛЬНЫЙ
РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ
Дата и время РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ

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

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

В выражениях сравнения DAX считает логические значения больше строковых значений, а строковые значения больше числовых или значений даты и времени. Числа и значения даты и времени имеют одинаковый ранг.

DAX не выполняет неявные преобразования для логических или строковых значений. ПУСТОе или пустое значение преобразуется в 0, "" или "False" в зависимости от типа данных другого сравниваемого значения.

Следующие выражения DAX иллюстрируют это поведение:

  • =IF(FALSE()>"true","Expression is true", "Expression is false") возвращает "Выражение истинно".

  • =IF("12">12,"Expression is true", "Expression is false") возвращает "Выражение истинно".

  • =IF("12"=12,"Expression is true", "Expression is false") возвращает "Выражение ложное".

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

Сравнение
Оператор
ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ Дата/время
ЦЕЛОЕ ЧИСЛО ЦЕЛОЕ ЧИСЛО ВАЛЮТА РЕАЛЬНЫЙ РЕАЛЬНЫЙ
ВАЛЮТА ВАЛЮТА ВАЛЮТА РЕАЛЬНЫЙ РЕАЛЬНЫЙ
РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ
Дата и время РЕАЛЬНЫЙ РЕАЛЬНЫЙ РЕАЛЬНЫЙ Дата и время

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

DAX представляет NULL, пустое значение, пустую ячейку или отсутствующее значение одним и тем же новым типом данных — пустым значением. Кроме того, можно создать пустые значения с помощью функции BLANK или проверить наличие пустых с помощью функции ISBLANK.

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

Выражение ДАКС Эксель
BLANK + BLANK ПУСТОЙ 0 (ноль)
ПУСТО + 5 5 5
ПУСТОЕ * 5 ПУСТОЙ 0 (ноль)
5/ПУСТО Бесконечность Ошибка
0/ПУСТО NaN Ошибка
ПУСТОЕ ИЛИ ПУСТОЕ ПУСТОЙ Ошибка
ЛОЖЬ ИЛИ ПУСТО ЛОЖЬ ЛОЖЬ
ЛОЖЬ И ПУСТОЙ ЛОЖЬ ЛОЖЬ
ИСТИНА ИЛИ ПУСТОЙ ПРАВДА ПРАВДА
ИСТИНА И ПУСТОЙ ЛОЖЬ ПРАВДА
ПУСТОЕ ИЛИ ПУСТОЕ ПУСТОЙ Ошибка
ПУСТОЕ И ПУСТОТА ПУСТОЙ Ошибка

Вы можете выполнять все действия с помощью Power BI Desktop и данных. Дополнительные сведения о возможностях Power BI см. в следующих ресурсах: