ALLNOBLANKROW

Область применения: вычисление вычисляемого столбца вычисляемой таблицы Меры визуального элемента

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

Синтаксис

ALLNOBLANKROW( {<table> | <column>[, <column>[, <column>[,…]]]} )

Параметры

Термин Определение
table Таблица, по которой удаляются все фильтры контекста.
столбец Столбец, по которому удаляются все фильтры контекста.

Необходимо передать только один параметр; параметр — это таблица или столбец.

Возвращаемое значение

Таблица, когда переданный параметр был таблицей или столбцом значений, когда переданный параметр был столбцом.

Замечания

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

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

    Функция и использование Description
    ALL(Column) Удаляет все фильтры из указанного столбца в таблице; все остальные фильтры в таблице, по-прежнему применяются к другим столбцам.
    ALL(Table) Удаляет все фильтры из указанной таблицы.
    ALLEXCEPT(Table,Col1,Col2...) Переопределяет все фильтры контекста в таблице, кроме указанных столбцов.
    ALLNOBLANK(table|column) Из родительской таблицы связи возвращает все строки, но пустую строку или все отдельные значения столбца, но пустую строку, и игнорирует все фильтры контекста, которые могут существовать.

    Общее описание работы функции ALL вместе с пошаговыми примерами, которые используют ALL(Table) и ALL(Column), см. в разделе ALL.

  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Пример

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

Шаг 1. Проверка несвязанных данных

Откройте окно PowerPivot, а затем выберите таблицу ResellerSales_USD. В столбце ProductKey отфильтруйте пустые значения. Одна строка останется. В этой строке все значения столбцов должны быть пустыми, за исключением SalesOrderLineNumber.

Шаг 2. Создание сводной таблицы

Создайте новую сводную таблицу, а затем перетащите столбец, datetime. [Календарный год], на панель меток строк. В следующей таблице показаны ожидаемые результаты.

Метки строк
2005
2006
2007
2008
Общий итог

Обратите внимание на пустую метку между 2008 и Grand Total. Эта пустая метка представляет собой элемент Unknown, который является специальной группой, которая создается для учета любых значений в дочерней таблице, не имеющих соответствующего значения в родительской таблице, в этом примере datetime. Столбец [календарный год].

При отображении этой пустой метки в сводной таблице вы знаете, что в некоторых таблицах, связанных с столбцом, datetime. [Календарный год], имеются пустые значения или не соответствующие значения. Родительская таблица — это та, которая отображает пустую метку, но строки, которые не совпадают, находятся в одной или нескольких дочерних таблицах.

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

Шаг 3. Подсчет строк с помощью ALL и ALLNOBLANK

Добавьте следующие два меры в таблицу datetime, чтобы подсчитать строки таблицы: Countrows ALLNOBLANK datetime, Countrows ALL of datetime. Формулы, которые можно использовать для определения этих мер:

// 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 даты и времени Countrows ALL of datetime
2005 1280 1281
2006 1280 1281
2007 1280 1281
2008 1280 1281
1280 1281
Общий итог 1280 1281

Результаты показывают разницу в 1 строке в счетчике строк таблицы. Однако если открыть окно Power Pivot и выбрать таблицу datetime, в таблице не удается найти пустую строку, так как указанная здесь специальная пустая строка является неизвестным элементом.

Шаг 4. Убедитесь, что счетчик является точным

Чтобы доказать, что ALLNOBLANKROW не подсчитывает действительно пустые строки и обрабатывает только специальную пустую строку только в родительской таблице, добавьте следующие два меры в таблицу ResellerSales_USD: Countrows ALLNOBLANKROW ResellerSales_USD, Countrows ALL из ResellerSales_USD.

Создайте сводную таблицу и перетащите столбец, datetime. [Календарный год], на панель меток строк. Теперь добавьте только что созданные меры. Результаты должны выглядеть следующим образом:

Метки строк Countrows ALLNOBLANKROW of ResellerSales_USD Countrows ALL of ResellerSales_USD
2005 60856 60856
2006 60856 60856
2007 60856 60856
2008 60856 60856
60856 60856
Общий итог 60856 60856

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

Функции фильтрации
ФУНКЦИЯ ALL
Функция FILTER