数据可视化之powerBI技巧(二十四)Power BI初学者刚见的错误,帮你轻松处理
在学习PowerBI的过程中,尤其是刚接触的时候,不可避免的会遇到各种各样的错误,有时自己怎么检查都没法消除,不解决这个错误又没法进行下一步的工作,经常会搞的自己烦闷无比,不过最后通过自己的苦苦摸索、或者他人的片语点拨而解决后,也会欣喜异常。
你遇到的问题,我同样也都遇到过,并且我遇到的更多(因为我还接收到星友们遇到的各种问题:),这里归纳了一下初学者使用PowerBI时,几个常见的错误以及解决的办法。
01 | DAX书写错误
刚开始在DAX编辑框建度量值时,总是眼前一堆红色的波浪线有没有,
经常有新人问我说,就是按照文章中的DAX一个个字符敲的,为什么会报错,其实出现这个问题一般都是少了右括号,忘记输入逗号或者有中文字符等,所以在编写DAX时一定要切记:
- 每一个函数左右括号 () ,要配对;
- 引用表的单引号 '',不要漏;
- 参数之间的分隔逗号 , 不能缺少;
- 以上字符均要求为英文字符;
另外一定要按照格式规范书写DAX(请参考:送你一份DAX格式指南),上图中出现错误,其实还是比较容易排查出错误在那里的,如果全部写在一行,有这些错误就更加头大了。
这个问题一般都是出现在刚开始学习时,写的多了基本都不会遇到或者出现这种提示可以马上知道是哪里错了。所以学习DAX时不要只看不练,或者练习时复制别人写好的DAX,一定要自己亲自动手去写,锻炼肌肉记忆,才能在需要编写DAX的时候行云流水。
02 | 函数使用错误
有些函数返回的表,若用于新建度量值,肯定返回错误,比如,
度量值需要返回的是一个值,而FILTER函数返回的表,所以它不能单独用于建度量值,但该函数可以作为其他函数的参数使用,来建立度量值。
虽然上图中的FILTER函数建度量值时出错,但是却可以建表,该表达式将返回所有北京的客户的订单表。
也有些函数返回的是值,若用于建表,也会报错,比如,
CALCULATE函数返回的是一个值,不能用于建表。不过如果你确实想建一个只有一个值的表,也是可以做到的,可以在这个表达式外层套一个大括号{},正常返回一个表,
该表只有一个数据,为北京客户贡献的销售额。
通过这种方式,也可以用于在数据视图下,查看度量值的返回结果。
03 | 参数使用错误
参数错误的时候,有时并不会有红色波浪线提醒,比如下图,
提示MAX函数的参数只接受列,该错误就是参数应该为列的时候,使用了表。
还有的函数应该引用表,却用了列或者值,
出现这种情况就是按照错误提示进行更改,再仔细研究一下该函数的介绍文档,弄清楚该函数需要有几个参数,以及每个参数分别是什么类型。
关于函数和参数的错误,主要是要理解DAX各类函数及其参数的用法,请参考:DAX中的表函数和值函数
04 | 作图时出现错误
好不容易把度量值的DAX代码调试好了,系统也没有提示任何错误,比如这个度量值,
没有错误提示好开心,现在就来看看到底是哪个客户的单笔购买金额最高吧,用个卡片图来展示,可结果却是这样,
世事难料啊,要崩溃了有没有!
但是也不能因为这点小事崩溃啊,该做的还得继续做,点击“请参阅详细信息”看看为什么会出错?
原来是返回的值不唯一导致错误的。再回头看看这个度量值,其实DAX代码本身并没有错误(所以没有错误提示),但是逻辑上有bug,假如有多个客户的订单额都同时是最大订单额,那么这个度量值无法返回唯一值,也就不能正常显示出结果。
这个问题解决的办法有很多,主要看你想要什么结果,如果只是想不出现错误提示,就可以在上面那个表达式中加一个判断判断来拦截错误,可使用IF和HASONEVALUE,
使用这个度量值肯定不会再有错误出现,但是如果有多个客户,它也不会显示出客户姓名,只会显示空白。
这个例子中确实有多个客户的订单额都是最大值,但是又想显示出一个客户姓名,这个问题可以改一下,比如最早达到最大订单额的是哪个客户?这就是一个确定的唯一客户了,我不再详细写度量值了,大家可以拿这个简单的例子练练手。
05 | 显示结果不符合预期
写度量值时没有任何错误提示,把它拖入到图表中也没有错误,可是显示的数据却很奇怪,完全不是想象中的,
所有的数据都相同,没有按上下文进行计算?
这个问题一般都是维度表和事实表没有建立关系,或者没有建立正确的关系,因此度量值没有按照外部下上文正确计算。
遇到这种情况去建模视图下,更改一下关系就可以了。
这里也建议大家,导入数据之后,先在建模视图下建立正确的关系图,然后再去着手去写度量值。如果系统自动建立的,也要检查一下,自动建立的关系是否与我们的分析逻辑一致。
06 | 使用度量值作为筛选维度
还有不少人问我,为什么我建立的度量值无法拖入到图表里,我仔细一看,原来TA是想用这个度量值拖到图表的轴上,或者是切片器中。
度量值作为动态的公式,只有在一定的上下文环境中才有确定的返回结果,所以PowerBI中默认它是不能作为筛选维度的。如果确实需要用这个维度,就去构建一个表吧。
这次就先写这么多,以后有空了再总结其他的。
其实当我们开始学习一个新的事物时,都会遇到各种各样的困惑和难题,有的人会抱怨这个工具太弱智,一点都不智能,然后就放弃了;也有的人试着去理解它内在的逻辑,然后利用它的逻辑来解决自己的问题,你属于哪种人呢?
有问题不可怕,让我们一起解决它,加入PowerBI星球,随时问题答疑,更多资源分享。
不要忘了在评论区回复你的答案哦:)
数据可视化之powerBI技巧(二十四)Power BI初学者刚见的错误,帮你轻松处理的更多相关文章
- 数据可视化之powerBI技巧(十四)采悟:PowerBI中自制中文单位万和亿
使用PowerBI的时候,一个很不爽之处就是数据单位的设置,只能用千.百万等英美的习惯来显示,而没有我们中文所习惯的万亿等单位,虽然要求添加"万"的呼声很高,但迟迟未见到改进动作, ...
- 数据可视化之powerBI技巧(八)Power BI按多列排序的技巧
目前PowerBI的表格已经支持多列排序,但是矩阵依然还不支持按多个字段排序,虽然这个需求很普遍,这里利用DAX提供一个变通的实现方式. 模拟数据如下,有两个数据指标: 对类别首先按[指标一]进行排序 ...
- 数据可视化之powerBI基础(六)Power BI的“问答”,你用过吗?
https://zhuanlan.zhihu.com/p/64412190 本文来自星球嘉宾"海艳"的分享,关于Power BI的问答功能以及各项细节,海艳详细为大家逐一介绍,下 ...
- 数据可视化之powerBI基础(十四)Power BI中创建联动切片器
https://zhuanlan.zhihu.com/p/67564062 进行数据分析时,每个分析维度并不总是独立的,比如省份是一个维度,城市也是一个维度,而这两个维度之间是有逻辑关系的,那么在进行 ...
- 数据可视化之powerBI技巧(十二)学会这几个度量值,轻松获取前N名
数据中的明细项一般都有很多,可是我们关注的往往只是前几名,所以在报表中只展示关注的部分,就十分常用. 有了上篇(这几个示例,帮你深入理解RANKX排名)关于排名的铺垫,仅显示前N名就简单多了. 依然以 ...
- 数据可视化之powerBI技巧(十八)Power BI动态技巧:动态显示列和度量值
今天分享一个可视化小技巧,如何在PowerBI的表格中动态显示需要的列? 就是这样的效果, 也就是根据切片器的筛选,来显示需要的列,做起来很简单,步骤如下: 01 逆透视表 进入Powerquery编 ...
- 数据可视化之powerBI技巧(十六)采悟:PowerBI作图技巧:动态显示可视化标题
默认情况下,PowerBI图表的标题是静态的,为了增强图表的可读性,通过设置动态标题,可快速展示关键信息.提升沟通效率.本文通过两个简单的例子来看看PowerBI中如何创建动态标题. /01/ 拿之前 ...
- 数据可视化之powerBI技巧(十九)DAX作图技巧:使用度量值动态分组和配色
有了前两篇关于分组的铺垫,这篇文章就来学习一个分组的经典应用,图表的动态分组,并对分组动态配色. 假设有十几个产品,每个产品的销售额,是随着时间而变化的,想知道某个时间的每一个产品的销售额与平均销售额 ...
- 数据可视化之powerBI技巧(十五)采悟:Power BI动态技巧:动态显示数据层级
今天给大家分享一个动态显示数据层级的技巧,效果如下: 无论想按什么维度.什么顺序查看分析数据,只需要选择不同的切片器组合就行了. 方法如下:01 | 把数据聚合为分析需要的最细粒度 本文假设最细分析粒 ...
随机推荐
- LNMP 环境更换Nginx 服务器为Tengine
本人之前所使用 LNMP 环境一直是原生的Nginx服务器,最近几天看了好多大网站使用 淘宝团队基于Nginx开发的 Tengine 决定给自己的虚拟机也装个玩玩. 关于Tengine的介绍就不多说了 ...
- cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare
*cb36a_c++_STL_算法_区间的比较equal_mismatch_lexicographical_compare 区间:容器中的全部数据或者部分数据,都叫做区间 equal(b,e,b2), ...
- c++. Run-Time Check Failure #2 - Stack around the variable 'cc' was corrupted.
Run-Time Check Failure #2 - Stack around the variable 'cc' was corrupted. char cc[1024]; //此处如果索引值 ...
- 我们是如何做go语言系统测试覆盖率收集的?
工程效能领域,测试覆盖率度量总是绕不开的话题,我们也不例外.在七牛云,我们主要使用go语言构建云服务,在考虑系统测试覆盖率时,最早也是通过围绕原生go test -c -cover的能力来构建.这个方 ...
- 三文搞懂学会Docker容器技术(下)
接着上面一篇:三文搞懂学会Docker容器技术(上) 三文搞懂学会Docker容器技术(中) 7,Docker容器目录挂载 7.1 简介 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器 ...
- JavaWeb网上图书商城完整项目--11.项目所需jquery函数介绍
1.下载jquery的函数包 2.强函数包添加到工程的web-root目录下 3.在jsp文件中加载js文件 <script type="text/javascript" s ...
- java面试必备知识点-上中下三篇写的很详细
参考博客:写的还是相当的经典 http://www.cnblogs.com/absfree/p/5568849.html 上中下三篇写的很详细 http://blog.csdn.net/riverfl ...
- SQL注入之常用工具sqlmap
通常来说,验证一个页面是否存在注入漏洞比较简单,而要获取数据,扩大权限,则要输入很复杂的SQL语句,有时候我们还会对大量的URL进行测试,这时就需要用到工具来帮助我们进行注入了. 目前流行的注入工具有 ...
- node+ajax实战案例(4)
4.用户登录实现 4.1.用户登录实现思路 1 用户输入登录信息,点击登录的时候把用户登录的这些信息收集起来,然后组装数据通过ajax方式发送到后台 2 后台接到用户输入的登录信息,把这些信息拿去和数 ...
- Oracle中truncate表不更新last_ddl_time列
Oracle中truncate表不更新last_ddl_time列 问题描述 最近发现数据库中定时job的某张表,每天都有truncate动作,由于调整了job的interval时间,想查看last_ ...