一、前言
在当今数据驱动的时代,如何高效地整理、分析并呈现数据,已成为企业和个人提升决策质量的关键能力。Power BI 作为微软推出的强大商业智能工具,正帮助全球用户将海量数据转化为直观、动态的可视化洞察。数据的世界充满可能性,而 Power BI 是你探索它的强大工具。现在,让我们用思维导图开启这段高效学习之旅,一起成为真正的数据洞察者!
此思维导图是本人在学习时候亲手独自完成的,学习的课程是马士兵集团的相关课程,内容相对基础!
本系列博客的初衷:以思维导图为核心框架,带你一步步拆解 Power BI 的核心技能树,构建清晰的学习路径。
二、思维导图
三、导图框架
- Power BI 介绍
- 家族产品
- Power BI DeskTop(Power BI)
- Power BI Service
- Power BI Mobile
- DeskTop安装
- 家族产品
- 导入数据
- 导入Excel数据
- 导入CSV数据
- 导入文件夹数据
- 直接合并导入
- 所有Excel表的 标题列 要一致
- 所有Excel表中 Sheet表名 要一致
- M函数导入
- M函数可以将文件夹中 标题列&Sheet表名 不一致的数据文件合并在一起
- 实操步骤
- ①导入文件夹后点转换数据
- ②除Content列外,其余删除
- ③添加自定义列,输入M公式
- =Excel.Workbook([Content],true)
- ④筛选自定义列中的“Data”值,并取消“使用原始列名作为前缀”
- ⑤点击筛选Data列,然后直接点“确定”后即可
- 直接合并导入
- 获取Web数据
- 网页是有规律的表格数据、多表格数据
- 使用示例添加表
- Power Query 使用
- 行删除
- 全是空值的行
- 部分为空值的行
- 重复数据的行
- 错误数据的行
- 列操作
- 列类型的转化
- 列值的替换
- 列的拆分
- 列的重命名
- 列的合并
- 重复列
- 条件列
- 自定义列
- 分组聚合
- 基本统计
- 高级统计
- 组合操作
- 追加查询
- 同Columns,上下拼接
- 合并查询
- 同Index,左右拼接
- 追加查询
- 行列变化
- 透视列
- 列值→列标题
- 逆透视列
- 列标题→列值
- 透视列
- 行删除
- 数据模型
- 模型关系
- 事实表
- 键值列
- 维度列
- 度量列
- 键值列
- 维度表
- 多属性列
- 事实表
- 管理关系
- 一对一关系
- 一对多关系
- 多对多关系
- 模型关系
- DAX表达式
- 新建度量值
- 注:创建好的度量值不会出现在表列里
- 快速度量值
- 新建列
- 通过DAX函数在表里创建新列
- 新建表
- 创建维度表
- Values
- values(表[列])
- 返回的是该列唯一值的新表
- values(表)
- 复制原表
- values(表[列])
- Distinct
- distinct(表[列])
- 返回的是该列唯一值的新表
- distinct(表)
- 返回具有不重复行的新表
- distinct(表的表达式)
- 针对“表的表达式”返回该表具有不重复行的新表
- distinct(表[列])
- Values
- 创建交叉联合表
- 类似合并查询,左右合并
- NATURALINNERJOIN(Table,VALUES(表[列标题]),...)
- natural inner join
- 创建纵向合并表
- 类似追加查询,上下合并
- union(Table1,Table2,...)
- 创建维度表
- 静态日期表
- 日历Calendar
- calendar(startdate,enddate):根据开始时间和结束时间生成顺序的时间列
- 例:表 = Calendar(date(2024,1,1),date(2024,1,30))
- 基本日期内容
- year([date]):获取日期对应的年份
- date(2022,01,01):获取日期格式的数据
- querter([date]):获取日期对应的季度
- month([date]):获取日期对应的月份
- day([date]):获取日期对应的天
- weekday([date],2):获取日期对应的周几,后面有type参数
- weeknum([date],2):获取日期对应的第几周
- calendar(startdate,enddate):根据开始时间和结束时间生成顺序的时间列
- 日期表addcolumns
- add columns: 是针对一张表来添加列
- format是格式化数据函数
- 例:表 = addcolumns(calendar(date(2022,01,01),date(2022,12,31) , "年份",YEAR([Date]) , "星期",FORMAT([Date],"AAA"),...):其中“星期列”输出是:周几
- 日历Calendar
- 动态日期表
- firstdate(某表中的日期列):获取日期最小值
- lastdate(某表中的日期列):获取日期最大值
- 例:addcolumns(calendar(firstdate(table[列]),lastdate(table[列])) , "年份",YEAR([Date]) , "星期",FORMAT([Date],"AAA"),...):其中“星期列”输出是:周几
- 创建空表函数
- selectcolumns
- select columns : 是基于一张表来创建新的列,而不是基于原表添加列
- SELECTCOLUMNS(表,"名称1","表达式1","名称2","表达式2"...)
- 例:表 = selectcolumns('table1' , "销售日期" , 'table1'[消费日期] , "消费时间" , 'table1'[消费时间] )
- selectcolumns
- 新建度量值
- DAX使用场景及函数
- 总和
- sum
- sum (table[列标题])
- sum
- 计数
- counta
- counta (table[列标题])
- distinctcount
- distinct count
- distinctcount (table[列标题])
- counta
- 相除
- divide
- divide(分子,分母,[分母为0或空时返回的值,默认为空])
- divide
- 排序
- all
- 返回表中所有的行或列的所有值,忽视应用的筛选器
- ALL([TableName Or ColumnName],[ColumnName]... ...)
- rankx
- 要与all函数联合使用,即去除筛选器的应用后进行排序
- rankx(表,表达式)
- 按照表达式进行排序
- 例:门店排序 = RANKX( ALL('门店信息'[商圈类型]) , '度量值表'[总营收金额] )
- all
- 占比
- calculate
- calculate(表达式,[筛选器1],[筛选器2]... ...)
- 针对表达式进行对数据的筛选应用
- 例:CALCULATE('度量值表'[总订单量] , '2022年点播订单表'[套餐名称]="单曲")
- 取出单曲的总订单量值
- divide
- 例:占比量 = DIVIDE(CALCULATE('度量值表'[总订单量],'2022年点播订单表'[套餐名称]="单曲"),'度量值表'[总订单量])
- calculate(表达式,[筛选器1],[筛选器2]... ...)
- calculate
- 累计
- TOTALYTD年度累计
- TOTALYTD(表达式,日期列,[筛选器],[截止日期])
- 按照时间列累计当前年统计
- 例:年累计营收 = TOTALYTD('度量值表'[总营收金额],'动态日期表'[Date])
- TOTALYTD(表达式,日期列,[筛选器],[截止日期])
- TOTALQTD季度累计
- TOTALQTD(表达式,日期列,[筛选器],[截止日期])
- 按照时间列累计当前季度统计
- TOTALQTD(表达式,日期列,[筛选器],[截止日期])
- TOTALMTD月度累计
- TOTALMTD(表达式,日期列,[筛选器],[截止日期])
- 按照时间列累计当前月统计
- TOTALMTD(表达式,日期列,[筛选器],[截止日期])
- TOTALYTD年度累计
- 同比与环比统计
- 同比
- SAMEPERIODLASTYEAR(日期列):返回去年同期数据
- 环比
- DATEADD(日期列,偏移量,偏移单位):根据指定的偏移单位和偏移量返回日期
- "日期列"参数指的是包含日期的列
- "偏移量"参数指定的是从日期列中需要添加或减去的时间间隔数
- "偏移单位"参数指的是Day,Month,Quarter,Year按照哪个时间维度偏移
- DATEADD(日期列,偏移量,偏移单位):根据指定的偏移单位和偏移量返回日期
- 同比
- TOPN统计
- TOPN(N值,表名,[度量值表达式],[升降序]):根据表达式来从表中获取TOPN结果
- 动态TOPN统计
- 新建参数
- 总和
- 可视化
- 对比分析图
- 表
- 矩阵
- 条形图
- 柱状图
- 组合图
- 丝带图
- 如:不同月份不同套餐的订单的数据(含排名)
- 趋势分析图
- 折线图
- 分区图
- 堆积图
- 占比分析图
- 饼图
- 环形图
- 树状图
- 用于展示较多分组信息
- 百分比堆积图
- 相关性分析图
- 散点图
- 气泡图
- 反映两个指标的相关性 和 数据的大小指标,还有播放轴
- 地图分析图
- 地图
- 着色地图
- 形状地图
- 需要各国家的josn文件
- 关键指标分析图
- 卡片图
- 多行卡图
- 仪表盘
- 展示目标值与实际值之间的对比情况
- KPI图表
- 要与切片器联动
- 过程分析图
- 漏斗图
- 瀑布图
- 数据随着时间或者过程的改变而不断变化的过程
- 原因分析图
- 分解树
- 按照不同的维度将指标不断的拆解从而发现各个维度可能存在影响指标的问题
- 分解树
- 图表设计交互操作
- 筛选器
- 切片器
- 钻取
- 针对层级结构
- 工具提示
- 可显示图
- 编辑交互
- 突出显示(默认)
- 筛选显示
- 无
- 主题
- 书签
- 按钮
- 对比分析图
四、结束语
作为初涉 PowerBI领域的初学者,我深刻明白自己的笔记与总结或许仍存有诸多不足甚至错误之处。在此,诚挚地恳请各位读者在阅读的过程中,一旦发现任何问题或者有更为精妙的建议,务必不吝赐教。您的指正无疑将成为我不断进步的强劲动力,更是我们一同学习、携手成长的坚实基石。
本文的创作凝聚了无数的心血与努力,实属不易。在此,恳请各位大佬们动动你们那无比宝贵的小手指,给予点赞、收藏以及关注!衷心感谢!后续我还会持续分享相关的学习资料与精彩内容哦。让我们在PowerBI的知识海洋中一同遨游,共同探索数据库的奥秘,为提升我们的数据管理能力和技术水平而不懈努力。期待与大家共同开启这场充满挑战与机遇的学习之旅,共同书写属于我们的数据库传奇。