按照关系在表之间创建层次结构

按照关系在表之间创建层次结构

我对数据透视表感到困惑,这是一个反复出现的问题!假设我在数据模型中放了 2 个表(班级和学生):

班级和学生表

我的模型是这样的:

在此处输入图片描述

我想建立这个简单的数据透视表,像这样显示班级名称和学生姓名(没有总和或数字,只有普通的值)。

预期数据透视表

如果我这样做,正如@Cpt.Whale 所建议的那样:

在此处输入图片描述

我像笛卡尔积一样获取每个班级下的所有学生。我只想获取与班级相关的学生。如果学生 fname 在班级表中,我只需创建一个层次结构。我想用 2 个表执行与层次结构等效的操作。这可能很明显,但我做不到!

更新

RELATED()我再次尝试并找到了一种在计算列中使用 DAX 函数来实现的方法:

在此处输入图片描述

在这种情况下,@Cpt.Whale 提出的解决方案确实有效:

在此处输入图片描述

有没有更好更简单的方法,不使用计算列,直接在数据透视表中使用一种隐式 RELATED 函数?

抱歉,所有截图都是法语版的 Excel。

答案1

如果数据以这种方式排序,在 Office 365 中您也可以使用公式实现它:

=HSTACK(MAP(classes[classname],LAMBDA(a,IF(COUNTIF(TAKE(classes[classname],1):a,a)-1,"",a))),
        XLOOKUP(Students[studentid],students[studentid],students[fname]))

您可以TAKE(classes[classname],1)用第一个单元格 ID 进行替换,例如,A3或者如果您从与表格同一行开始classes[@classname]

在此处输入图片描述

相关内容