
在上期《实现TOPN and others排名分类》一文中,有坊友反映文中的实现方法较适用于静态的场景,迭代的top3_others表是固定的,基于销售表整体而言没有动态性,如果加上年份,地区切片筛选就不适用了。比如我有一张销售记录表A,表A有很多维度字段,我迭代top5_others这张单列表(销售员列,按销售额排名),如果筛选器把表A按大区筛选,选北区,那就是北区的top5_others,再选年,18年北区的top5_others,那top5_others也需要跟着变!
今天解决的场景就是TOPN and others能够随年份/地区等维度切片而动态变化。维度表与事实表关联,维度变,事实表跟着变。如果topN_others要想跟着维度表变化,只要把topN_others与事实表相关联,这样,维度表变,事实表变,进而,topN_others也跟着变。
基于这样的思路,先用第一种方法TREATAS解决。
方法一
还是以房产销售的场景为例,先创建一张销售员名单表加上“其他”行命名为name_list表:
name_list =
UNION ( VALUES( '销售表'[销售员] ), ROW ( "销售员", "其他" ) )

创建度量值:
top3_new =
IF (
NOT ( ISFILTERED ( 'name_list'[销售员] ) ),
'销售表'[salesAmout],
IF (
SELECTEDVALUE( name_list[销售员] )

本文介绍如何在筛选年份和地区等维度时,使TOPN and others排名动态变化。通过两种方法,利用TREATAS或FILTER迭代函数关联维度表和事实表,确保筛选后topN_others跟随变化,实现数据的正确聚合和展示。
最低0.47元/天 解锁文章
655

被折叠的 条评论
为什么被折叠?



