Power BI的基本操作(一)

简介: Power BI的基本操作

1、度量值与关系模型

1、查看关系模型

  1. 导入数据


点击左侧【数据】,可以查看表中数据。


2.关系模型


可以看到,商品表和销售表是一对多的关系;门店和销售表也是一对多的关系。


2、创建度量值

1.度量值概念


度量值就是对表中数据求和、最大、平均等。如果想获取所有销售数量的最大、最小,在Excel中也非常方便来做,但是如果想获取某天销售额的最大、最小,就不是很方便了,可以使用PowerBI。


2.创建度量值


度量值一般都放到一张表中。


点击【输入数据】,将表名称修改为度量值,则在字段菜单可以看到有一个表为“度量值”,里面的列是空的。


选中【度量值】表,点击【新建度量值】,计算

总销售数量 = sum('销售表'[销售数量]) 
最大销售数量 = MAX('销售表'[销售数量])
最小销售数量 = min('销售表'[销售数量])
平均销售数量 = AVERAGE('销售表'[销售数量]) 
总订单数 = COUNTROWS('销售表') 

3.在【可视化】菜单中选择【矩阵】,拖动【门店名称】到行,拖动【总销销售数量】、【平均销售数量】、【总订单数】等到值。


4.修改图标的样式,如添加标题、颜色、字体。拖动销售表【日期】到行,可以删除日期中不想要的如(季度、月)等信息,也可钻取显示。


2、向下钻取与数据导出

  1. 获取数据


  1. 在视图窗口中选中【饼图】,将【品种】、【品牌】、【型号】依次拖到到图例,【销量】拖动到值


  1. 修改【格式】–【详细信息】–【大小】和标签位置


  1. 钻取功能


筛选

5.选择【筛选器】进行筛选。


导出

选择【文件】-【导出】


选择指定路径导出,这样其他工作人员就可以直接打开你导出的pbit。


如果想在打开的pbit文件中导出数据,直接点击钻取一行最后的[…],选择【导出数据】。


如果想获取全部数据,选择左侧数据,右键选择【复制表】就可以复制全部数据。如果想获取某列数据选中列侯选择【复制】即可。


3、新建列与关系函数

示例-获取每件商品的销售金额


每件商品的销售金额=商品的单价*商品的数量


1、LOOKUPVALUE

语法:

语法:
LOOKUPVALUE(要返回的值,哪张表中搜索哪列,自己表根据哪列查找,[查找的列],[查找的值]…[当返回值有0个或多个时,默认返回的值])

返回满足一个或多个列匹配条件所对应的值

参数:

第一参数:包含要返回的值的现有列的名称。 它不能是表达式。

第二参数:现有列的名称(要查找的范围),可以是第一参数表中的列,也可以是相关表中的列,但不能是表达式

第三参数:要在第二参数中查找的值

第四、五…参数:(可选)同第二、三参数,必须成对出现

最后一个参数:(可选)当满足查找条件返回的值为0个或多个时,默认返回的值。


2、使用同表中的数据新建列

在销售表中【新建列】为【售价】

售价 = LOOKUPVALUE('商品表'[售价],'商品表'[商品编码],'销售表'[商品编码])


在销售表中【新建列】为【销售金额】

销售金额 = '销售表'[销售数量]*'销售表'[售价] 


2、使用关系函数新建列

上面的方式可以实现,但是必须先创建【售价】这列,如果不想创建【售价】我们该怎么办呢?可以使用函数:

多端找一端
RELATED

在销售表中【新建列】为【销售金额2】

销售金额2 = [总销售数量]*RELATED('商品表'[售价])


示例-每件商品有多少订单

一端找多端
RELATEDTABLE

在商品表中【新建列】

订单数 = COUNTROWS(RELATEDTABLE('销售表'))


4、Calculate引擎

1、Calculate引擎

1、筛选单个

CALCULATE(计算器,筛选器)
计算器=度量值

示例-电视销量


新建度量值【电视销量】


电视销量 = CALCULATE([总销售数量],'商品表'[商品编码]="A03") 


2、筛选多个

筛选多个使用in 或 not in


不包含电视的销量


不包含电视的销量 = CALCULATE([总销售数量],'商品表'[商品名称] in {"A01","A02","A04"})


冰箱的销售数量使用not in实现


冰箱的销量 = CALCULATE([总销售数量],not '商品表'[商品编码] in {"A01","A03","A04"})

3、筛选多个条件

示例:商品编码等于“A03“和进价=2200

多条件 = CALCULATE([总销售量],'销售表'[商品编码]="A03" ,'商品表'[进价]=2200)

5、Calculatedtable筛选表

1、Calculatedtable筛选表

示例:电视的所有销售订单创建一张新表


选择【表工具】中【新建表】

电视机销售表 = CALCULATETABLE('销售表','销售表'[商品编码]="A01" )


2、切片器的使用

如果想根据商品名称查看商品销量,可以使用【切片器】


1.选择【矩阵】,拖动【门店】到行,【总销售量】到值


2.选择【切片器】,拖动【商品名称】到行


3.修改显示样式,



6、高级筛选器Filter与Values人工造表

返回一个表,用于表示另外一个表或表达式的子集,不能单独使用


Filter函数对筛选的表进行横向的逐行扫描,这样的函数叫迭代函数


1、基本使用

高级筛选器Filter。

Filter(‘表’, 筛选条件)

返回:表

Countrows(Filter(表,筛选条件))

示例-筛选“电视”的订单数量


新建度量值:电视的订单数量

电视机的订单数量 = COUNTROWS(FILTER('销售表','销售表'[商品编码]="A03" ))


2、什么时候使用Filter函数呢?

示例:电视机的销量

电视机销量1 = CALCULATE([总销售量],'商品表'[商品编码]="A03" )
电视机销量2 = CALCULATE([总销售量],FILTER('商品表','商品表'[商品编码]="A03" ))


可以看到实现的效果是一样的,那什么时候使用Filter、什么时候不使用Filter呢?


在Calculate函数中的直接筛选条件里,我们只能输入:

‘表’[列] = 固定值       或  ‘表’[列] <> 固定值
‘表’[列] >= 固定值    或 ‘表’[列] <= 固定值
‘表’[列] > 固定值    或 ‘表’[列] < 固定值

但是遇到如下情况,就要使用Filter函数

[列]=[度量值]、 [列]=公式、[列]=[列]
[度量值]=[度量值]、 [度量值]=公式、[度量值]=固定值

示例-各门店电视销量大于40的

总销售数量 = sum('销售表'[销售数量]) 
电视销量 = CALCULATE([总销售数量],'商品表'[商品编码]="A03") 
filter电视销量 = CALCULATE([电视销量],FILTER('门店',[电视销量]>40))


3、Values人工造表

Filter函数中使用的表必须是一端的表,我们使用【门店】可以显示,使用【销售表】可以看到没有办法显示,这时候可以使用Values函数人工造表

filter电视机销量2 = CALCULATE([电视机销量1],FILTER('销售表',[电视机销量1]>40))


filter电视机销量3 = CALCULATE([电视机销量1],FILTER(VALUES('销售表'[商品编码]),[电视机销量1]>40))


7、上下文

1、新建列是行上下文


可以看到在每行上都显示746


2、度量值是筛选上下文

创建【度量值】总销售数量



可以筛选各门店的销售数量。


总结:


  1. 度量值天生具有筛选功能
  2. 新建列是行上下文,行上下文没有筛选功能
  3. 想让行上下文实现筛选功能就要在外套一个calculate函数


8、x系列函数

x系列函数有:SUMX、AVERAGEX、MINX、MAXX用法相同。


语法:


Sumx('表名',算术表达式)
  1. 逐行扫描
  2. 执行运算,每一行都会返回一个值
  3. Sumx函数记住了每一行返回的值,最后把所有的值相加求和

示例:在【销售表】新建列【毛利1】

毛利1 = SUMX('表',[销售金额]-[销售成本])


可以看到毛利1这列返回的值不是该销售记录的毛利,而是对所有毛利进行求和。如果想获取所对应的毛利,则需要添加calculate函数


毛利2 = CALCULATE(SUMX('表',[销售金额]-[销售成本]))

9、Earlier函数

Earlier函数:获取当前行

Earlier(表[列])

示例:某商品累计销量


filter('销售表','销售表'[货号] =earlier('销售表'[货号]))
'销售表'[销售日期]<= earlier('销售表'[销售日期])
销售累计 = sumx(FILTER(FILTER('销售表','销售表'[货号] =earlier('销售表'[货号])),'销售表'[销售日期]<= earlier('销售表'[销售日期])),'销售表'[销量])


10、安全除法与逻辑判断

1、安全除法


可以看到分母为0 时候,没有结果。安全出发指如果分母为0时候,结果为0

安全除法 = DIVIDE([分子],[分母],0)


2、逻辑判断

如果显示数据表头没有



选中【字段】中的表,右键【编辑查询】,选择【将第一行用作标题】,点击【关闭并应用】



1.IF(logical_test>,<value_if_true>, value_if_false)
  --检查是否满足作为第一个参数提供的条件。 如果该条件为 TRUE,则返回一个值;
    如果该条件为 FALSE,则返回另一个值,用法与excel类似
称呼 = IF('称呼'[性别]="男","先生","女士")


2.SWITCH(<expression>,条件1,值1,条件2,值2)  --根据值列表计算表达式,
                                             并返回多个可能的结果表达式之一。

示例:switch表中新建列 【月份】

月份 = SWITCH('switch'[Column1],
1,"一月",
2,"二月",
3,"三月",
4,"四月",
5,"五月",
6,"六月",
7,"七月",
8,"八月",
9,"九月",
10,"十月",
11,"十一月",
12,"十二月",
"未能识别")

注意:如果表达式比较长,可以按住【Alt】+【Enter】进行换行

ISBLANK(column) --判断该列中某个值是否为空
ISNONTEXT(column)  --检查某个值是否不是文本
ISNUMBER(column)  --检查某个值是否为数字
ISTEXT(column)    --检查某个值是否为文本
ISLOGICAL(column) --检查某个值是否是逻辑值

11、文本函数

1、find

find(查找哪个字符,去哪里查找,从哪一个位置查找,如果找不到返回什么值)  
第三个和第四个参数可以省略

示例:根据商品名称得出是上装还是下装


可以看到上装的商品种类多,而下装中包含“裙”或者“裤”的

裤 = find("裤",'商品表'[商品名称],1,100 )
裙 = find("裙",'商品表'[商品名称],1,100)
下装或上装 = if (FIND("裤",'商品表'[商品名称],1,100) <> 100 || find("裙",'商品表'[商品名称],1,100) <> 100,"下装","上装") 

2、search

search(查找哪个字符,去哪里查找,从哪一个位置查找,如果找不到返回什么值)
第三个和第四个参数可以省略

注意:find查找字符区分大小写,search不区分大小写,其它功能完全一样


示例:在商品表中根据商品名称获取是“上装”还是“下装”


3、left、right、mid

left从左向右取=left([字段名],取几个字符)
right从右向左取=right([字段名],取几个字符)
mid从中间开始取=mid([字段名],从第几个取,取几个)
字符长度= len([字段名])

示例:

前5位 = LEFT('身份证号'[身份证号],5 )
后5位 = RIGHT('身份证号'[身份证号],5 )
中间五位 = MID('身份证号'[身份证号],3,5 )

4、其他

REPLACE(),SUBSTITUTE()  --字符串替换函数
TRIM(),LOWER(),UPPER()
目录
相关文章
|
存储 数据可视化 数据挖掘
【数据可视化和BI技术】数据可视化和BI技术的原理、方法和工具,如Tableau、Power BI
【数据可视化和BI技术】数据可视化和BI技术的原理、方法和工具,如Tableau、Power BI
265 0
|
6月前
|
BI
Power BI获取SharePoint List列表后,如何展开List/Table中的字段,以及使用逗号拼接为一个字符串
在Power BI中,从SharePoint List获取数据时遇到Table和List混合的数据源,直接展开会导致“笛卡尔积”效应,生成过多行。目标是保持行数不变,将Table中的字段与List值用逗号分隔显示在同一行。解决方法包括:1) 添加新列,从Table中提取List的Column2值;2) 使用Text.Combine函数合并List中的值。具体操作步骤包括选择列并自定义新列,然后展开List并以逗号分隔。通过这些步骤,可以将Table转换为所需的字符串格式。完整的Power BI Query代码展示了这一过程。参考链接提供了更多详情。
102 2
|
7月前
|
DataWorks 安全 数据库
DataWorks产品使用合集之在DataWorks中,使用Power BI Desktop来连接Hologres数据库需要设置白名单如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
134 2
|
7月前
|
运维 分布式计算 DataWorks
DataWorks产品使用合集之dataworks为子账号创建DataWorks访问密钥的基本步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
82 0
|
7月前
|
数据建模 BI 数据处理
Power BI案例-医院数据集的仪表盘制作
Power BI案例-医院数据集的仪表盘制作
|
7月前
|
数据可视化 数据建模 数据挖掘
Power BI案例-连锁糕点店数据集的仪表盘制作
Power BI案例-连锁糕点店数据集的仪表盘制作
|
7月前
|
BI 数据可视化 数据建模
Power BI案例-连锁糕点店数据集的仪表盘制作
Power BI案例-连锁糕点店数据集的仪表盘制作
|
7月前
|
SQL 数据可视化 数据建模
大数据分析利器之Power BI,你是否已经掌握?
大数据分析利器之Power BI,你是否已经掌握?
122 0
|
SQL 数据可视化 Oracle
「数据可视化」 Superset:穷人的Power BI
「数据可视化」 Superset:穷人的Power BI
|
存储 人工智能 数据可视化
「技术选型」Power BI vs Tableau vs Qlik的区别
「技术选型」Power BI vs Tableau vs Qlik的区别

热门文章

最新文章