市场份额dax测量 - DAX

3

我有一个简单的DAX公式,用于计算下表中的市场份额百分比。

Dax指标:

=DIVIDE(
SUM(EACHES),CALCULATE(
SUM(EACHES),ALL(SUPPLIER)))

然而,我被要求计算“DC ICD”和“SC ICD”类别的市场份额,这真的让我很困扰,因为我不知道如何用DAX编写它。以供应商1为例,Excel公式如下:

=(23+7)/(23+7+3+15+6).

请问有人可以指导我如何将其转换为DAX吗?

行标签 类别 数量 总成本
供应商1 配件 610 £ 73,541.44
供应商1 CRT-D 17 £ 193,078.93
供应商1 DC ICD 23 £ 187,373.50
供应商1 引导线 86 £ 45,835.64
供应商1 SC ICD 7 £ 54,115.50
供应商2 配件 52 £ 8,189.75
供应商2 CRT-D 7 £ 66,065.71
供应商2 DC ICD 3 £ 27,877.80
供应商2 引导线 34 £ 33,277.53
供应商2 S ICD 20 £ 223,201.00
供应商3 配件 1338 £ 26,657.85
供应商3 CRT-D 18 £ 261,798.58
供应商3 DC ICD 15 £ 190,276.96
供应商3 引导线 292 £ 93,502.09
供应商3 SC ICD

你打算使用哪种可视化工具? - Mik
这是一个启用宏的电子表格中的简单数据透视表。 - jacob kola
3个回答

2
像这样的东西可能会起作用。
=DIVIDE(
       CALCULATE(
                SUM(EACHES)
                ,OR(
                   'table'[CATEGORY]="DC ICD
                   ,'table'[CATEGORY]="SC ICD"   
                )
    )        
    ,CALCULATE(
              SUM(EACHES)
              ,ALL(SUPPLIER)
              ,OR(
                  'table'[CATEGORY]="DC ICD"
                  ,'table'[CATEGORY]="SC ICD"   
               )
      )
)

如果您只想在特定行中查看结果,则可以:
=
VAR Result =
      DIVIDE(
         CALCULATE(
                       SUM(EACHES)
                       ,'Table'[CATEGORY] in {'DC ICD','SC ICD'}   
                        )
             )        
              ,CALCULATE(
                        SUM(EACHES)
                        ,ALL(SUPPLIER)
                        ,'Table'[CATEGORY] in {'DC ICD','SC ICD'}   
              )
        )

RETURN
      IF(
         SELECTEDVALUE('Table'[CATEGORY]) in {'DC ICD','SC ICD'}   
         ,Result
         ,BLANK()
       )
     

嗨!谢谢,我非常感激。然而问题是,这段代码 - 特别是selectedvalue - 在数据透视表的度量上无法工作。 - jacob kola
第一个建议是否给您提供了结果? - Mik
我的意思是selectedvalue可能会被更改。但如果这种方法本身不起作用,那么最好考虑其他解决方案。 - Mik
是的,完全正确,谢谢!!! - jacob kola

1
VAR x1 =
CALCULATE (
    SUM ( [Eaches] ),
    KEEPFILTERS ( 'YourTable'[Category] IN { "DC ICD", "SC ICD" } )
)
VAR x2 =
CALCULATE (
    SUM ( [Eaches] ),
    KEEPFILTERS ( 'YourTable'[Category] IN { "DC ICD", "SC ICD" } ),
    ALL ( 'YourTable'[Suppliers] )
)
RETURN
DIVIDE ( x1, x2 )

0
希望这对你的解决方案有效。
Correct_Measure = 
// It only gives sum of DC ICD AND SC ICD but considers suppliers
VAR ONLY_DCICD_SCICD_SUM = 
CALCULATE(
        SUM(Sheet1[Eaches]), 
        Sheet1[Category] IN {"DC ICD", "SC ICD"}
)
// It will give you sum of DC ICD AND SC ICD but consider for all suppliers (remove any filter for supplier all -> remove_filters)
VAR ALL_SUPPLIER_DCICD_SCICD = 
CALCULATE(
    SUM(Sheet1[Eaches]),
    Sheet1[Category] IN {"SC ICD", "DC ICD"},
    ALL(Sheet1[Row Labels])
)
// It will return the ratio .
RETURN 
    DIVIDE(
        ONLY_DCICD_SCICD_SUM,
        ALL_SUPPLIER_DCICD_SCICD
    )    
// Thanks

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接