Power Bi 自定义比较条形图

Power Bi Customised comparison bar chart

我有一份学生名单,他们的分数基于三个科目。学生来自各个城市。

我想根据 selected 学生城市显示一个学生与其他学生的比较条形图。

如果我 select 给学生 1,那么我应该得到学生 1' 城市(城市 1)的所有其他学生,并根据他们的分数比较他们的分数,例如学生 1 的分数与其他学生的总和' 标记。

我可以把上面的图表与其他学生进行比较。唯一的问题是现在应该将学生与城市只是 selected 学生城市的其他学生进行比较。

如果我选择学生1,应该只拿城市1的学生进行比较。

我把table改成了下面这样,

我创建了学生+其他table

Students + Others =
UNION(
VALUES(Sheet1[Student Name]),
ROW("Student Name", "Others")
)

创建了另一个措施,如下所示,

Marks vs Others = 
    VAR CurrentStudent = MAX('Students + Others'[Student Name])
    VAR SelectedStudents = ALLSELECTED(Sheet1[Student Name])
    VAR PossibleStudents = ALL(Sheet1[Student Name])
    RETURN
    SWITCH( 
        TRUE(),
        CurrentStudent IN SelectedStudents,
        CALCULATE(
            [Total Marks],
            Sheet1[Student Name] = CurrentStudent
        ),
        CurrentStudent = "Others",
        CALCULATE(
            [Total Marks],
            FILTER(
                ALL(Sheet1[Student Name]),
                Sheet1[Student Name] IN PossibleStudents 
                && NOT(Sheet1[Student Name] In SelectedStudents)
            )
        )

)

我现在制作的图表就像下面的字段

现在我唯一的问题是,如果我select学生1,那么学生1所在的城市应该是哪个城市的学生。 在我的例子中,应该只需要学生 2 和学生 5 来比较学生 1。

希望以下代码对您有用。请modify/optimize根据您的实际需求进行编码。 创建度量:

OthersTotalAllSubject = 
var selectedCity = SELECTEDVALUE(School[City])
var OtherTotal = IF(ISBLANK(selectedCity),CALCULATE(sum(School[Marks]),ALL(School[StudentName])),
 calculate(sum(School[Marks]),FILTER(ALL(School[StudentName],School[City],School[Marks]), selectedCity = School[City])))
var selectedStudentMarks = SUM(School[Marks])
return OtherTotal - selectedStudentMarks

创建另一个度量

SelectedStudentTotalAllMarks = CALCULATE(sum(School[Marks]))

将两个度量都放在条形图的 VALUES 中并 'Subject' 放在 AXIS 上。

Student1 vs AllStudentofSameCity Student3 vs AllStudentofSameCity

如果您需要有关此解决方案的任何信息,请告诉我。