Powerbi 功率BI |折线图类别数据百分比

Powerbi 功率BI |折线图类别数据百分比,powerbi,powerbi-desktop,Powerbi,Powerbi Desktop,我想在折线图中显示我的数据作为类别的百分比。在这个矩阵可视化中,我用“显示值为”>“列总数百分比”处理了用户的百分比数据 在这张图片中,你可以看到,我有用户的距离计数、调查名称和答案文本。我想在answertext行中通过SurveyName显示不同计数用户数据的百分比。所以我需要这样的折线图: 答案表: ResponseID QuestionID QuestionText AnswerID AnswerText XYZ1 Q1 qtext1

我想在折线图中显示我的数据作为类别的百分比。在这个矩阵可视化中,我用“显示值为”>“列总数百分比”处理了用户的百分比数据

在这张图片中,你可以看到,我有用户的距离计数、调查名称和答案文本。我想在answertext行中通过SurveyName显示不同计数用户数据的百分比。所以我需要这样的折线图:

答案表:

ResponseID  QuestionID  QuestionText    AnswerID    AnswerText
XYZ1        Q1          qtext1          q1a1        q1a1text
XYZ1        Q2          qtext2          q2a1        q2a1text
XYZ1        Q3          qtext3          q3a1        q3a2text
XYZ2        Q1          qtext1          q1a2        q1a2text
XYZ2        Q3          qtext3          q3a1        q3a1text
XYZ3        Q1          qtext1          q1a1        q1a1text
XYZ3        Q2          qtext2          q2a2        q2a2text
XYZ3        Q3          qtext3          q3a2        q3a2text
XYZ4        Q1          qtext1          q1a1        q1a1text
XYZ4        Q2          qtext2          q2a1        q2a1text
XYZ4        Q3          qtext3          q3a2        q3a2text
XYZ5        Q1          qtext1          q1a3        q1a3text
XYZ5        Q2          qtext2          q2a1        q2a1text
XYZ6        Q2          qtext2          q2a3        q2a3text
XYZ6        Q3          qtext3          q3a1        q3a1text
XYZ7        Q1          qtext1          q1a2        q1a2text
XYZ7        Q3          qtext3          q3a2        q3a2text
XYZ8        Q1          qtext1          q1a1        q1a1text
XYZ8        Q2          qtext2          q2a2        q2a2text
XYZ8        Q3          qtext3          q3a1        q3a1text
答复表:

SurveyID    SurveyName  UserID  ResponseID
SV_1234     survey1     ABC1    XYZ1
SV_1234     survey1     ABC4    XYZ2
SV_1234     survey1     ABC2    XYZ3
SV_1234     survey1     ABC3    XYZ4
SV_5678     survey2     ABC1    XYZ5
SV_5678     survey2     ABC4    XYZ6
SV_5678     survey2     ABC3    XYZ7
SV_9821     survey3     ABC1    XYZ8

关键问题是根据答案和调查结果分配参与多个调查的用户数量。因此,这里我需要找到参与选定调查的普通用户,然后根据选定调查中问题的答案给出这些用户的分布。

首先,让您的两个表使用列ResponseID连接起来。现在,首先在自定义列下方创建此列-

SurveyName = RELATED(Responses[SurveyName])
现在创建一个度量值,如下所示-

percentage = 

VAR current_survey_name = MIN(Answers[Surveyname])

VAR distict_resp_id_all_text = 
CALCULATE(
    DISTINCTCOUNT(Answers[ResponseID]),
    ALLEXCEPT(
        Answers,
        Responses[SurveyName]
    )
)

VAR distict_resp_id_per_text = 
CALCULATE(
    DISTINCTCOUNT(Answers[ResponseID]),
    ALLEXCEPT(
        Answers,
        Answers[AnswerText],
        Responses[SurveyName]
    )
)

RETURN distict_resp_id_per_text/distict_resp_id_all_text
这是给定样本数据的最终折线图输出-


首先,我们需要计算用户ID,而不是响应ID

在这里,我们将首先选择多个投票,如您在下面所看到的,然后查找参与这些投票的普通用户的数量。稍后,我们将根据axis上的SurveyNames以百分比的形式给出这些普通用户的分布。当然,这里AnswerText中axis上每个SurveyName的用户ID百分比之和应该是100

为此,我首先组合了响应表和答案表。然后,我键入了一个如下的测量值,以查找参与选定调查的普通用户的数量。但是,当我将UserID编号添加到linechart时,它不会提供普通用户,它只提供参与相关调查的总UserID

 Count of Cohort 7c = 
    VAR __tmpTable1 = 
        CALCULATETABLE(
            GENERATE(
                DISTINCT('Table (7)'[UserID]),
                EXCEPT(
                    DISTINCT('Table (7)'[SurveyName]),
                    CALCULATETABLE(DISTINCT('Table (7)'[SurveyName]))
                )
            ),
            REMOVEFILTERS('Table (7)'[AnswerText])
        )
    VAR __tmpTable2 = SUMMARIZE(__tmpTable1,[UserID])
    VAR __tmpTable3 = EXCEPT(DISTINCT('Table (7)'[UserID]),__tmpTable2)
    VAR __CountMax = COUNTROWS(__tmpTable3)

    VAR __Survey = SELECTCOLUMNS('Table (7b)',"__SurveyName",[SurveyName])
    VAR __Question = SELECTCOLUMNS('Table (7a)',"__QuestionText",[QuestionText])
    VAR __tmpTable4 = DISTINCT(SELECTCOLUMNS(FILTER('Table (7)',[SurveyName] IN __Survey && [QuestionText] IN __Question),"UserID",[UserID]))
    VAR __CountMin = COUNTROWS(__tmpTable4)
    VAR __tmpTable5 = FILTER(__tmpTable4,[UserID] IN __tmpTable3)
    VAR __Count = COUNTROWS(__tmpTable5)
RETURN
    SWITCH(TRUE(),
        ISBLANK(COUNTROWS(__tmpTable4)),BLANK(),
        __CountMin < __Count,__CountMin,
        __Count > __CountMax,__CountMax,
        __Count
    )
队列7c的计数=
变量uu tmpTable1=
可计算(
产生(
独特的(‘表(7)’[UserID]),
除了(
独特(“表(7)”[调查名称],
可计算表(不同(‘表(7)’[SurveyName]))
)
),
移除过滤器(‘表(7)’[AnswerText])
)
VAR\uuuTMptable2=汇总(\uuuTMptable1,[UserID])
VAR_uutmptable3=除了(不同的('Table(7)'[UserID]),u tmpTable2)
VAR\uuuu CountMax=COUNTROWS(\uuuu tmpTable3)
VAR_uuusurvey=SELECTCOLUMNS('Table(7b)','uuuu SurveyName',[SurveyName])
VAR\uuuu Question=SELECTCOLUMNS('Table(7a)'、“\uuuu QuestionText”、[QuestionText])
VAR_uuutmptable4=DISTINCT(选择列(FILTER('Table(7)'),uuu调查中的[SurveyName]和_uuu问题中的[QuestionText],“UserID”,“UserID]))
VAR\uuuu CountMin=COUNTROWS(\uuuu tmpTable4)
VAR\uuuTMptable5=过滤器(\uuuTMptable4,[UserID]在\uuuuTMptable3中)
VAR\uuuu Count=COUNTROWS(\uuuu tmpTable5)
返回
开关(TRUE(),
ISBLANK(COUNTROWS(uu tmpTable4)),BLANK(),
__CountMin<\uuuuu Count,\uuuuu CountMin,
__计数>\uuuuCountMax,\uuuuCountMax,
__计数
)


如果您愿意,我可以发送我的power bi报告。

您希望从这些表格中得到的最终表格是什么?我认为有一个措施可以解决我的问题。首先,它将找到参与我从回答表中选择的多个调查的普通用户的数量,然后它将显示这些普通用户参与所选调查的数量。我希望一切都清楚。有人能帮我吗?我已经打开了一个主题:power bi社区。但是没有人能解决这个问题。谢谢你的回答。你能看看我最后的答案吗?有人能帮我吗?实际上,它并没有那么复杂,我想在切片机上使用和运行。在为切片器上的和函数过滤userID之后,我想使用这个userID进行计数和分组。但我不知道我如何才能做到这一点,在权力bi。