![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Power BI 学习与实践笔记
记录学习和实践Powerbi过程中的经验
森森森林呀
这个作者很懒,什么都没留下…
展开
-
8.23 PowerBI系列之DAX函数专题-报表性能优化
(2)将更多复杂的数据清晰任务交给数据源端处理,比如链接的数据源是数据库,那么数据查询性能的调优和数据清晰任务可以交给SQL处理,SQL处理完的结果再导入Power BI。(1)可以使用dataflow数据流(输一个数据表/源由多个报表使用)或共享数据集(一个数据集由多个报表使用)(4)规范度量值存储,存储在单独的度量值管理表中,方便查找和管理。(6)尽量使用显式度量值,减少对快速度量值和隐式度量值的依赖。(2)尽量避免使用DAX迭代器函数(如SUMX,MAXX)原创 2024-05-30 17:22:48 · 360 阅读 · 0 评论 -
8.22 PowerBI系列之DAX函数专题-盈亏平衡分析
1 单位变动成本 = generateseries(0,100,1)2 固定成本 = generateseries(0,50000,1)3 毛利率 = generateseries(0,0.4,0.01)一、用参数设置固定成本,单位变动成本,与毛利率。原创 2024-05-30 17:18:48 · 355 阅读 · 0 评论 -
Power BI-云端报表定时刷新--ODBC、MySQL、Oracle等其他本地数据源的刷新(二)
(2)tnsname.ora文件中配置监听(listener)或在图形化界面中配置监听;1.首次使用应安装对应数据库的ODBC驱动程序,Mysql的ODBC驱动需要手动安装。(3) 在powerbi或者gateway中配置时,将监听的名称作为参数配置进去;一些小众的数据源无法直接连接,需要通过微软系统自带的应用“ODBC数据源”连接。1.Powerbi与Gateway第一次连SQL 需要安装连接插件。(1)安装Gateway的电脑需要安装Oracle客户端;2.在web服务中进行数据源的配置。原创 2023-07-29 18:51:49 · 1327 阅读 · 0 评论 -
Power BI-网关设置与云端报表定时刷新(一)
1.登录到Powerbi 在线服务–设置–下载–网关–下载标准模式–得到PowerBIGatewayInstaller.exe文件。网关是将本地数据传输至云端的桥梁,不仅Power BI能使用,其他微软软件也能够使用。(1)选择网关、填写连接名称、选择连接类型。我们发布在云上的报表,发布后是静态的,不会自动刷新。2.关于网关集群的知识补充,多网关可以通过多硬件或者虚拟机实现。3.网关管理界面可以管理用户,设置用户权限。1.从设置中进入到网关管理界面。(1)本地数据源增删改后;(2)填写用于身份验证的。原创 2023-07-29 17:30:41 · 1831 阅读 · 0 评论 -
8.11 PowerBI系列之DAX函数专题-TopN中实现N的动态
1 ranking by amount = rankx(allselected(order_2[产品名称]),[total amount])Topn的值 = generateseries(1,15,1)var v_topN-no = [topN参数 值]3 将度量值2放入视觉对象筛选器,条件是等于1。(2)DAX 函数创建。原创 2023-07-28 21:04:18 · 574 阅读 · 0 评论 -
8.10 PowerBI系列之DAX函数专题-TopN中实现动态指标
3 将度量值放入视觉对象筛选器中。原创 2023-07-28 21:03:48 · 527 阅读 · 0 评论 -
8.9 PowerBI系列之DAX函数专题- TopN和BottomN和otherN的实现
返回的表的世系基于 table_expression1 中的列,与第二个表中列的世系无关。例如,如果第一个 table_expression 的首列有模型中基本列 C1 的世系,则 Except 将基于第二个table_expression 首列中的值的可用性来减少行,并保持基本列 C1 的世系不变。如果某行仅出现在 table_expression1 中,则该行及其重复项将出现在结果集中。返回的表不包括与 table_expression1 相关的表中的列。返回的行集取决于两个表达式的顺序。原创 2023-07-26 08:33:49 · 840 阅读 · 0 评论 -
8.8 PowerBI系列之DAX函数专题-分组内排名的实现和理解迭代函数
【代码】8.8 PowerBI系列之DAX函数专题-分组内排名的实现和理解迭代函数。原创 2023-07-26 08:33:18 · 1148 阅读 · 0 评论 -
8.7 PowerBI系列之DAX函数专题-排名逻辑的4种实现-rankx详解
任何返回单个标量值的 DAX 表达式。为表的每一行计算表达式以生成所有可能的值来进行排名。(可选)任何返回单个要查找其排名的标量值的 DAX 表达式。请查看备注部分,了解在表达式中未找到 value 时的函数行为。(可选)指定如何对 value 进行排名的值,从低到高或从高到底。任何返回已计算其表达式的数据库表的 DAX 表达式。忽略 value 参数时,将改用当前行的表达式值。(可选)定义存在等同值时如何确定排名的枚举。原创 2023-07-26 08:33:00 · 2007 阅读 · 0 评论 -
8.6 PowerBI系列之DAX函数专题-非日期类型的累计聚合
注意,上述实现方式在创建该度量值时使用了实现创建好的产品表,由于该表的上下文是创建时的上下文,即计算销售额排名是以原表为基础,而非外部筛选器筛选过的表为基础,因此在存在其他外部筛选器的情况下,这种无法合并外部上下文的特性会导致度量值的计算错误。1)按照product表里的"amt"列计算按照销售金额排名的位次度量值 cnt大于等于current(有多少产品的销售金额大于当前商品);(1)在product表中添加按照产品名称加总的金额列,命名为"amt";(1)在power query中添加列-添加索引列;原创 2023-07-24 11:33:04 · 440 阅读 · 0 评论 -
8.5 PowerBI系列之DAX函数专题-dax列转行vs矩阵列转行和逆透视
1.用power query实现:在power query-转换-逆透视列中将原始数据进行列销售数量,列销售金额进行逆透视。然后在报表页面将逆透视的列放到行上。1)创建一个辅助表,单一列,包含销售数量,销售金额两个值;3)拓展:矩阵中使列在行上显示。使度量值在行上呈现,如下图。原创 2023-07-24 11:24:47 · 1412 阅读 · 0 评论 -
8.4 PowerBI系列之DAX函数专题-为矩阵的行列分组高亮显示不同颜色
var max_selected_year = maxx(allselected('订单表‘),‘订单表’[年份])selectedvalue(‘产品表’[商品类别])=max_selected_year,度量值 color of year =区分年度和级次设置颜色,效果如下。原创 2023-07-24 11:24:30 · 666 阅读 · 0 评论 -
7.13 PowerBI系列之DAX函数专题-日期分析-按工作日计算日期差
按照工作日进行发货的效率分析。原创 2023-05-14 20:49:24 · 1326 阅读 · 0 评论 -
7.12 PowerBI系列之DAX函数专题-实现两个日期列的单位筛选
两个字段的数据都需要落在所选择的范围中,如下图的入职日期与离职日期都需要落在切片器的范围内,即入职日期大于开始日期,离职日期小于结束日期。1.创建日期表,不用和事实表建立关系;3.将度量值应用到数据筛选器。2.创建度量值返回标识;原创 2023-05-14 20:49:06 · 1071 阅读 · 0 评论 -
6.15 PowerBI系列之DAX函数专题-值合并、列合并、表合并concatenatex
filters返回被当前筛选上下文筛选的值 - 现实的切片器中的值。values返回的是筛选上下文中的可见值 - 实际数据有的值。orderBy_expression 按照哪一列排序。delimiter 将计算结果连接起来的分隔符。expression 用于计算的表达式。order 排序方式,升序或降序。table 取字段的表。原创 2023-04-18 20:43:10 · 4022 阅读 · 0 评论 -
7.6 PowerBI系列之DAX函数专题-周的同比环比与周聚合
系统 2 - 包含一年第一个星期四的周是一年的第一周,编号为“第 1 周”。此系统是 ISO 8601 中指定的方法,通常称为欧洲周编号系统。系统 1 - 包含 1 月 1 日的周是一年的第一周,编号为“第 1 周”。上面的代码中涉及到了selectedvalue,附上官方文档。实现如下图的周同比环比分析。原创 2023-04-28 16:19:55 · 2287 阅读 · 0 评论 -
6.16 PowerBI系列之DAX函数专题 -lookupvalue VS related
对于临时关联的列,无法以’表名’[列名]引用,因此在关联后直接进行条件比较进行筛选,这是DAX底层语言是类SQL语言的体现,及查询实际上是一个过程,而过程也是可以操作的。可以联系values()返回表的函数中,可以用原表原列名进行引用(因为这实际上也是一个可操作的查询,亦即过程)因此,该函数只能在当前行上下文明确的计算列表达式中使用,或者在使用表扫描函数的表达式中用作嵌套函数。2,.在Excel中的VLOOKUP支持一对多,多对多,只返回匹配到的第一个值。1.related只支持关联到有关系的表。原创 2023-04-18 20:44:35 · 1408 阅读 · 0 评论 -
6.12 PowerBI系列之DAX函数专题-表函数filters和values区别,VALUES和DISTINCT的区别
filters返回被当前筛选上下文筛选的值 - 现实的切片器中的值。values返回的是筛选上下文中的可见值 - 实际数据有的值。将计算结果连接起来的分隔符。都是排重之后,返回一个单列的表。原创 2023-04-16 17:53:27 · 734 阅读 · 0 评论 -
6.9 PowerBI系列之DAX函数专题 -重点之HASONEVALUE和ISINSCOPE区别
/仔细观察图1 会发现帽子的产品大类对应的haisonevalue订单金额有值,而手套对应的单元格为空,这是因为手套大类对应的产品名称有多个,而帽子只有一个。if(hasonevalue(order_2[产品名称]),[销售金额],blank())当指定列只有一个值时返回该值,接受间隔参数。用来判断当前筛选上下文中是否存在唯一值。原创 2023-04-17 11:41:29 · 791 阅读 · 0 评论 -
7.1 PowerBI系列之DAX函数专题-日期表与事实表关联问题
说明表关系建模的时候是用的原始日期时间数据做的关联,能关联上的数据只是具体某一天的0点0分0秒。,此时和calendar中的date列关联,会出现大量数据无法关联的情况(统计值为空的行),4 解决方法:在powerquery中将订单日期处理为只包含年月日的格式,见订单表2。重点:日期格式和日期时间格式关联容易造成计算结果不对,即使在数据视图调整了日期格式。2 将calendar表的date列和订单表的订单日期关联。3 订单表的订单日期是。原创 2023-04-22 00:26:04 · 1507 阅读 · 0 评论 -
7.2 PowerBI系列之DAX函数专题-同比环比分析(dateadd)
按照月份序号对数据进行排序,结果如图所示。,否则时间智能函数可能无法准确计算。dateadd函数生成日期。原创 2023-05-04 08:23:04 · 2931 阅读 · 0 评论 -
6.14 PowerBI系列之DAX函数专题-重点之集合函数UNION、INTERSECT、 except、crossjoin、generate
分----------------------割----------------------线。年月(3*12=36行)原创 2023-04-17 11:51:27 · 810 阅读 · 0 评论 -
6.13 PowerBI系列之DAX函数专题-summarize,rollup和summarizecolumns以及groupby
summarizecolumns(一个query)>summarize>(两个query语句)>groupby(复杂一些),powerbi视觉对象后台生成的DAX表达式也是默认使用summarizecolumns。filter(‘sales’,‘sales’[产品类别]=“配件”),5.rollup做小计在summarize中使用。4.分组函数中的列可以来自模型中的不同表;sum(‘sales’[订单金额])) //只取配件的汇总 (图4)‘sales’[产品子类别],‘sales’[产品类别],原创 2023-04-16 17:55:05 · 1314 阅读 · 0 评论 -
6.18 PowerBI系列之DAX函数专题 - FIRSTNOBLANK 和 FIRSTNOBLANKVALUE
当时间智能函数使用时,日期按照顺序排列后,取第一个(最后一个)非空的值,这些函数是表函数,返回包含计算出的第一个值的单列和单行的表。它返回升序排序的第一个(最后一个)值。原创 2023-04-19 13:02:29 · 653 阅读 · 0 评论 -
6.20 PowerBI系列之DAX函数专题 -重点之error和iferror函数
iferror函数判断当前表达式是否出现错误,如果出现错误就进行其他操作。视觉对象引用上述度量值时,出现错误后点击请参阅详细信息时会弹出这个对话框。error函数用于发生异常情况时的自定义错误提示信息。原创 2023-04-21 04:22:29 · 586 阅读 · 0 评论 -
7.9 PowerBI系列之DAX函数专题-趋势图中根据最近月份取topN
视觉对象筛选器按照度量值的前几名进行筛选。2.按照特定期间的前几名画出全年趋势图。1.需求1可以在筛选器上直接筛选。1.按总量的前几名画出趋势图。原创 2023-05-02 19:50:47 · 351 阅读 · 0 评论 -
7.5 PowerBI系列之DAX函数专题-日期分析-计算任意所选月份的环比
根据切片器选择结果显示当月销售额和当前所选范围内上月销售额与环比。原创 2023-04-23 11:12:01 · 2226 阅读 · 0 评论 -
7.4 PowerBI系列之DAX函数专题-期初期末库存分析
商品库存的数量,每天将不同的商品数量汇总在一起,但是月汇总不能将每天的库存都加在一起,我们应取月末的库存余额。使用lastdate和closingbalancemonth等函数实现。原创 2023-04-23 11:12:26 · 1240 阅读 · 0 评论 -
7.8 PowerBI系列之DAX函数专题-计算季度末或者季度月末的数据
CLOSINGBALANCEQUARTER、OPENINGBALANCEQUATER可用于取出期初期末的数据。实现展示季度末最后一个月份的销售数据。原创 2023-05-02 19:50:29 · 936 阅读 · 0 评论 -
7.7 PowerBI系列之DAX函数专题-指定月份的同比环比和季度环比
dax的上下文影响无处不在,在报表交互层面,用户可见的只是选中了的某个具体日期,但是在原始数据层面,这个日期是一个单元格,拥有自己的行上下文;在模型层面,ta处于某个关系的一端,拥有自己的筛选上下文,因此能灵活对应到其他不同字段;在报表层面,前两者被嵌入了视觉对象的代码块中,综合形成了最终的交互结果。这种隐式规则是powerbi报表可交互的核心原理。却不能仅从用户自己写的代码中被窥见,所以在刚开始学习的时候觉得难以理解。我觉得GPT暂时学不会ta哈哈哈。原创 2023-04-28 16:19:57 · 3624 阅读 · 0 评论 -
6.19 PowerBI系列之DAX函数专题 - 重点使用VAR变量表中的列
3.可通过表函数取列:filter,selectedcolumns。4.其他个别函数:concatenatex。2.可通过迭代聚合函数取列:sumx;1.无法直接从变量表中的取列;原创 2023-04-21 04:19:01 · 1109 阅读 · 0 评论 -
7.3 PowerBI系列之DAX函数专题-时间智能-累计聚合、滚动聚合、移动平均
使用该函数可以按标准日期间隔(如日、月、季度或年)筛选表达式。number_of_intervals,一个整数,指定要添加到 dates 或从 dates 中减去的时间间隔数。该函数返回一个表,此表包含一列日期,日期以指定的开始日期开始,并按照指定的日期间隔一直持续到指定的数字。3.使用datesytd函数可以自定义自己公司的财年范围,不指定年结束日的情况,默认是从1月到12月。1.power bi中使用时间智能函数一定要有一个日期连续的日历辅助表calendarauto()dates,日期列。原创 2023-04-22 00:26:38 · 1807 阅读 · 0 评论 -
6.17 PowerBI系列之DAX函数专题 -BLANK行产生的原因以及与BLANK()相关的函数COALESCE
COALESCE很像数据库中的NVL或者ISNULL函数,当第一个表达式为空时,返回第二个表达式的值。if也能实现类似的功能。建模关系中,有一端的信息被删除了(图1)原创 2023-04-19 13:01:17 · 809 阅读 · 0 评论 -
7.11 PowerBI系列之DAX函数专题-动态任意区间段做数据对比
2.两个日期表之间需要有非活跃的关系,在计算区间2的销售额时才动态激活,这样我们区间2 的切片器才不会影响区间1 的计算;1.需要又两个日期表,但是只有一个日期表和订单表有filter关系。动态对比任意指定的两个区间的数据,如下图。原创 2023-05-04 08:23:34 · 882 阅读 · 1 评论