【问题标题】:DAX formula to find MIN and % differenceDAX 公式查找 MIN 和 % 差异
【发布时间】:2019-09-19 22:17:15
【问题描述】:

我需要帮助来使用正确的 DAX 公式找到列中的最小值,然后根据该最小值评估每一行的值(每个数字的百分比高多少)。

我的表格如下:

https://1drv.ms/u/s!AlRG3cDrsAZTgeF4aurEanDadvVa3w?e=NKWlRQ

我正在尝试在基于第二列的第三列和第四列中获得结果。

【问题讨论】:

    标签: excel powerpivot


    【解决方案1】:

    DAX 计算列:

    Minimum = MIN ( 'Table'[Sedan] )
    
    % Difference = ( 'Table'[Sedan] - 'Table'[Minimum] ) / 'Table'[Sedan]
    

    确保第二次将列数据格式设置为 %。

    聚合函数不受行上下文影响,所以当我们定义 'Table'[Minimum] 时,它只是获取整个表的最小值。然后,我们可以使用新计算的列与现有的“表”[Sedan] 进行简单的 % 差异。在行上下文中,列引用是当前行的值。

    编辑:对于每个 cmets,目标是让它与过滤器交互,因此它不能在计算列中。

    以下措施:

    您的最低要求取决于您如何构建您尚未与我们分享的视觉效果和报告。以下两个版本:

    //v1
    Minimum = MIN ( 'Table'[Sedan] )
    
    //v2
    Minimum = CALCULATE ( MIN ( 'Table'[Sedan] ), ALLSELECTED ( 'Table' ) )
    

    还有 % 的差异。同样,这将取决于您如何构建尚未共享的报告。第一个版本适用于上面的第一个版本,假设您一次查看多行并且您想要平均百分比差异:

    //v1
    % Difference =
    VAR MinValue = [Minimum]
    RETURN
      AVERAGEX (
        'Table',
        ( 'Table'[Sedan] - MinValue ) / MinValue
      )
    

    对于第二个版本,我假设您将 'Table'[Sedan] 放入视觉对象中,以便您看到不同的值:

    //v2
    % Difference =
    VAR CurrentSedan = SELECTEDVALUE ( 'Table'[Sedan] )
    VAR MinValue = [Minimum]
    RETURN
      (CurrentSedan - MinValue) / MinValue
    

    【讨论】:

    • 嗨,格雷格,感谢您的回复。如果我需要列中过滤数据的最小值而不是整个表中的列,我只引用列名而不是'table'[column]?
    • 如果您需要它与过滤器交互,那么您不需要计算列,而是度量。正在编辑中。
    • 非常感谢您的帮助。您的解决方案可以完成工作。
    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多