基础:EXCEL熟练使用,知道power query,不知道power pivot
目标:使用power bi完成排名可视化报表的制作
2020.7.17
又纠结在rankx函数里面了。。。。
对单个维度进行排序时,只要表中有其他维度就会排序错误,比如对学生名称排序,但是表结构是学校-年纪-姓名,排名函数rankx(all(姓名),成绩),结果全是1或2,后来发现是其他维度的干扰,需要将其他维度也加到all函数里面来,修改成rankx(all(学校,年纪,姓名),成绩),结果准确。
2020.6.3 发现超棒的日期表
发现一个在使用M函数建立终极日期表的代码,感谢博主https://www.jianshu.com/p/7b69d8ec41ef
这个日期表几乎把所有我们可能用到的日期表达方式都考虑进去了,还可选择中文还是英文,非常完美!
中间又过了很多天。。。。
已经用power bi实现排名可视化的报表制作,并且已经是在公司内使用。以前用Excel处理需要半个多小时的报表,现在通过power bi每天刷新只需要几分钟,极大提高了效率,并且还能在不改变报表样式的情况下选择各种维度查看数据,这就是交互式报表最大的优势。但是power bi在实际运用的过程中还是会出现一些小问题,比如刷新数据集以后,展示报表未刷新,需要重新编辑保存一下;比如折线图没有新增新增的日期,目前看来主要是power bi online的问题。
DAY不知道多少天了(累计肯定超过50小时了)
中途一直在研究power bi的可视化排版问题,目前已经完成了可视化的初稿。最有趣的是搞定了导航栏。在中途发现我想做一个累计数据的分组问题,类似于频次分析,然而这个数据跟日期有关,所以用一般分组方式搞不定。我的想法是,返回一个被外部筛选器已经筛选了的表,去掉日期,保持想要统计的值的唯一性,再进行条件统计。
Day8(3小时,累计34小时)
关于行上下文和筛选上下文
看过很多讲解,感觉每个人都有自己不同的理解。
而我个人的理解是,上下文就是环境,上文是源数据,下文是经过处理之后的汇总数据,上下文就是一切跟表达式选中的行有关的环节。
筛选上下文,跟度量值差不多,筛选上下文受到内外部筛选器的控制,通过筛选器控制而产生的上下文就是筛选上下文;
行上下文,跟计算列差不多,不受内外部筛选器的控制,直接使用源数据进行计算;
行上下文转换成筛选上下文,就是通过calculate等函数,把行上下文变成一个可以被筛选器控制的筛选上下文;
Day7(3小时,累计31小时)
今天主要是用excel做了大盘数据仪表盘,数据建模使用的是power pivot,最有感触的是,power pivot在处理多数据上面的性能要高excel太多了,而且使用pivot之后,数据源在更改的时候,也不会对仪表盘产生影响;以后在更新数据的时候,只需要增加数据再刷新就行了,大大提高了工作效率;
之所以不使用power bi,主要原因是最开始想用power bi做报表的原因是power bi可以把链接发布出去,别人可以在线就能打开并交互使用,但后来了解到在发布的时候会把我们的数据也发布出去,涉及到公司机密;
Day6(4小时,累计28小时)
遇到的问题:刷新数据的时候发生表中某一列不存在的报错,还不知道为什么;
今天想要增加每个类别在当日的业绩占比度量值,之前一直想找有什么办法能够像excel一样做条件筛选,后来才反应其实切片器和透视表就是一个外部筛选器,借助透视表就能很轻松的使用calculate函数达到效果;
Day5 (3小时,累计24小时)
关于昨天父子层级的问题,已经得知因为透视表会默认隐藏值为空的那些行,所以就会让我们以为是没有包含那些行,实际上那些行是存在的,只是被隐藏了,所以在计算的时候只要把为空的条件都带上就能计算成功了。
已经完成排名报表首页的制作。
Day4 (5小时,累计21小时)
关于排名为负排名出错的问题已经得到解决,在power bi极客网站上的提问得到的解答,原因是中间有很多利润为空的子类,利润为空的子类在计算时转成了0参与了分类,所以导致负值排名出错;解决办法就是添加一个筛选条件,把为空的全部筛选掉,排名正常;
应该还要去仔细看一下power pivot里面对父子层级的定义,在我的理解里,应该不会产生非该类的子类别存在,但是实际上是每一个父类别下面都有所有的子类别,但是数据为空的子类别会不进行展示,但是在逐行计算的时候又会被计算上,这点还没搞懂;
学习了eariler函数,因为我们的数据都是累计数据,所以如果需要当日数据需要进行计算,用eariler函数可以方便处理,eariler函数通常和filter函数进行使用,有一个作者说得比较好,earlier函数将实际表和filter构建的虚拟表进行比较,找到满足条件的行;
hasonefilter函数,之前判断是否是子类的时候,使用另一个作者的方法,通过判断行数的方法来判断子类,这样公式写出来会比较长,且当子类别只有一行的时候会返回true;而hasonefilter能直接判断是否有筛选器,这样只有两层级的时候判断次类会更方便,但是多层级的时候会有问题;
并用power view构建了一个简单的日报表,如果需要出日报的话,对于我来说就是添加数据的事情并刷新;
在学习的过程中,我总是会反思,如果现在我学习的这个东西放在我以前的工作中,会产生什么样的效果,通过不停的反思调整我的方向;比如,我最开始想学习power bi是因为可视化效果,但是在不断的学习过程中我发现power bi的最大效果不是给我们提供非常好看非常精美的展示,这个东西我用excel也能做到;而是当我对数据进行一次建模以后,对于以后每次的数据更新,或者大规模级的数据处理,使用power bi或者power pivot会更方便;所以我决定先学习power pivot,掌握power bi的大脑;
但是自己也会产生一定的问题,就是当我被一个问题卡住了以后,我会非常非常的希望先解决这个问题,我不能允许有任何一个没有得到解决的问题放在我面前,然后就会打乱自己的时间计划;
Day3 (3小时,累计16小时)
昨日问题未解决,但是想到了相关的方法;
今天主要学习power pivot的使用,并且用实际表建立了关系;对度量值有更深的理解;学习了calculate函数,掌握calculate函数的基本用法;
Day2 (8小时,累计13小时)
昨日问题解决:了解到power bi使用的是DAX函数,所以开始学习DAX函数;
学习DAX函数,主要学习了countrows、rankx、related函数的使用,学会了父类和子类的动态排名函数;给power bi里面导入高级图表模板,第一页面的元素简单布局;遇到的问题:子类的正值排名正确,但负值排名产生错误,暂时没找到原因;
Day1 (约5小时)
安装power bi,B站查看极简入门视频,简单了解使用方法,遇到的问题:由于power pivot使用的函数是对整列的数据进行计算,和excel的不一样,所以不知道怎么去计算;感触比较深的是pq、pp、pv的关系;
1、最重要最重要的关系:power query —> power pivot —> power view,即对应的是数据整合,数据筛选,数据展示