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

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.维度表:

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

3. RELATED 关系函数

在事实表中添加维度表中的一列内容,#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. 创建方法

  • 将维度表前添加前缀
  • 将事实表前添加前缀
  • 模型之间关系的建立
  • 方法:选择主页  输入数据 创建空列   将模块选择到模型视图,点击任意表,查看右侧属性栏,标记 显示文件夹(可以将度量值 或 列 分包存储)
03-15 11:55