前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >整理你的报告从使用SQL开始

整理你的报告从使用SQL开始

作者头像
陈学谦
发布2020-04-14 15:40:39
1.5K0
发布2020-04-14 15:40:39
举报
文章被收录于专栏:学谦数据运营学谦数据运营

由于公司财政能力有限,在分批次购买了几十个世纪互联Power BI的PRO账号后,恰逢遇到了疫情,而K12线下教培行业受冲击还比较严重,大老板暂时不再松口了,所以只能让后续想使用报表的同学们先使用试用版了,也是不得已的办法。

这时候就面临一些问题了:

  1. 报告发布与更新问题,使用两台电脑吗?这不现实,因为数据库只运行在这一台电脑上,而且是随时更新的,不可能两台电脑同时刷新
  2. 使用一台电脑来回切换账号发布吗?如果自动刷新,两个不同的域名能同时在同一台电脑上刷新吗?
  3. 我可以都使用Python进行自动刷新吗?

当然,这些问题,在后续探索中逐个解决了:

同一台电脑管理多家企业Power BI报表的自动更新

用Python任意刷新Power BI国际版

我以为就没有什么大问题了,谁知,更艰难的其实在后头:

我们知道,Power BI如果想借助于网关进行刷新,需要将每一个数据源都设置凭证,尤其是标准网关,更是需要每一个数据源都输入密码,对于本地的文件,更是要求每个文件输入一次计算机登录名和密码。

这时候我才意识到,那么多数据源都是本地excel文件是多么的恐怖。以上截图只是少部分而已……

而幸运的是,其实有一半的查询是直接来自于MySQL的同一个数据库,而这几十张表只需要一次验证即可。

我光是输入账号和密码就用了俩小时。

所以衷心地建议刚开始搭建模型的同学:

尽量要从数据库导入数据!

尽量不要从excel导入数据!

所以这两天,我马上将报告中用到excel表的查询,挨个转移到MySQL中,基本转移得差不多了。

有同学会问了,如果我的数据来源就是excel表,而且更新频率比较高,那我每次更新excel到SQL也需要很长时间啊,得不偿失啊。

面对这个问题,我只能嘿嘿一笑:

定时用Python把excel文件导入MySQL中,再刷新不就完事儿嘛,还是前文介绍的pymysql库的使用,不多说了,内事不决问一下度娘即可。

当然,在转移的过程当中,自然也会发生一些不开心的小事情,比如:

这张图在各种场景,各种方式导入到Power BI 中会发生的错误,尤其是对于很多新手来说,遇到这样的错误,往往很困惑。今天这篇文章的后半部分就来说一下这个问题出现的原因以及解决措施。

我们导入一个包含三张sheet表的excel文件,

选中sheet1加载数据,它直接呈现了最终的结果:

但是这个过程是怎么发生的呢?其实还是有几个步骤的:

当你连接数据源的时候,不论是excel表还是SQL的数据库,其中一半会有多个sheet或者table,导航会自动加载到列表中:

而如果你打开高级编辑器,查看全部的M代码:

重点说一下第二行,这个比较有意思,像不像DAX中的筛选器,用item=sheet1和kind=sheet确定sheet1那一行,然后再确定data那一列,选中后返回值,由于值是一个table,所以返回的结果是一张表。

如果此时我们将sheet1改一下名(这是经常会出现的场景,有些时候是移动了文件到其他位置):

刷新一下,列表仍然会显示:

但是这时候由于kind=sheet和item=sheet1这两个组合的筛选器筛选不出来结果,因为没有item=sheet1这一项,所以只能返回:

两个解决办法:

  1. 怎么改的,就怎么再改回去
  2. 将错就错,文件不动,把sheet1改为表1

当然,其实我们可以看到kind=sheet和item=sheet1这两个组合起来选data列和单纯使用item=sheet1来筛选data列结果是相同的。

而且这样做还有个好处,就是如果你将excel文件保存为xlsb或者更改数据源从mysql中获取,查询会继续正常工作。

好了,希望各位同学以后遇到相似问题时能够快速解决。

参考文档:

https://blog.crossjoin.co.uk/2020/04/06/understanding-the-the-key-didnt-match-any-rows-in-the-table-error-in-power-query-in-power-bi-or-excel/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档