首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerBI添加剂切割机(适用于整份报告)

PowerBI添加剂切割机(适用于整份报告)
EN

Stack Overflow用户
提问于 2021-11-30 23:53:20
回答 1查看 119关注 0票数 0

我有一个相当利基的问题,在PowerBI切片操作。

我希望根据两种不同的切割机过滤数据。

例如,我有两台不同的切割机;

  1. --一份类别清单,例如电影类型;
  2. --所有电影导演

的名单

我希望根据两个切割机之间的OR条件过滤PowerBI报告中显示的数据。

例如,我希望根据所有恐怖电影或昆汀·塔伦蒂诺导演的电影进行过滤。因此,这个列表将显示我的数据库中的所有恐怖电影和昆汀·塔伦蒂诺导演的所有电影(不一定是恐怖电影)。

我想我需要为此编写某种形式的DAX代码,但是通过实质性的搜索,我还没有遇到这个特定的问题。

如果你需要进一步的信息,请告诉我。

你好,Josh

EN

回答 1

Stack Overflow用户

发布于 2021-12-02 15:50:51

让我们假设您有一个名为IMDB的表,如下所示

代码语言:javascript
复制
|                       tbl-IMDB                            |
|--------------------------|---------|----------------------|
| Name                     | Genre   | Director             |
|--------------------------|---------|----------------------|
| The Shawshank Redemption | Drama   | Frank Darabont       |
| The Godfather            | Crime   | Francis Ford Coppola |
| The Dark Knight          | Action  | Christopher Nolan    |
| 12 Angry Men             | Drama   | Sidney Lumet         |
| Schindler's List         | History | Steven Spielberg     |
| Pulp Fiction             | Crime   | Quentin Tarantino    |

和另外两个切割机断开表,如下所示

代码语言:javascript
复制
|     tbl-Director     |
|----------------------|
| Director             |
|----------------------|
| Frank Darabont       |
| Francis Ford Coppola |
| Christopher Nolan    |
| Sidney Lumet         |
| Steven Spielberg     |
| Quentin Tarantino    |

|tbl-Genre|
|---------|
| Genre   |
|---------|
| Drama   |
| Crime   |
| Action  |
| History |

数据模型如下所示

现在,如果我正确地理解了你的问题,当你从类型中选择{犯罪,行动}和导演的{Sidney,Spielberg}时,它应该返回5个实例;即只留下-The Shawshank救赎的第一个实例

为了达到这个目的,首先需要考虑到所有的切割机组合,以及它们能做什么。

a.所有的切片值都是在导演和类型切片器- DAX中选择的,以返回完整的表。

b.在导演和类型切片器- DAX中没有选择任何一个切片器值来返回完整的表,因为如果切片器中没有选择任何内容,DAX的默认行为就是返回完整的表。

c.在Genere中选择偏值,在导演中选择nothing/everything,反之亦然,- DAX将返回完整的表--例如,如果选择戏剧(2个实例)+在-> (6个实例)中选择nothing/everything,则总共6个实例。

d.在Genere和- DAX中都选择了部分值,以根据切片器的选择返回实例的添加-;例如,Drama=2+Sideney Lumet=1 =>总共有3个实例。

上面的逻辑可以合并到DAX度量中,如下所示

代码语言:javascript
复制
Measure = 
VAR _genre =  --- what are the genres selected from Genere Slicer and find them in IMDB tbl
    MAXX (
        FILTER ( IMDB, IMDB[Genre] IN ALLSELECTED ( Genre[Genre] ) ), 
        IMDB[Genre]
    )
VAR _director = --- what are the directors selected from Director Slicer and find them in IMDB tbl
    MAXX (
        FILTER ( IMDB, IMDB[Director] IN ALLSELECTED ( Director[Director] ) ),
        IMDB[Director]
    )
VAR _genreCountALL =  -- what are the total count of genere from Genre tbl regardless of the slicer seletion
    CALCULATE ( COUNT ( Genre[Genre] ), ALL ( Genre ) )
VAR _directorCountALL = -- what are the total count of director from Director tbl regardless of the slicer seletion
    CALCULATE ( COUNT ( Director[Director] ), ALL ( Director ) )
VAR _genreCountSELECT = -- what are the total count of genere from Genre tbl according to slicer seletion
    COUNT ( Genre[Genre] )
VAR _directorCountSELECT = -- what are the total count of director from Director tbl according to slicer seletion
    COUNT ( Director[Director] )
VAR _slice = --- if Genere and/Director slicer are both selected then return the max else in every other instances it is a full tbl
    SWITCH (
        TRUE (),
        _genreCountALL <> _genreCountSELECT
            && _directorCountALL <> _directorCountSELECT,
            CALCULATE (
                MAX ( IMDB[Name] ),
                FILTER ( IMDB, IMDB[Director] IN { _director } || IMDB[Genre] IN { _genre } )
            ),
        CALCULATE ( MAX ( IMDB[Name] ) )
    )
RETURN
    _slice

并设置一个可视级别过滤器,如下所示

该措施产生以下结果

nothing is selected - returns full table

partial values are selected in only one slicer- returns full table

partial values are selected in all available slicers - returns the sliced table

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70177537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档