https://zhuanlan.zhihu.com/p/109964336 ​今年是闰年,有星友问我,在Power BI中,2月29日的上年同期是怎么计算的? 这是个好问题,正好梳理一下,PowerBI时间智能函数是如何处理不规则日期的对比数据的. 以一个模拟的订单表数据为例,订单日期涵盖了2015年.2016年和2017年,其中2016年是闰年,添加一个相匹配的日期表与之建立关系, 先建立一个基础度量值: 收入 = SUM('订单表'[销售额]) 然后通过下面几个示例,来看看几个和2月29日…
https://zhuanlan.zhihu.com/p/79522456 对于PowerBI使用者而言,经常碰到的一个问题是,想把度量值放到坐标轴上,却发现无法实现.尤其是初学者,更是习惯性的想这么做. PowerBI星球嘉宾天行,摸索出了一个解决该问题的思路,请慢慢品读吧. 解决度量值不能作为坐标轴字段的问题 作者:天行 初入Power BI的门,很快就会被度量值和计算列的动态性吸引,进而义无反顾地跳进DAX的火坑中,然后……(省略号的内容留给曾经在坑中和正在坑中徘徊的各位自行填写吧 ) 如…
https://zhuanlan.zhihu.com/p/88528732 在各种经营分析报告中,我们常常会看到YTD,YOY这样的统计指标,这样的数据计算并不难,尤其是在PowerBI中,因为有时间智能函数的帮助,大大简化了这些计算,从而快速满足定期的报告需求. 下面就给你列出这些常用统计数据的度量值,帮你快速掌握各种期间数据的算法. 如果对时间智能函数不熟悉,可以先看看这篇文章: 一文帮你掌握时间智能函数 假设数据模型为一张订单表和一张对应的日期表,并已经建立了基础度量值: 收入 = SUM…
https://zhuanlan.zhihu.com/p/68183990 我在知识星球收到的问题中,关于表格和矩阵(以下统称表格)总计行错误算是常见的问题之一了,不少初学者甚为不解,在Excel透视表中很常见的总计,为什么到了更强大的 PowerBI 中,反而会出现这么低级的错误呢? 并且碰到这个错误,很多人都束手无策,不知道该怎么办,或者干脆设置为不显示总计行了,其实没有必要,本文就来介绍一下为什么会出现错误,以及解决的办法. 总计的计算逻辑 在PowerBI的表格中,每一个数据都是根据当前…
​https://zhuanlan.zhihu.com/p/128652582 经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如: 已知合同的生效日期和到期日期,特定日期的有效合同有多少? 已知店铺的开业日期和注销日期,截至目前正在运营的店铺有多少? 已知员工的入职日期和离职日期,如何计算每个月底的在职员工数量? 此类问题的解决思路类似,下面就以计算在职员工数量为例,看看如何利用PowerBI来处理. 模拟数据如下,员工表中有员工姓名.入职日期和离职日期: 实现步骤如下: 1,…
https://zhuanlan.zhihu.com/p/64422599 为什么要进行格式化? DAX 是一种函数式语言,正如我们已经学习的或者看到的,DAX 代码中总有一些函数带有几个参数,而参数还可以是其他函数所构成,参数的数量以及嵌套的层数决定了 DAX 代码的复杂度. 使用 PowerBI 进行数据分析时,有三层嵌套的 DAX 代码很常见,四层及以上的嵌套也经常需要用到,如果将所有的代码写在一行上,不做任何格式化的处理,将导致难以理解,即使是自己写的,回头再看或者修改也会一头雾水. 因…
​https://zhuanlan.zhihu.com/p/74732578 来源于知识星球中一个星友的问题,使用DAX在PowerBI中新建了一个表,如何为这个表添加索引列呢? 假如数据模型中只有一张订单表,需要从订单表中提取客户表,可以直接使用VALUES函数提取一个不重复客户表, 如何为这个表添加索引列? 因为DAX生成的表无法在PowerQuery中编辑,也就无法使用PQ的添加索引列的功能了,这里提供两个变通解决的方法. 方法一:使用ADDCOLUMNS在原DAX的基础上增加排名列 因为…
https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中可以用CALCULATE来写个度量值[上年同期], = CALCULATE([数量],SAMEPERIODLASTYEAR('日期表'[日期])) 这里SAMEPERIODLASTYEAR就是时间智能函数. 时间智能函数和普通函数的区别 时间智能函数与普通的时间或者日期函数的区别是, 日期函数直接依…
https://zhuanlan.zhihu.com/p/64422393 经常有朋友提出一个问题,然后我给出一个DAX之后,TA又不是很理解,反复多次沟通才能把一个表达式讲清楚.或者TA自己写了一个度量值,可是对输出结果无法理解:我想要的是A,为什么出来的是B? 为了帮助大家快速理解一个相对复杂的DAX,我把平时使用的方法拿出来分享如下. 为了介绍的简洁清晰,以及大部分人的可理解性,本文的DAX并不算复杂,重要的是理解的步骤和思路.(我理解的复杂DAX就是看起来比较长的.经过多层函数嵌套的.计…
https://zhuanlan.zhihu.com/p/103264851 ​本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之一,她深入浅出的介绍了PowerBI在数据分析中的应用,从各项指标的计算,到可视化展现,利用PowerBI发现问题分析问题,欢迎学习借鉴. PowerBI数据分析01:水平分析法 作者:海艳 首先,以财务报表分析为例,介绍通用的分析方法论,整体架构如下图所示: (点击查看大图) 接下来我会围绕这五种不同的方法论,进一步的阐述他们在 PowerB…
https://zhuanlan.zhihu.com/p/103264851 首先,以财务报表分析为例,介绍通用的分析方法论,整体架构如下图所示: (点击查看大图) 接下来我会围绕这五种不同的方法论,进一步的阐述他们在 PowerBI 中的应用,本文先谈一下水平分析法的应用. 01 | 水平分析法 水平分析法,指将反映企业当前状况的信息与前期或历史某一时期财务状况的信息进行对比,研究企业各项经营业绩或财务状况的发展变动情况的一种财务分析方法. ①绝对增减变动 同比环比 可以适用在收入.成本.利润…
https://zhuanlan.zhihu.com/p/102567707 ​前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行,但有细心的星友学习时发现,如果把总计行显示出来,会出现没有数据或者即使有数据,也是错误的情况,就像这样, 如果选择了其他日期,总计行可能还会显示空值,很明显这是错误的.为什么会这样呢? 在之前的文章中,已经多次介绍过,PowerBI表格的总计行,并不是上面各明细行的简单相加,而是遵循度量值的计算逻…
https://zhuanlan.zhihu.com/p/102567707 ​前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行,但有细心的星友学习时发现,如果把总计行显示出来,会出现没有数据或者即使有数据,也是错误的情况,就像这样, 如果选择了其他日期,总计行可能还会显示空值,很明显这是错误的.为什么会这样呢? 在之前的文章中,已经多次介绍过,PowerBI表格的总计行,并不是上面各明细行的简单相加,而是遵循度量值的计算逻…
​https://zhuanlan.zhihu.com/p/113113765 本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之二,她深入浅出的介绍了PowerBI在数据分析中的应用,利用PowerBI发现问题分析问题,欢迎学习借鉴. 她的上一篇分享: PowerBI数据分析实践01 | 水平分析法 PowerBI数据分析02:结构百分比分析法 作者:海艳 结构百分比分析法,又称纵向分析,是指同一期间财务报表中不同项目间的比较与分析,将财务报表中的某一重要项目(如资产负…
https://zhuanlan.zhihu.com/p/64418286 假设有一组数据, 已知每一个产品贡献的利润,如果要计算前几名产品的贡献利润总和,或者每一个产品和利润更高产品的累计贡献占总体的比例,就涉及到累计求和,数据量较小的情况下,在 Excel 中可以轻松实现,毕竟 Excel 是对单元格进行操作. 但是在 PowerBI 中,对整个字段运算很简单,而对每一行的数据进行筛选汇总,却需要动一点小心思,下面就以此表为例介绍几种常用的累计求和方式,并以此案例来进一步掌握几个函数的用法.…
https://zhuanlan.zhihu.com/p/66424209 SUMMARIZE函数非常强大,掌握以后表面上看也非常好用,所以我专门写篇文章介绍一下这个函数,至于是否一定要使用该函数,请看完再决定. SUMMARIZE,单纯从英文语义上看,是汇总.总结的意思,而它的功能,确实也就是汇总,它可以返回一个汇总表. 你可以从官方的文档中查询到该函数的说明, https://docs.microsoft.com/en-us/dax/summarize-function-dax 它的参数非常…
https://zhuanlan.zhihu.com/p/121773967 ​数据分析就是筛选.分组.聚合的过程,关于筛选,可以按一个维度来筛选,也可以按多个维度筛选,还有种常见的方式是,利用几个特定的维度值构成的表,作为条件表来筛选原始表. 也就是说,根据一个表,来筛选另外一个表,在PowerBI中怎么做,更具体一点,如何用DAX来完成呢? 假设原始数据记录为一张模拟的订单表: 还有一张表,命名为筛选条件表, 根据这个筛选表,来找出订单表中的记录,即找出1月2日产品A和B.以及1月3日产品B…
https://zhuanlan.zhihu.com/p/64421378 Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很多局限性.这里不讨论VLOOKUP,而是学习一个和VLOOKUP功能很相似的DAX函数:RELATED. RELATED RELATED是一个值函数,它的参数是一列,RELATED函数也是把一个表的数据通过匹配到另一个表中,前提是使用前应该在两个表之间建立关系. 表之间的关系图如下, 订单表的数据如…
​近期国际疫情愈演愈烈,在这个特殊的时期,一方面仍要照顾好自己.不要为疫情防治添乱,另一方面,也可以利用疫情数据提升自己的数据分析和可视化技能. 下面是我制作的几个可视化图表,分别注释了每个可视化用到的图表以及可能涉及到的控件和技巧. 数据为2020年1月1日至2020年3月28日每个国家的每日累计确诊人数(利用累计确诊人数,每日新增也可以很简单的计算出来). 数据:全球每日累计确诊人数图表:柱形图 数据:全球每日累计确诊人数图表:柱形图 控件:Play Axis 技巧:利用度量值,只显示小于等…
https://zhuanlan.zhihu.com/p/100070260 商业数据分析通常都可以简化为对数据进行筛选.分组.汇总的过程,本文通过一个实例来看看PowerBI是如何快速完成整个过程的. 假设数据为一个订单明细表,含有下单日期.客户名称.产品名称等数据,业务需求为: 根据订单表,计算出截止某个日期,购买次数为1-7次.8-14次.14-21次……的客户分别有多少? 看到要求就知道这是个分组问题,一般可以通过计算列或者度量值的方式来完成,之前PowerBI星球也分享过关于分组的文章…
https://zhuanlan.zhihu.com/p/64412190 ​本文来自星球嘉宾"海艳"的分享,关于Power BI的问答功能以及各项细节,海艳详细为大家逐一介绍,下面就直接进入她的精彩分享吧. 深入了解Power BI的问答功能 作者:海艳 很开心能够加入星球 ,和伙伴们一起来学习PowerBI,学习DAX.作为星球学员.PowerBI学习者,今天来分享一下让我看到时超级震撼的PowerBI功能:问答功能. "问答"是什么? 问答是通过自然语言提问,…
https://zhuanlan.zhihu.com/p/107672198 ​本文来自星友袁佳林的实践分享,他参加了PowerBI星球中的DAX圣经第二版100天学习打卡活动,已持续分享近100天,对DAX的理解自然更深了一些,本文就是他利用DAX解决问题的一种思路. Think in DAX 之报表自动化实践 作者:袁佳林 2019年6月7日,在我加入PowerBI星球不久,问过星主采悟一个实际工作上遇到过的数据汇总统计的问题: 数据结构如下图所示, (数据纯属模拟,如有雷同,都是抄我的)…
https://zhuanlan.zhihu.com/p/85996745 上一篇文讲了累计聚合,这篇文章继续讲一下滚动聚合,比如常用的MAT计算,Moving Annual Total,滚动年度总计,即向前滚动12月的合计数. 滚动年度求和,也经常用于财务上的滚动预算,看完这篇文章,你以后会很轻松的计算出需要的数据了. 模拟一份2018年1月至2019年7月的订单数据, 利用CALENDARAUTO生成一份日期表,按日期列建立关系,那么如何计算向前滚动12月的销售额合计呢? 其实很简单,新建度…
https://zhuanlan.zhihu.com/p/98975646 如何将表格或者矩阵中值的条件格式也应用于总计行? 目前PowerBI并不支持这种功能,无法在总计行或者小计行上应用条件格式,不过我们可以摸索个变通的方式来实现. 以制作红绿灯效果这篇文章的数据为例: PowerBI小技巧:简单两步实现红绿灯.箭头效果 这个总计行显然没有应用条件格式,本文尝试让总计行也同样适用于条件格式:动态的显示红绿灯的效果. 解决思路 PowerBI默认的总计行无法使用条件格式,这是暂时无法改变的,那…
https://zhuanlan.zhihu.com/p/64999937 经常碰到本年至今.本月至今的数据计算,其实还有一类计算是,从历史最早日期至今的累计计算,比如从开业到现在总共卖出了多少件商品,累计实现了多少销售额等. 本年累计称为YTD,历史至今的累计是不是可以称为HTD呢:) :这样的时间段很可能是跨年的,所以时间智能函数并不适用,不过不用时间智能函数依然可以很简单的进行计算. 模拟数据如下: 只是计算一个整体累计销售额很简单,我们想要计算的是从最初到任意一个日期的累计销售额,为了能…
https://zhuanlan.zhihu.com/p/75462046 对于初学者,总是会把度量值和计算列搞混,我也经常碰到这样的问题,有些星友用文章中的代码总是报错,发给我一看,才知道TA把本来是度量值的DAX用在了计算列上,或者相反. 即使是已经学习了很长时间的人,对于计算列和度量值的写法也未必轻车熟路,还是有可能不明白其中到底有什么不同,这篇文章就试图把度量值和计算列彻底讲清楚. 什么是计算列.什么是度量值 计算列是直接在现有的表上添加一个新列, 新建的计算列,和表中之前已经存在的列一…
https://zhuanlan.zhihu.com/p/67015995 编写DAX代码进行业务分析时,经常会用到表与表之间的连接计算,比如在之前的产品关联分析一文中(如何用Power BI分析产品关联度?),需要找出同时购买两种商品的客户,就是计算A商品的客户列表与B商品的客户列表的交集. 这篇文章再通过客户列表的示例,介绍如何使用DAX,进行两个表的各种连接计算. 模拟一个简单的订单表如下, 通过订单表可以简单的计算出购买A的客户列表,新建表,在编辑框输入代码,如图示: 购买A的客户也可用…
https://zhuanlan.zhihu.com/p/64414205 前面介绍如何使用DAX生成日期表的时候,使用了VAR,有人留言问这个VAR怎么理解,那么这篇文章就来介绍VAR以及它的用法. VAR是VARIABLE的缩写,意思为变量,任何一个编程语言中,变量都是一个非常重要的基础概念,DAX当然也是一种语言,也有变量这个概念.如果以前学过编程,对这个应该很熟悉:没学过也没有关系,看了本文你就理解了. 我们人都有记忆能力,电脑也有记忆能力,并且比人的记忆能力更强大更稳定,那么如何利用电…
https://zhuanlan.zhihu.com/p/96823622 ​开始半累加的计算之前,我们先看看什么是累加.半累加以及不可累加数据. 在含有大量行的数据表中,各种数据处理语言,包括DAX,为了性能考虑,不太可能总是检索表的每一行,更常见的情形是,一次性检索成千上万行,处理如此多行数据的最有效操作就是将它们加到一起,也就是累加汇总. 可以累加的数据类型就是可累加数据,比如订单表中的销售额,就是这种类型,无论是按照客户维度还是按照时间维度,都可以将每行的销售额直接汇总,并且这种汇总的结…
https://zhuanlan.zhihu.com/p/101812525 ​PowerBI中,有三个地方可以使用DAX,分别是度量值.新建列和新建表,这三个功能并成一排摆放在这里,如图所示, 之前的文章中曾介绍了度量值和计算列的异同(收藏 | Power BI计算列和度量值,一文帮你搞清楚),这篇文章再来带你认识度量值和新表的异同. 度量值和计算列容易混淆,但和新表好像并不会搞混,毕竟一个是值,一个是表,区别还是很大的.但在实现特定的业务需求上,他们又都可以实现,下面以一个案例来介绍. 该案…