Вы можете настроить свою меру для расчета по-разному в зависимости от того, является ли она промежуточным итогом или не использует функции, такие как HASONEVALUE
из ISFILTERED
.Поэтому, если вы использовали «фильтры значений» для ограничения количества строк, которые вы видите, вы все равно можете получить промежуточные итоги, включая все строки, используя соответствующий контекст фильтра.
Например, для основного подсчета вы можете написать что-то вродеthis
CountMeasure =
IF(HASONEVALUE(Visit[ID]),
COUNT(Visit[Column1]),
CALCULATE(COUNT(Visit[Column1]), ALLEXCEPT(Visit, Visit[Group]))
)
Функция ALLEXCEPT
удаляет весь контекст фильтра, кроме указанных вами столбцов.Этот же шаблон должен работать и для других мер:
SubtotalMeasure =
IF(HASONEVALUE(Visit[ID]),
[Measure],
CALCULATE([Measure], ALLEXCEPT(Visit, Visit[Group]))
)
Редактировать: В ответ на ваши комментарии немного сложно получить отдельные выборки среза из фильтрации значений, так какмера DAX относится к ним аналогично.Однако, если они нарезают / фильтруют по разным столбцам, это должно быть возможно.
Например, если у вас есть срез на ID
, вы можете передать этот столбец в функцию ALLEXCEPT
какдругой аргумент: ALLEXCEPT(Visit, Visit[Group], Visit[ID])
.Это предотвратит удаление фильтрации слайсера на ID
.
Стандартный способ удаления контекста фильтра при сохранении выбора слайсера - использование ALLSELECTED
.Однако это также сохранит фильтрацию значений.
Возможно, вы сможете получить конкретный требуемый контекст фильтра, используя комбинацию этих видов.Например,
SubtotalMeasure =
VAR CurrentGroup = MAX(Visit[Group])
RETURN
IF(HASONEVALUE(Visit[ID]),
[Measure],
CALCULATE([Measure],
ALLSELECTED(Visit),
ALL(Visit[Name]),
Visit[Group] = CurrentGroup
)
)
Комбинирует все эти аргументы в стиле AND
.ALLSELECTED(Visit)
сохранит всю фильтрацию среза и значения (но не контекст сводной таблицы), ALL(Visit[Name])
удалит фильтрацию значения в столбце Name
(но также и любые выборки среза в этом столбце) и Visit[Group]
установит контекст фильтра для столбца Group
равным только значению Group
для текущей строки в текущей таблице, которая определяется указанной выше переменной.
Я не могу гарантировать, что этот конкретныйКомбинация будет работать для вашей конкретной установки, так как я не знаю, какие у вас есть все столбцы, слайсеры и т. д., но она должна дать вам представление о том, какие вещи вы можете попробовать.