PowerBI新手咨询:能否实现客户维度年度费率对比簇状柱形图?
需求可行性判断及实现方案
完全可以实现这个簇状柱形图需求,以下是具体落地步骤:
一、数据准备与建模
- 统一字段格式:确认两张表的
client name、year、week、salespoint name、rate字段名完全一致(包括大小写、空格),避免后续匹配出错。 - 建立表间关系:在数据模型视图中,将客户专属表与2023历史表通过
client name字段建立一对多关系(历史表为多端),确保year、week能作为筛选维度正常生效。
二、创建核心度量值
通过上下文筛选可保留客户属性,无需单独为每个客户制作可视化,创建两个度量值:
- 当前周期平均费率
当前周期平均费率 = AVERAGE('客户专属表'[rate])
该度量值会自动跟随图表中client name的筛选逻辑,计算每个客户当前周的平均费率。
- 去年同期平均费率
去年同期平均费率 = VAR CurrentWeek = SELECTEDVALUE('客户专属表'[week]) VAR LastYear = SELECTEDVALUE('客户专属表'[year]) - 1 RETURN CALCULATE( AVERAGE('2023历史表'[rate]), '2023历史表'[client name] = SELECTEDVALUE('客户专属表'[client name]), '2023历史表'[week] = CurrentWeek, '2023历史表'[year] = LastYear )
该度量值会根据当前客户的周数,自动匹配历史表中同客户、同周数、去年同期的平均费率。
三、制作簇状柱形图
- 选择簇状柱形图组件;
- 将
客户专属表的client name拖到轴区域; - 将上述两个度量值拖到值区域,自动生成客户分组的双柱对比;
- (可选)若需按销售点细分对比,将
salespoint name拖到图例区域即可; - 调整格式:修改轴标签、图例名称,添加数据标签,优化图表可读性。
四、常见问题排查
- 若客户去年同期无数据,度量值会返回空白,可添加
IF(ISBLANK([去年同期平均费率]), 0, [去年同期平均费率])处理; - 确保
week字段为数值类型,避免文本匹配错误; - 若当前表含多个销售点,
AVERAGE会自动计算该客户所有销售点的平均费率,如需单独对比销售点,直接将salespoint name加入轴或图例即可。
内容的提问来源于stack exchange,提问作者Thismaddeux
相关产品推荐
相关产品推荐

