首页 文章

Matrix Visual中的Power BI排名

提问于
浏览
0

我花了很多时间试图让这个工作,包括在另一个网站发布 . 没运气 . 不知道我错过了什么 .

以下代码为我提供了我需要的数据表 . 但是,我只想要“排名”值,我想要矩阵视觉中的每一行 .

首先是一些背景,PowerBI页面上有切片日期和“基础”产品 . 任何给定的产品可能在多个国家/地区销售 . 所有都带有相同的基本产品后缀和国家特定的前缀 .

所讨论的矩阵显示了所选基础产品的所有产品变体的几个方面 . 我想显示每个变体在其国家/地区内的排名(单位销售额) .

VAR tblCountrySales =
    SUMMARIZE (
        FILTER(
            tblSalesUnits,
            RELATED(tblProducts[Country])="US"
        ),
        tblProducts[ProdID],
        "Total Sales", SUM ( tblSalesUnits[Units] )
    )
RETURN
    ADDCOLUMNS (
        tblCountrySales,
        "ProductRank", RANKX ( tblCountrySales, [Total Sales] )
    )

有没有办法从上面的代码中拉出单个产品的等级,或者更好的是,DAX模式可以让我获得各自国家内每个产品变体的单位销售额?

我已使用这些语句成功获取视觉中每行的产品ID和国家/地区 .

VAR ProdSales = SUM(tblSales[Units])
VAR ProdCountry = SELECTEDVALUE(tblProducts[Country])

任何帮助是极大的赞赏 . 我假设我在视觉中缺少具有行上下文的东西,因为上面的表格上的简单COUNTROWS总是返回“1” . 作为PowerBI和DAX的新手,我仍然试图掌握过滤器和行上下文的细微差别 .

产品表包含......等数据
ProdID.....BaseID....Name...Country
7190 ........... 7190 ..... XXXX美国.....
150207190 ...... 7190 ..... XXXX ....巴拿马
241807190 ...... 7190 ..... XXXX .....西班牙

销售表包含......等数据
ProdID......SalesMonth......Units.....USD
7190 ........ 2010年7月....... 4563 .... $ 23491.00
150207190 ... 2010年7月....... 2543 .... $ 16235.00
241807190 ... 2010年7月....... 1263 .... $ 8125.00

还有一个日期表,它将SalesMonth链接到通常选择的日期显示格式 . 上面的两个表通过ProdID链接,但视觉效果是由BaseID切片的 . 我会附上一张图片,但没有权限这样做 .

1 回答

  • 0

    通过更多的修修补补,我发现了这个解决方案 .

    Country Rank = 
    VAR ProdSales = SUM(tblSales[Units])
    VAR ProdCountry = SELECTEDVALUE(tblProducts[Country])
    VAR tblCountrySales =
        SUMMARIZE (
            FILTER(
                ALLEXCEPT(tblProducts,tblProducts[BaseID]),
                tblProducts[Country]=ProdCountry
            ),
            tblProducts[ProdID],
            "Total Sales", SUM ( tblSales[Units] )
        )
    RETURN
        IF(ProdSales>0,COUNTROWS(FILTER(tblCountrySales,[Total Sales]>ProdSales))+1,BLANK())
    

相关问题