Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DAX、PowerBI中的动态GROUPBY_Powerbi_Dax - Fatal编程技术网

DAX、PowerBI中的动态GROUPBY

DAX、PowerBI中的动态GROUPBY,powerbi,dax,Powerbi,Dax,我不熟悉PowerBI和DAX语言 考虑下表所有交互(这是用户与系统交互的集合): 我想创建以下可视化: (X轴上为总交互次数,Y轴上为系统中具有该数量交互的用户百分比) 这可以通过创建动态表来实现,如: TableFoo = GROUPBY ( 'All interactions', 'All interactions'[user_name], "total_interactions", COUNTX ( CURRENTGROUP (), 'All interacti

我不熟悉PowerBI和DAX语言

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

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

这可以通过创建动态表来实现,如:

TableFoo =
GROUPBY (
    'All interactions',
    'All interactions'[user_name],
    "total_interactions", COUNTX ( CURRENTGROUP (), 'All interactions'[user_name] )
)
可以按预期可视化:

问题在于我无法动态过滤数据。例如,当试图通过选择某些
类型
用户详细信息来缩小结果范围时。性别
所有分组数据保持静态

我怎样才能做到这一点


谢谢。

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


我建议创建一个单独的表格,用作x轴

X-axis = GENERATESERIES ( 1, COUNTROWS ( 'All Interactions' ) )
(这比您需要的要大,但应能达到此目的。)

“X轴”[值]
放在图表轴上,然后定义用于值字段的度量

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
摘要表中有那么多交互的用户数


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

您必须在All函数中指定仅在列Username上删除筛选。 您不需要使用groupby函数 您可以尝试以下公式:(format函数强制查看小数)


谢谢一切正常。但有一个问题-我如何切换到百分比而不是只报告交互的数量?您可以在度量中除以
COUNTROWS('All interactions')
(或您希望分母是什么)。实际上,当我尝试执行修改后的查询时:
“total_interactions”,COUNTX(CURRENTGROUP(),“所有交互”[user_name])/COUNTROWS('All interactions')
我最后遇到了一个错误,如
“Function”GROUPBY“标量表达式必须是CurrentGroup()上的聚合函数。每个聚合的表达式必须是常量或直接引用CurrentGroup()中的列。”
   format(
     Divide(
        countx(Sheet3,Sheet3[username]),
        Calculate(COUNTROWS(Sheet3),ALL(Sheet3[username])
        )
       ,0)
      , "PERCENT" )