如何在PowerBI中按周计算零售业态单店有效销售额与总销售额
PowerBI DAX 实现零售门店周度业态销售分析
必备数据模型
你的数据模型需包含以下核心表:
- 销售表:字段包括日期、门店ID、销售额
- 门店表:字段包括门店ID、业态名称、开业日期、闭店日期(永久闭店填值,在营则留空)
- 日期表:含周编号、周起始/结束日期,需与销售表的日期字段建立关联(可通过
WEEKNUM函数生成周编号)
DAX 度量值代码
1. 业态周度总销售额
仅统计门店营业时段内的销售额,自动排除未开业/已闭店门店的销售记录:
业态周度总销售额 = CALCULATE( SUM('销售表'[销售额]), FILTER( '门店表', '门店表'[开业日期] <= MAX('日期表'[日期]) && (ISBLANK('门店表'[闭店日期]) || '门店表'[闭店日期] >= MIN('日期表'[日期])) ) )
2. 当周营业门店数
核心是覆盖营业但无销售的门店,通过解除销售表与门店表的筛选关联,确保这类门店被计入:
当周营业门店数 = VAR 当前周起始 = MIN('日期表'[日期]) VAR 当前周结束 = MAX('日期表'[日期]) RETURN CALCULATE( DISTINCTCOUNT('门店表'[门店ID]), FILTER( ALL('门店表'), '门店表'[开业日期] <= 当前周结束 && (ISBLANK('门店表'[闭店日期]) || '门店表'[闭店日期] >= 当前周起始) ), CROSSFILTER('销售表'[门店ID], '门店表'[门店ID], NONE) )
3. 单店有效销售额
处理除数为0的边界情况(如某业态当周无营业门店),返回空值而非错误:
单店有效销售额 = VAR 总销售额 = [业态周度总销售额] VAR 营业门店数 = [当周营业门店数] RETURN IF(营业门店数 = 0, BLANK(), DIVIDE(总销售额, 营业门店数, BLANK()))
报表配置步骤
- 将日期表的周编号拖至报表行区域,门店表的业态名称拖至列区域
- 把三个度量值拖入值区域,即可生成每周各业态的总销售额、营业门店数、单店有效销售额
- 若存在临时闭店情况(非永久闭店),需在门店表新增「周营业标记」字段(标记该周是否营业),并修改
当周营业门店数的筛选条件为'门店表'[周营业标记] = "营业"
内容的提问来源于stack exchange,提问作者NoviceatPBI
相关产品推荐
相关产品推荐

