【问题标题】:Dynamic GROUPBY in DAX, PowerBIDAX、PowerBI 中的动态 GROUPBY
【发布时间】:2020-02-19 16:38:51
【问题描述】:

我是 PowerBI 和 DAX 语言的新手。

考虑下表All interactions(这是用户与系统交互的集合):

我想创建以下可视化: (X 轴是总交互计数,Y 轴是系统中具有该交互次数的用户的百分比)

这可以通过创建一个动态表来完成,例如:

TableFoo =
GROUPBY (
    'All interactions',
    'All interactions'[user_name],
    "total_interactions", COUNTX ( CURRENTGROUP (), 'All interactions'[user_name] )
)

可以按预期可视化:

我无法动态过滤数据的问题。例如,当尝试通过选择某些typeuser_details.gender 来缩小结果范围时,所有分组数据都保持静态。

我该如何处理?

谢谢。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    您必须在 All 函数中指定要仅删除用户名列上的过滤器。 您不需要使用 groupby 功能 你可以试试这个公式:(格式函数强制看小数)

       format(
         Divide(
            countx(Sheet3,Sheet3[username]),
            Calculate(COUNTROWS(Sheet3),ALL(Sheet3[username])
            )
           ,0)
          , "PERCENT" )
    

    【讨论】:

      【解决方案2】:

      使事物动态化的关键是使用度量而不是计算列或计算表(除非这些是在您的度量中计算的)。


      我建议创建一个单独的表格作为 x 轴。

      X-axis = GENERATESERIES ( 1, COUNTROWS ( 'All Interactions' ) )
      

      (这比您需要的要大,但应该可以达到目的。)

      'X-axis'[Value] 放在图表轴上,然后定义用于值字段的度量。

      Contact Distribution = 
      VAR Interactions = SELECTEDVALUE ( 'X-axis'[Value] )
      VAR Summary =
          GROUPBY (
              'All interactions',
              'All interactions'[user_name],
              "total_interactions", COUNTX ( CURRENTGROUP (), 'All interactions'[user_name] )
          )
      RETURN
          COUNTROWS ( FILTER ( Summary, [total_interactions] = Interactions ) )
      

      这会读取 x 轴上的值,然后计算在您的 GROUPBY 汇总表中具有这么多交互的用户数。

      这是动态的,因为汇总表是在度量内部计算的,并且可以响应过滤,这与固定计算表不同。

      【讨论】:

      • 谢谢。按预期工作。不过有一个问题 - 我怎样才能切换到百分比而不是只报告互动次数?
      • 您可以在度量中除以COUNTROWS('All Interactions')(或任何您想要的分母)。
      • 实际上,当我尝试执行修改后的查询时:"total_interactions", COUNTX ( CURRENTGROUP (), 'All interactions'[user_name] ) / COUNTROWS('All interactions')) 我最终会遇到类似"Function 'GROUPBY' scalar expressions have to be Aggregation functions over CurrentGroup(). The expression of each Aggregation has to be either a constant or directly reference the columns in CurrentGroup()." 的错误
      猜你喜欢
      • 2020-02-10
      • 2021-05-29
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多