ALLNOBLANKROW
применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления
Из родительской таблицы связи возвращает все строки, но пустую строку или все отдельные значения столбца, но пустую строку, и игнорирует все фильтры контекста, которые могут существовать.
Синтаксис
ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )
Параметры
Срок | Определение |
---|---|
table |
Таблица, по которой удаляются все фильтры контекста. |
column |
Столбец, по которому удаляются все фильтры контекста. |
Необходимо передать только один параметр; параметр — это таблица или столбец.
Возвращаемое значение
Таблица, когда переданный параметр был таблицей или столбцом значений, когда переданный параметр был столбцом.
Замечания
Функция ALLNOBLANKROW фильтрует только пустую строку, которую родительская таблица в связи отображает, если в дочерней таблице есть одна или несколько строк, не соответствующих значениям родительского столбца. Подробные объяснения см. в приведенном ниже примере.
В следующей таблице перечислены варианты
ALL
, предоставляемые в DAX, и их различия.Функция и использование Описание ALL(Column)
Удаляет все фильтры из указанного столбца в таблице; все остальные фильтры в таблице, по-прежнему применяются к другим столбцам. ALL(Table)
Удаляет все фильтры из указанной таблицы. ALLEXCEPT(Table,Col1,Col2...)
Переопределяет все фильтры контекста в таблице, кроме указанных столбцов. ALLNOBLANK(table|column)
Из родительской таблицы связи возвращает все строки, но пустую строку или все отдельные значения столбца, но пустую строку, и игнорирует все фильтры контекста, которые могут существовать. Общее описание работы функции ALL вместе с пошаговые примеры, использующие ALL(таблица) и ALL(столбец), см. ALL функции.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
В примерах данных таблица ResellerSales_USD содержит одну строку, которая не имеет значений и поэтому не может быть связана с одной из родительских таблиц в отношениях в книге. Эта таблица будет использоваться в сводной таблице, чтобы увидеть пустое поведение строки и как обрабатывать количество несвязанных данных.
Шаг 1. Проверка несвязанных данных
Откройте окно PowerPivot, а затем выберите таблицу ResellerSales_USD. В столбце ProductKey отфильтруйте пустые значения. Одна строка останется. В этой строке все значения столбцов должны быть пустыми, за исключением SalesOrderLineNumber.
Шаг 2. Создание сводной таблицы
Создайте новую сводную таблицу, а затем перетащите столбец, datetime. [Календарный год], на панель меток строк. В следующей таблице показаны ожидаемые результаты:
Метки строк |
---|
2005 |
2006 |
2007 |
2008 |
Общий итог |
Запишите пустую метку между 2008 и грандиозным итогом. Эта пустая метка представляет собой элемент Unknown, который является специальной группой, которая создается для учета любых значений в дочерней таблице, не имеющих соответствующего значения в родительской таблице, в этом примере datetime. Столбец [календарный год].
При отображении этой пустой метки в сводной таблице вы знаете, что в некоторых таблицах, связанных с столбцом, datetime. [Календарный год], имеются пустые значения или не соответствующие значения. Родительская таблица — это та, которая отображает пустую метку, но строки, которые не совпадают, находятся в одной или нескольких дочерних таблицах.
Строки, которые добавляются в эту пустую группу меток, являются либо значениями, которые не соответствуют ни одному значению родительской таблицы, например дате, которая не существует в значениях таблицы datetime или NULL, то есть нет значения для даты вообще. В этом примере мы разместили пустое значение во всех столбцах дочерней таблицы продаж. Наличие большего числа значений в родительской таблице, чем в дочерних таблицах, не вызывает проблемы.
Шаг 3. Подсчет строк с помощью ALL и ALLNOBLANK
Добавьте в таблицу datetime следующие два меры, чтобы подсчитать строки таблицы: Countrows ALLNOBLANK даты и времени, Countrows ALL даты и времени. Формулы, которые можно использовать для определения этих мер:
// Countrows ALLNOBLANK of datetime
= COUNTROWS(ALLNOBLANKROW('DateTime'))
// Countrows ALL of datetime
= COUNTROWS(ALL('DateTime'))
// Countrows ALLNOBLANKROW of ResellerSales_USD
= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD'))
// Countrows ALL of ResellerSales_USD
= COUNTROWS(ALL('ResellerSales_USD'))
В пустой сводной таблице добавьте дату и время. Столбец [Календарный год] в метки строк, а затем добавьте только что созданные меры. Результаты должны выглядеть следующим образом:
Метки строк | Countrows ALLNOBLANK даты и времени | Счетчики ALL даты и времени |
---|---|---|
2005 | 1280 | 1281 |
2006 | 1280 | 1281 |
2007 | 1280 | 1281 |
2008 | 1280 | 1281 |
1280 | 1281 | |
Общий итог | 1280 | 1281 |
Результаты показывают разницу в 1 строке в счетчике строк таблицы. Однако если открыть окно PowerPivot и выбрать таблицу datetime, вы не можете найти пустую строку в таблице, так как специальная пустая строка, указанная здесь, является неизвестным элементом.
Шаг 4. Убедитесь, что счетчик является точным
Чтобы доказать, что ALLNOBLANKROW не подсчитывает действительно пустые строки и обрабатывает только специальную пустую строку только в родительской таблице, добавьте следующие два меры в таблицу ResellerSales_USD: Countrows ALLNOBLANKROW ResellerSales_USD, Countrows ALL ResellerSales_USD.
Создайте сводную таблицу и перетащите столбец, datetime. [Календарный год], на панель меток строк. Теперь добавьте только что созданные меры. Результаты должны выглядеть следующим образом:
Метки строк | Подсчет ALLNOBLANKROW ResellerSales_USD | Подсчет ALL ResellerSales_USD |
---|---|---|
2005 | 60856 | 60856 |
2006 | 60856 | 60856 |
2007 | 60856 | 60856 |
2008 | 60856 | 60856 |
60856 | 60856 | |
Общий итог | 60856 | 60856 |
Теперь два меры имеют одинаковые результаты. Это связано с тем, что функция ALLNOBLANKROW не подсчитывает действительно пустые строки в таблице, а обрабатывает только пустую строку, созданную в родительской таблице, если одна или несколько дочерних таблиц в связи содержат несочетаемые значения или пустые значения.