数据分析-PowerBI数据分析
描述性分析、分组分析、结构分析、分布分析、交叉分析、矩阵分析、转化分析、RFM分析、留存分析
描述性分析
对表中的price做描述性分析。

Excel、Mysql、PowerBI涉及的函数。

用PowerBI实现,通过度量值实现,计数:count = COUNT('item'[price]),其他指标类似,点击视觉视图空白处,插入矩阵,再将度量值拖动到矩阵中。

分组分析
简单分组统计

度量值:price_avg = AVERAGE('item'[price]),再将press拖入行,price_avg拖入值。
分组排序统计

度量值:item_cnt = COUNT('item'[item_id]),再将press拖入行,item_cnt拖入值,点击字段item_cnt可以按升序/降序排序。
商品数前五的结果,度量值:item_cnt2 = IF([item_cnt] > 5,[item_cnt])

分组过滤统计
出版社的商品数大于3的数据,度量值:item_cnt3 = IF([item_cnt] > 3,[item_cnt])

如果上述方法不能实现商品数前五的的结果和出版社商品数大于3的数据,可以把press提取出来单独做一个表格:出版社 = VALUES('item'[press]),返回的结果是去除重复值的press列,再建立和item的关系,关系字段是press,再将出版社的press拖入行,将item_cnt2和item_cnt3拖入值。
分组去重统计
统计2020年每月用户登录数,先将login表和日期表建立关联,关联字段是Date。

度量值:非重复计数 = DISTINCTCOUNT('login'[uid]),把日期表中的年度月份拖动到行,非重复计数拖动到值。

结构分析
简单结构分析

度量值:count_total1 = CALCULATE([item_cnt],ALL('item'[press])),也可以写作“ALL('item')”,直接去除item所有字段的筛选作用。
度量值:p = DIVIDE([item_cnt],[count_total1])

组内占比

将press、item_name拖入行,再点击第四个图标,然后点击设置视觉对象格式,布局和样式预设-布局-表格,勾选重复行标题。


度量值:组内求和 = CALCULATE([sum],ALLEXCEPT('item','item'[press])),ALLEXCEPT会移除出来press之外其他字段的筛选作用,这里需要根据出版社汇总price,但是不需要根据item_name汇总。
度量值:组内占比 = DIVIDE([sum],[组内求和])

分布分析

PowerQuery
点击item表格旁边三个点,选择编辑查询,进入PowerQuery界面。选择添加条件列,添加完成修改labels的数据类型为文本,关闭并应用。把labels拖到行,count拖到值。

计算列
新建列:labels1 = IF('item'[price] > 100,"(100,+∞)",IF('item'[price] > 50,"(50,100]","(0,50]")),再将labels1拖到行,count拖到值。
度量值
主页-数据-输入数据,无穷大输入一个比较大的数字代替,这样就新建了一个表格。这个表格和item表是没有建立关系的。

度量值:
分组计数 =
CALCULATE(
[count],
FILTER(
ALL('item'),
'item'[price] > SELECTEDVALUE('价格分组表'[最小值]) &&
'item'[price] < SELECTEDVALUE('价格分组表'[最大值])
)
)
SELECTEDVALUE:在指定列中只有一个值时返回该值,否则返回替代结果。是用来检查筛选上下文是否只有一个值的。 把分组拖到行,最小值作为列,确定了唯一值,返回这个值。
将分组拖到行,分组计数拖到值,就可以得到相同的结果。

交叉分析
press拖到行,labels拖到列,count拖到值。

矩阵分析
根据province字段,建立telecom和area表的关系。把area拖到行,cost_avg和flow_avg拖到值。
度量值:cost_avg = AVERAGE('telecom'[cost])
度量值:flow_avg = AVERAGE('telecom'[flow])

转化分析

度量值:uid_count = COUNT('behavior'[uid])
度量值:

度量值:rate = DIVIDE([uid_count],[浏览数])

RFM分析

选择item表旁边的三个点,选择编辑查询,进入PowerQuery界面。选择behavior表格右键引用,筛选出有购买的用户,也就是behavior_type = 3的用户。
选择合并查询-将查询追加为新查询-选择item进行合并。展开选择price列,重命名为交易金额。
自定义列输入公式:Date.FromText("20201231"),命名为截止日期。
按住Ctrl选择date和截止日期两列,选择添加列-日期-减去天数,得到天数差。
选择分组依据,以uid为分组依据。

选择uid,按照升序排序。
添加三列自定义列,分别输入公式:
r_s = if [r] < List.Average(排序的行[r]) then 2 else 1
f_s = if [f] > List.Average(排序的行[f]) then 2 else 1
m_s = if [m] > List.Average(排序的行[m]) then 2 else 1
[r]表示的是当前行的值,排序的行[r]表示的是名为“排序的行”这个表格中的“r”列,表名是“排序的行”是因为上一步是对排序。
添加自定义列,rfm_score = 100*[r_s]+10*[f_s]+[m_s]
rfm_score修改数据类型为整数。关闭并应用。
度量值:cnt = COUNTROWS('RFM分析')
拖动rfm_score和type到行,以表格形式布局,cnt拖到值。

留存分析

选择login,点击编辑查询,进入PowerQuery界面,选择login引用,重命名为留存分析。
筛选出2020/1/1-2020/1/6的数据,再筛选出登录状态为1的数据,date重命名为new_date。
再引用login表筛选出2020/1/1-2020/1/7的数据,login(2),date重命名为date2。
选择留存分析表,合并查询-合并查询,将留存分析和login(2)合并,展开选择date2。
选中new_date和date2,添加列-日期-减去天数,得到天数差,关闭并应用。
度量值:day0 = CALCULATE(COUNTROWS('留存分析'),FILTER('留存分析','留存分析'[减法]=0))
度量值:day1 = CALCULATE(COUNTROWS('留存分析'),FILTER('留存分析','留存分析'[减法]=1))
度量值:次日留存率 = DIVIDE([day1],[day0])
拖动new_date到行,如果日期展开了可以右键选择new_date,就可以显示成图片中的格式,day0,day1,次日留存率拖动到值。
更多推荐
所有评论(0)