week07day03(power bi dax公式 零售数据业务分析)

一. 切片器(筛选)相关的三个函数

1.all (all后面的数据意思是 不受其影响)

复制代码
#ALL 筛选的是 筛选器 或 切片器


#计算 销售金额 ,并且 不受到 门店ID 控制
计算金额 = CALCULATE(SUM('销售表'[金额]),ALL('销售表'[门店ID]))


#计算 销售金额 ,并且 不受到 销售表中任何字段 的 控制
计算金额 = CALCULATE(SUM('销售表'[金额]),ALL('销售表'))

2. ALLEXCEPT (其后的数据存在,其他都失效,图中只有产品id有效,其他都失效)

复制代码
#ALLEXCEPT 排除指定表或列 之外 其它表或列的 筛选器 功能

CALCULATE(sum([金额]),ALLEXCEPT('销售表','销售表'[产品ID]))

3. ALLSELECTED : 指定谁 谁就没有筛选功能,保留其他表或列的筛选器

复制代码
#失效 : ALLEXCEPT 清除指定表或列 的 筛选器 功能 , 保留其它 表或列 的 筛选器 功能
CALCULATE(sum([金额]),ALLSELECTED('销售表','销售表'[产品ID]))

二. 关系函数

1. 事实表:

核心业务表,事实表包含与业务过程或事件相关的数值、度量或事实数据,例如销售金额、数量、成本等。事实表记录了业务事件的具体数值。

2.维度表:

  • 扩展表
  • 维度表包含描述性的、非数值的属性信息,例如产品名称、地理位置、时间等。维度表提供了用于对事实数据进行分类和分组的维度

在事实表中添加维度表中的一列内容,#RELATED : 将维度表 当中的 "借用(复制)" 列 到 事实表

复制代码
列 = RELATED('门店信息表'[门店名称])

4. RELATEDTABLE

当两个表的行数不相同需要sumx进行辅助,将事实表中的列 复制 到 维度表

复制代码
列 = SUMX(RELATEDTABLE('销售表'),[金额])

三. 日历函数 (CALENDAR函数) (重新看)

注意: 如果是销售订单的话,不是每天都有订单,数据的日期会产生断层,需要自己产生连贯的时间

复制代码
#case 变量 when 值
#case when 变量=值
#字段 in (1,2,3)
日期时间表 = 
	-- 当前是一个变量
	-- 加了Var 以后 返回的结果 必须写在Return之后
	VAR BeginDate = MIN('销售表'[日期]) --"2019/10/10"
	VAR EndDate = MAX('销售表'[日期])   --"2020/10/10"
RETURN
	-- 添加列
	ADDCOLUMNS(
		-- 从表当中挑选列
		SELECTCOLUMNS(
			-- CALENDAR : 日历函数返回的结果是一张表
			CALENDAR( 
				DATE(YEAR(BeginDate)-1,1,1),
				DATE(YEAR(EndDate)+1,1,1)
			), -- select Date as 日期
			"日期",[Date]
		),
		"年",YEAR([日期]),
		"季度",SWITCH(
			TRUE(),
			MONTH([日期]) IN {1,2,3} , 1 ,
			MONTH([日期]) IN {4,5,6} , 2 ,
			MONTH([日期]) IN {7,8,9} , 3 ,
			MONTH([日期]) IN {10,11,12} , 4 
		),
		"年季",YEAR([日期])*10 +
		SWITCH(
			TRUE(),
			MONTH([日期]) IN {1,2,3} , 1 ,
			MONTH([日期]) IN {4,5,6} , 2 ,
			MONTH([日期]) IN {7,8,9} , 3 ,
			MONTH([日期]) IN {10,11,12} , 4 
		),
		"季度名称" , "Q" &SWITCH(
			TRUE(),
			MONTH([日期]) IN {1,2,3} , 1 ,
			MONTH([日期]) IN {4,5,6} , 2 ,
			MONTH([日期]) IN {7,8,9} , 3 ,
			MONTH([日期]) IN {10,11,12} , 4 
		),
		"月",MONTH([日期]),
		"年月",YEAR([日期])*100 + MONTH([日期]),
		"月份名称" , "M" & MONTH([日期]),
		"周",WEEKNUM([日期],2),
		"年份周数",YEAR([日期])*100 + WEEKNUM([日期],2),
		"星期",WEEKDAY([日期],2),
		"日",DAY([日期])
	)

#ADDCOLUMNS("表","名称1","表达式1".....) 给指定的表添加 计算列  , 
返回的结果是 表

#SELECTCOLUMNS("表","名称1","表达式1".....) 选择指定表 中的列 ,并对列重命名 ,
返回的结果是 表


#CALENDAR(start,end) 返回一段连续日期 的表 ,表中包含一个默认字段[Date]
# WEEKDAY([日期],2) 返回 列 或 度量值 , 1是从周天开始  ,2 从周一开始
# WEEKNUM([日期],2) 一年中的第几周
#VAR + RETURN : VAR定义变量的

四. USERELATIONSHIP函数

将销售表的日期和日期时间表连接,统计是按照日期时间表的日期进行计算

复制代码
# userelationship: 表明 列(本表) 和列(其他表) 之间的关系, 不返回任何结果
 CALCULATE(SUM([数量]),'销售表'[金额]>0,
          USERELATIONSHIP('销售表'[日期],'日期时间表'[日期]))

五. 时间智能函数

dateadd 返回的是单列的表

复制代码
   DATEADD('日期时间表'[日期],-1,YEAR)

DATESBETWEEN

DATESBETWEEN('日期时间表'[日期],DATE(2019,6,1),DATE(2019,06,30)),

复制代码
calculate(
    sum([数量]),
    filter(
        DATESBETWEEN('日期时间表'[日期],DATE(2019,6,1),DATE(2019,06,30)),
        TRUE()
    ) 
)

calculate(
    sum([数量]),
    AND(
    	'日期时间表'[日期] >= DATE(2019,6,1),
    	'日期时间表'[日期] <= DATE(2019,6,30)
    )
)


calculate(
    sum([数量]),
    '日期时间表'[日期] >= DATE(2019,6,1),
    '日期时间表'[日期] <= DATE(2019,6,30)
)


calculate(
    sum([数量]),
    '日期时间表'[日期] >= DATE(2019,6,1) && '日期时间表'[日期] <= DATE(2019,6,30)
)

计算累计值

TOTALMTD: 最大的极限只能算到 月总和 ,不可以算到季度和年。(Month-to-Date)

按照日期时间表'[日期],且金额大于0的数据进行 金额求和

TOTALMTD( sum([金额]),'日期时间表'[日期],'销售表'[金额] >0)

六.零售数据业务分析

1. 传统零售的Excel困境:

  • 数据量限制(500MB)
  • 不能对数据进行实时刷新

2. 新零售系统

  • 定制二维码 :通过二维码,可以确定从什么店铺注册的
  • 集合 智能终端 获取到 销售数据和会员消费数据
  • 商家有ERP系统,里面可以显示各个区域 和 门店中的库存
  • 最终通过各方 汇集的数据, 形成数据看板

3. 广域流量

  • 投流
  • 要保证当前的品牌能做的大

4.私域流量

  • up主引流、文章、微信的公众号
  • 要保证当前品牌可以做的稳

七. 数据来源

1. 有独立站

  • 公司、厂店一体有自己的品牌, 公司内部一般会搭建 大数据仓库
  • 独立站一般会 埋点, 可以获取 用户的行为数据。下单以后会存在 经营数据

2. 只有平台的店铺

  • 千牛、 生意参谋(有限时间的订单数据)。
  • 店透视和店侦探(竞品分析)
  • ERP(订单数据 综合数据)
  • CRM(会员数据)
  • WRM(仓库数据)

3.信息孤岛

  • 公司里面有多个ERP和平台工具,存在"信息孤岛", 则打通 信息孤岛

八. 数据分析的价值

1. 分析当前业务开展情况是否良好

  • 会员情况:
    • 会员总数是否增加
    • 老会员留存率
    • 会员精准群体
  • 库存情况:
    • 活动库存
    • 流程和审核
  • 关联情况:
    • 打包组合

规避风险 ,精准营销

九. 模型的关系

  • 星形模型
  • 雪花模型
  • 星座模型:多个表之间有交叉(维度表交叉还特别多)
  • 梳状模型: 主表之间多有关系,维度表之间没啥关系

十. 归纳表的创建

1. 创建方法

  • 将维度表前添加前缀
  • 将事实表前添加前缀
  • 模型之间关系的建立
  • 方法:选择主页 输入数据 创建空列 将模块选择到模型视图,点击任意表,查看右侧属性栏,标记 显示文件夹(可以将度量值 或 列 分包存储)
相关推荐
瓶子xf15 小时前
陪跑教学大纲:PowerBI & QuickBI & FineBI & 数据运营& 面试 & 简历修改等
powerbi·finebi·副业·quickbi
咋吃都不胖lyh4 天前
MySQL 与Power BI 的作用,以及在数据分析中扮演的角色
mysql·数据分析·powerbi
瓶子xf1 个月前
PowerBI 的双隐藏,我在QuickBI 里也找到了
powerbi·quickbi
瓶子xf1 个月前
PowerBI 没实现的的联动同步下钻,QuickBI 实现了
powerbi·quickbi
瓶子xf1 个月前
第二家公司虽然用PowerBI ,可能更适合用以前的QuickBI
powerbi
瓶子xf1 个月前
第三家公司虽然用了powerbi,但更适合用excel
excel·powerbi
Yuki_Xzz1 个月前
powerbi其他切片器能控制而只有Result切片器不能控制
powerbi
Sharewinfo_BJ1 个月前
66别错过!一杯奶茶钱开启企业微信 Power BI 之旅
数据分析·企业微信·数据可视化·powerbi
奔跑草-2 个月前
【服务器】Apache Superset功能、部署与体验
运维·服务器·apache·powerbi·superset
芦骁骏2 个月前
自动处理考勤表——如何使用Power Query,步步为营,一点点探索自定义函数
数据分析·excel·powerbi