另一个也可以的工具是:Tableau
还有一个是:神策,主要是用于互联网的app的数据埋点
数据分析的过程:
数据源--数据清洗(power query)-构建指标 新建度量值(power pivot)-可视化(power view)-报表完成
我使用的PowerBI版本
![](https://file.jishuzhan.net/article/1770621088074567682/68d6611394cae8611b2862201092d649.webp)
一 获取数据
1.连接MySQL数据库
如果要连接MySQL,那么在MySQL安装路径下要安装mysql-connect-net,(我是本地电脑,如果数据库在服务端,那么需要放在服务端)下载地址MySQL :: Download MySQL Connector/NET (Archived Versions)
![](https://file.jishuzhan.net/article/1770621088074567682/47c8493879db42353819589171cda60f.webp)
双击安装后
powerBI主页--获取数据--更多--数据库--MySQL数据库
![](https://file.jishuzhan.net/article/1770621088074567682/ed97694036c3ceeee15cf7e23df95fe9.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/af6465951d0ad5bf66e589311eb5bb04.webp)
输入数据库和用户后,就可以获取数据库的数据了
![](https://file.jishuzhan.net/article/1770621088074567682/eb33c7e40c8778997abb21363e3a1e48.webp)
2.导入execl数据
![](https://file.jishuzhan.net/article/1770621088074567682/007bb8815927c9824e0053cfa4bda5be.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/1eebad19baf46a7e8f3cd52ba3712dcb.webp)
导入后,可以查看表之间的关系
![](https://file.jishuzhan.net/article/1770621088074567682/41f25c15ca0c9910c457b861bcfe7cd6.webp)
二 操作数据(数据清洗)
主页--转换数据--转换数据
![](https://file.jishuzhan.net/article/1770621088074567682/99409f8c97d08d0aac46589bb1f1092b.webp)
打开的是Power Query编辑器
可以编辑数据的类型,行列转换,增删列,提取,分组等操作
![](https://file.jishuzhan.net/article/1770621088074567682/2d968f7c7cbcdbfb441c8274e81eeb68.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/6ae383a2ca7494b5a6faae9b86bee0e2.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/8602c4fbca9971c83718400572b55083.webp)
设置完即可"关闭并应用"
![](https://file.jishuzhan.net/article/1770621088074567682/cd40ab50e03b801e5863db6b0efca017.webp)
三 数据可视化
下面的新建列操作是数据建模的一部分:
在数据页面,新建一个某几列数据合在一起计算的列
选择表,右键--新建列--输入公式--确认
![](https://file.jishuzhan.net/article/1770621088074567682/7ea5452a8bbbfb6832068691279135b9.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/50d30fa38b221ab20f754b0557d9516c.webp)
1. 地图
比如:查看门店分布及销售情况
1)插入--新建视觉对象
2)对象可以拉到合适的位置。然后,选择对象 --选择"可视化"的"地图"
![](https://file.jishuzhan.net/article/1770621088074567682/283a7e66b87f2c9340bf4a1cb0bc65fa.webp)
3)将数据表中的门店的国家字段拉入地图中
把销售额也拉入地图中,最后效果如下:
![](https://file.jishuzhan.net/article/1770621088074567682/1921108e69ad2f4b02d9a803a98cf375.webp)
然后点击上图的"焦点模式"模式
![](https://file.jishuzhan.net/article/1770621088074567682/3c0e6a13487bb36d78fa70c7f89bf8ca.webp)
2.着色地图
1.新建视觉对象
2.选择"着色地图"
![](https://file.jishuzhan.net/article/1770621088074567682/82b6c7d081fa7f430d2d62e6bcb28636.webp)
3)拉入国家和销售额
3. 柱形图、饼状图
![](https://file.jishuzhan.net/article/1770621088074567682/f8872a270f323e75e0cfd21550a4bc4c.webp)
4. 矩阵(透视表)
![](https://file.jishuzhan.net/article/1770621088074567682/37eec55e6c6765eb6f2fbc11993e48cb.webp)
不同产品在不同国家的销售额
![](https://file.jishuzhan.net/article/1770621088074567682/17b0aef87b52af4f0588f37fc7a1f2d5.webp)
设置视觉对象格式,可以优化透视表
![](https://file.jishuzhan.net/article/1770621088074567682/6018b9c29c99c2ca1aa6d4c777693234.webp)
美化后效果:(若设置字体大小,搜索"大小",然后进行设置)
![](https://file.jishuzhan.net/article/1770621088074567682/ee74b46ce2c1c3b68181a12d485d5f74.webp)
5.词云
获取更多视觉对象--word cloud
![](https://file.jishuzhan.net/article/1770621088074567682/92361786da7764aabe7eb62e31798cb9.webp)
根据自己的需要进行优化
![](https://file.jishuzhan.net/article/1770621088074567682/29e917e2429da4393566b3f340cb134d.webp)
6.雷达图
获取更多视觉对象--Radar Chart
![](https://file.jishuzhan.net/article/1770621088074567682/5beb32072381f80ea7fee4b94f9a031b.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/e40e6da2e44f84c5e4062499d00a7878.webp)
四 数据建模
![](https://file.jishuzhan.net/article/1770621088074567682/17b6080e4ef7ccaf4ec41ab63b2a76b8.webp)
(1)管理关系
![](https://file.jishuzhan.net/article/1770621088074567682/c3e999bc51a683c2acc3899a689d53c1.webp)
可以删掉默认的关系,新建自己的关系
![](https://file.jishuzhan.net/article/1770621088074567682/f9c0acc76dadf02edafe7bd12f0e835e.webp)
(2)新建表
如果要新建表,不要直接用"新建表"的功能,而是通过空白查询的方式(主页--获取数据--空白查询--输入数据--添加表名--确定)
以下是新建一张名称为"度量值表"的表(为了方便下面第(4)步的操作,所以取名"度量值表",也可以根据自己的需要命名)
![](https://file.jishuzhan.net/article/1770621088074567682/4cb3c59b84516621c9ef338d8aa132c6.webp)
创建完记得"关闭并应用"
![](https://file.jishuzhan.net/article/1770621088074567682/43962af45d1adecf201108f3e2937276.webp)
然后,在数据中可查看到新建的表
![](https://file.jishuzhan.net/article/1770621088074567682/1c95ab7dec566cb50186d5c61b258462.webp)
(3)新建列
最好是用新建度量值,而不用新建列(列会占内存,度量值不会)
![](https://file.jishuzhan.net/article/1770621088074567682/131be8cc5bb25c8af36250fde2daa9dc.webp)
(4)新建度量值
常用函数
a.迭代函数
|----------------------|---------------------|
| 函数 | 作用 |
| SUMX('表',算术表达式) | 求和 |
| AVERAGE('表',算术表达式) | 平均值 |
| AVERAGEX('表',算术表达式) | 算术平均值 |
| MAXX('表',算术表达式) | 最大值 |
| MINX('表',算术表达式) | 最小值 |
| COUNTX('表',算术表达式) | 记录数 |
| COUNTAX函数('表',算术表达式) | 计算列中单元格不为空的数目 |
| PRODUCTX('表',算术表达式) | PRODUCTX('表',算术表达式) |
b. 计算函数
FILTER 的表,必须是维度表,唯一表。
Filter 常用方法:
1.搭配Calculate
Calculate(表达式(度量值),Filter('表名',筛选条件))
在Calculate函数中的直接筛选条件里,我们只能输入:
'表'[列]= 固定值 或'表列1<>固定值
'表'[列]>= 固定值或'表'[列]<=固定值'表[列]>固定值或'表[列]<固定值
但是遇到如下情况,就要使用Filter函数
[列]=[度量值]、[列]=公式、[列]=[列]
[度量值]=[度量值]、[度量值]=公式、[度量值]=固定值
运用
<1> 新建度量表
为了统一管理度量值,可以新建一张"度量值表",根据上面(2)操作中的方法
比如要计算store_cost的平均值,那么就新建一个度量值(表工具--新建度量值)。
![](https://file.jishuzhan.net/article/1770621088074567682/8c889b6c325658afe3be29c29b407f85.webp)
<2> 使用AVERAGE函数(平均值)
点击"度量值表",右键"新建度量值"
![](https://file.jishuzhan.net/article/1770621088074567682/024d086f3ac8c62b7c71ad388b2624e0.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/b0ef922e4fd92138da701069f675ef46.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/1cc0f2e4dd57fd666d365c7057651597.webp)
store_cost平均值 = AVERAGE('mayfood sales_fact_1998'[store_cost])
注意:这时候查看度量值时,页面不会有任何的显示
在报表试图中,新建视觉对象,选择"表格",拉入度量值,就可以看出结果
![](https://file.jishuzhan.net/article/1770621088074567682/85daf045ca82ec2f65fc970700f3d443.webp)
增加门店Id维度
![](https://file.jishuzhan.net/article/1770621088074567682/129a4dacc3d31881fc69265e96c7bfd3.webp)
<3> 使用Calculate函数(条件语句)
比如筛选store_cost大于其平均值的数据,并对其进行平均值计算
![](https://file.jishuzhan.net/article/1770621088074567682/3687cb9c1fe2ceff2b24377d77185905.webp)
同样使用度量值
步骤一:筛选store_cost大于其平均值的数据
Filter('表名',筛选条件)
FILTER('mayfood sales_fact_1998','mayfood sales_fact_1998'[store_cost]>=AVERAGE('mayfood sales_fact_1998'[store_cost]))
步骤二: 使用Calculate函数
Calculate(表达式(度量值),Filter('表名',筛选条件))
store_cost大于平均值 = CALCULATE(AVERAGE('mayfood sales_fact_1998'[store_cost]),FILTER('mayfood sales_fact_1998','mayfood sales_fact_1998'[store_cost]>=AVERAGE('mayfood sales_fact_1998'[store_cost])))
![](https://file.jishuzhan.net/article/1770621088074567682/22ffc6e0dd4fec83f664c35965215dc3.webp)
![](https://file.jishuzhan.net/article/1770621088074567682/c0cc8218e3909f9c29b2d73f13f6fa9f.webp)
增加城市维度
![](https://file.jishuzhan.net/article/1770621088074567682/fc160b3644fc3d7e3a34e570906f731a.webp)
更多筛选条件
A.
多个筛选条件 = CALCULATE(AVERAGE('mayfood sales_fact_1998'[store_cost]),FILTER('mayfood sales_fact_1998','mayfood sales_fact_1998'[store_cost]>=AVERAGE('mayfood sales_fact_1998'[store_cost])),'mayfood sales_fact_1998'[store_id] = "1")
B.
CALCULATE(AVERAGE('mayfood sales_fact_1998'[store_cost]),FILTER('mayfood sales_fact_1998','mayfood sales_fact_1998'[store_cost]>=AVERAGE('mayfood sales_fact_1998'[store_cost])),'mayfood sales_fact_1998'[store_id] in {1,12})
![](https://file.jishuzhan.net/article/1770621088074567682/da4204483ac4d8aef4c0d9d5d8f4e592.webp)
如果in{}里面是文本,那么应该加双引号" "
![](https://file.jishuzhan.net/article/1770621088074567682/0f0b1a5f5e256180957cb9e2ee974cc2.webp)
C. 如果是排除某几个,则用not
(5)分组
![](https://file.jishuzhan.net/article/1770621088074567682/35f2c3e2dc9cf14b228d072a0380f211.webp)
结果:
![](https://file.jishuzhan.net/article/1770621088074567682/2c9580eb7392ad7b4cd2ae3eafa3e006.webp)