开始本章翻译时,是5月初。当时并不知道平平无奇的5月Power BI会带来一大波更新,尤其是大杀器“字段参数”(字段参数参考文章)。
Power BI 模型的真正强大之处在于通过使用 DAX 语言进行计算。虽然许多 Power BI 用户专注于模型并试着完全避开使用 DAX,但是除了最简单的基础聚合运算以外,其他所有的计算都需要通过 DAX 来实现。而且,你迟早会在 Power BI 中遇到更复杂的计算需求。根据我们的经验,典型的情况会是:你精心制作的一个 Power BI 报告初稿,会引出有关这些数据的越来越多、越来越复杂的问题。
这里所说的 DAX 知识基础,不仅仅是理解什么是日期表,更多的是知道日期表如何构建可以兼顾到很多使用上的场景。
数据分析表达式 (DAX) 语言是一种公式语言,Data Analysis Expressions 数据分析表达式,简称DAX表达式,其允许用户定义自定义计算。DAX 包含一些在 Excel 公式中使用的函数,此外还包含其他设计用于处理关系数据和执行动态聚合的函数。
本文来自社区伙伴对《DAX 权威指南(第二版)》的学习笔记,有问题可以留言或联系BI佐罗修改,感谢你的支持。
编写 DAX 公式时要掌握的核心概念是上下文。DAX 作为一门动态数据分析语言,与 Excel 函数、SQL 查询 和 Power Query 脚本有着根本不同的原因就在于上下文的概念。以上所述的所有其他语言的公式只会在数据发生变化时才会返回不同的结果(除了一些例外情况,例如使用参数时),但是单个 DAX 公式就可以同时提供多个不同的结果,具体取决于您使用它的位置和方式,也就是:上下文。
日常生活中,学会使用DAX之后,我们已经习惯使用DAX函数来灵活的展示各种业务需要的KPI。
本文比较简单,只是某个客户在进行报表制作初期碰到的一个小问题,略作描述,以示避坑。
Power BI中DAX函数非常多,功能非常强大,下面结合一些实际场景来讲解DAX一些常用的函数,这些场景包含求和、计数、相除、排序、累计、环比、同比,为了更方便后续的可视化展示数据,我们新创建可视化展示的页面,创建一个新表存储后续展示的度量值,具体操作如下:
忽略指定过滤器后进行计算。 之前这个使用All函数生成忽略学科教师平均分的度量值,如果用AllExpect函数则可以写成
前面的文章中我已经使用了一个入门案例动态销售报告来带领大家入门PowerBI的入门学习,基于动态销售报告,我可以在来进行细化处理销售目标表中的数据。本文的主题就是销售目标的分析。我们都知道销售目标是销售的起点,销售人员每天的跟进都可以来反映销售目标完成情况。因此,将销售目标的颗粒度细化到每一天很有必要。 销售目标的细化主要的难点在于许多的企业在销售业务中有季节性。比如说在相同的月份中,去年的2月和今年的2月可能天数不同,无法全部复制。还有就是月份中的周末时间,有些月份存在4个周末,有些月份存在5个周末。这些时间因素都会对销售趋势造成一定的影响。 回到数据源结构,我们回顾一下动态销售报告中的销售明细数据。这个表中有销售日期和销售额,我们可以使用DAX函数来将销售目标处理到该表的汇总数据表中。接下就一起来处理数据吧。在PowerQuery中手动输入销售目标表
Cosplay比较狭义的解释是模仿、装扮虚拟世界的角色,也被称为角色扮演。由此,在网络上衍生出了新的含义,往往被用来形容“假扮某类人的人”:
但今天我们给出一个 Excel Power Query 相混合的方法,这肯定是有道理的。
DATEADD函数属于使用频率非常高的基本函数之一。国内各个类型、各个规模的企业,都无法绕开同比环比问题。对于上下文理解很吃力的小伙伴,使用DATEADD函数不失为一种过渡的手段。
之前的时候,白茶是一个纯小白,有一些东西,网上并没有详细的基础介绍,或者说,没有免费的资源。这就导致说与大佬们沟通的时候,很多大佬都不愿意搭话。不是不愿意回答,而是问的问题太基础了,就好比问人家1+1等于几一样。痛定思痛,基础终究是需要自己静下心来学习的。
最近一位朋友在用Power BI做一项与日期相关的分析时,出现了一些看起来很奇怪的情况:
HR 使用Excel已经可以统计很多内容了,但 BI 的特点,大家知道是 动态 的。本文讲解如何在 PowerBI 中实现 HR 在离职人数的计算。
NEXT系列一共包含四个函数:NEXTDAY函数,NEXTMONTH函数,NEXTQUARTER函数,NEXTYEAR函数。分别代表次日、次月、次季度、次年。隶属于“表函数”。
本期呢,白茶分享一个我们日常做表使用频率较高的小技巧,为柱形图添加动态配色!虽然这个技巧并不难,但是包含有一个基础性的小坑。
销售数据表记录了咖啡订单,包括字段:订单编号、订日期、门店、产品ID、顾客、数量。
有些业务场景中,从多个维度研究问题,往往有些维度分类太多,从而导致无法得到想要的结果,这时我们可以采用重新分组的方式,相当于在这个维度上方又添加了一个维度来看待问题,往往会找到问题的来源。
如果说99%的人不真正理解PowerBI DAX的SUM,你信吗?只怕是说少了,从这个意义上讲,PowerBI就是一个坑爹的。
笔者认为要具备以下条件:一是理解业务数据,知道主要分析的指标及潜在的报表分析需求;二是对DAX表达计算逻辑、特性有一定的了解。
不同行业的分析,维度表有类别之分,数据表有指标计算之别。但当谈到日期时,基本是一致的。而且日期表也是我们使用时间智能的前提。
如果数据模型的日期范围是2018/5/1—2019/6/30,则生成的日期表范围为2018/1/1—2019/12/31
文章背景:在工作中,有时需要提取同一日期的最后一条记录。比如每个客户的最后一次下单记录,或者每个产品最后一次卖出记录等。
在 PowerBI DAX 中,为了简化,数据结构只有一种表面形态:表。那当需要按照不同逻辑结构思考问题的时候,如何从表的结构形态衍生出其他结构形态?
设计优良的分析模型是 DAX 高效运行的前提。在本章中,我们将讨论许多与建模有关的主题,这些主题对于理解性能强劲的模型设计非常重要。
其实白茶觉得,从某些意义上来讲,应该将CONVERT函数、FORMAT函数、VALUE函数划分到一类。
单纯讲解时间智能函数犹如盲人摸象,不见全貌,更不见本质。 我们之前写过很多关于时间智能函数的文章,但文本将是最为本质以及最重要的。本文属于 BI佐罗 PowerBI VIP 线下培训部分抽取。
通常情况下使用在“计算列”之中,如果度量值中添加了存储的虚拟表,涉及到跳出上下文时,也可以使用这两个函数。
上一节 Power BI 计算组理解(一)中,提出可以将计算项理解为 特殊的自定义函数 ,其输入参数为度量值,不过上一节创建的计算组(收入、利润、利润率),在其值定义中并没有用到其输入的度量值本身。
数据模型是进行报告分析的基础。为此提供了结构和有序的信息。为确保提供更好的性能、可靠性和准确性,将数据加载到正确设计的模型中是数据分析很重要的一项工作。
白茶在刚开始接触PowerBI的时候,经常被一些基础的概念搞懵,也不好意思问别人说的具体是啥意思,分享一下一个小坑。
日本市场和欧洲市场的总交易是 1.2 亿,什么,单位是什么,如果不对单位做处理,那单位相当于是混合的,也就失去了意义。
FIRSTNONBLANKVALUE函数与LASTNONBLANKVALUE函数属于“值函数”。
如果我们希望在透视表的另一列可以获取前一列的上一项的值,该怎么做呢?这个问题在以前需要做定位。而有了新的函数 OFFSET 可以简化这个过程。如下:
本月除了常规的更新以外,引入了一个非常牛的大杀器,叫做VALQ,专门用来做计划,预测,调整等,在很多领域都有广泛的运用。
这些都是之前的文件,这里拿出来是为了方便小伙伴们观看对比使用的。先来说一下什么意思:
Julia的入门非常简单,尤其是当您熟悉Python时。在本篇文章中,我们将使用约翰霍普金斯大学系统科学与工程中心在其GitHub存储库中提供的Covid-19数据(https://github.com/CSSEGISandData/)。
几乎所有的报表模型都涉及到日期和时间,因此要创建Power BI报表,日期表就必须得有。虽然最新的Power BI版本已经可以自动为每一个时间列创建日期表。
—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —— —
将一个日期列的所有日期往前推15天,比如2021年11月25日,往前推15天,则是2021年11月10日。
本期呢,白茶决定把一部分时间函数放在一块讲了,因为这些函数的作用和函数的语法都是差不多的。包括以下函数:YEAR函数,MONTH函数,DAY函数,HOUR函数,MINUTE函数,SECOND函数。这些函数分别对应咱中国话的年度、月份、日期、小时、分钟、秒。
FIRSTNONBLANK函数与LASTNONBLANK函数属于“表”函数,当然,有些时候也可以作为“值函数”使用。
很多小伙伴问日期表模板,那这次分享一个截止 2020.1 为止,可以看到的相对好用的日期表模板,这也是罗叔一直使用的模板。
USERELATIONSHIP函数是一个高阶函数,隶属“筛选”类函数,其本身并不能返回任何表或值,仅在计算时启动指定的关系。
DATESBETWEEN函数隶属于“时间智能函数”,属于“表”函数。可以用作生成固定范围的日期,也可以用来作为限定条件来对聚合计算进行限制。
其实白茶觉得部分函数微软划分的有点模糊,比如本期的ALL函数,虽然可以单独使用,但是其更主要的作用是作为中间函数使用。
领取专属 10元无门槛券
手把手带您无忧上云