Двунаправленная перекрестная фильтрация при работе с DirectQuery в Power BI DesktopBidirectional cross-filtering using DirectQuery in Power BI Desktop

При фильтрации таблиц для создания требуемого представления данных авторы отчетов (и архитекторы данных) сталкиваются с проблемой, пытаясь понять, как именно фильтрация применяется к отчету: контекст фильтра таблицы находится только на одной стороне связи, и часто для получения нужных результатов приходится прибегать к сложным формулам DAX.When filtering tables to create the appropriate view of data, report creators (and data modelers) face challenges when determining how filtering is applied to a report; the filter context of a table was held on one side of the relationship, but not the other, often requiring complex DAX formulas to get the desired results.

Двунаправленная перекрестная фильтрация позволяет авторам отчетов и архитекторам данных лучше контролировать работу фильтров на связанных таблицах, применяя их на обеих сторонах связи между ними.With bidirectional cross-filtering, report creators (and data modelers) now have more control over how filters are applied when working with related tables, enabling those filters to be applied on both sides of a table relationship. Для этого контекст фильтра распространяется на вторую связанную таблицу на другой стороне связи.This is accomplished by having the filter context propagated to a second related table on the other side of a table relationship.

В подробном техническом документе объясняются принципы работы двунаправленной перекрестной фильтрации в Power BI Desktop (в нем также рассматриваются службы SQL Server Analysis Services 2016, так как особенности их работы аналогичны).A detailed whitepaper is available that explains bidirectional cross-filtering in Power BI Desktop (the whitepaper also covers SQL Server Analysis Services 2016, both have the same behavior).

Включение двунаправленной перекрестной фильтрации для DirectQueryEnabling bidirectional cross-filtering for DirectQuery

Для включения перекрестной фильтрации в диалоговом окне Изменение связи для соответствующей связи должны быть настроены следующие параметры:To enable cross-filtering, in the Edit Relationship dialog for a relationship, the following must be selected:

  • Для параметра Направление кроссфильтрации должно быть выбрано значение Оба.The Cross filter direction must be set to Both
  • Должен быть установлен флажок Применить фильтр безопасности в обоих направлениях.The Apply security filter in both directions must also be selected

Примечание

При создании формул DAX с перекрестной фильтрацией в Power BI Desktop используйте вместо параметра UserName параметр UserPrincipalName (который часто совпадает с именем пользователя для входа, например joe@contoso.com).When creating cross filtering DAX formulas in Power BI Desktop, use UserPrincipalName (which is often the same as a user's login, such as joe@contoso.com) instead of UserName. При этом вам может потребоваться создать связанную таблицу UserName (или, например, EmployeeID), сопоставив ее с UserPrincipleName.As such, you may need to create a related table that maps UserName (or EmployeeID, for example) to UserPrincipleName.

Дополнительные сведения и примеры работы двунаправленной перекрестной фильтрации см. в техническом документе, упомянутом выше в этой статье.For more information, and for examples of how bidirectional cross-filtering works, check out the whitepaper mentioned earlier in this article.