PowerBI 致敬 Tableau 10大表计算

2024-05-18 17:52

1. PowerBI 致敬 Tableau 10大表计算

 有伙伴说一段时间没有更新文章,这一次顶十次。明明能拆成十期的文章,非要一次写完,没办法,厚道。
   客观地讲,PowerBI 作为快速发展的BI产品,在很多方面仍然需要打磨,以前我们似乎更多来说 PowerBI 有多厉害,但这并不影响我们客户地向更加优秀的伙伴学习,例如:在 Tableau 确实有太多的优点,PowerBI 需要去学习,期待希望微软的产品经理们。(也只能期待了...)
   在数据分析中,除了简单汇总或简单变换以外,很多需求是需要有额外的辅助才能实现的,在 PowerBI 中,这些全部以  DAX函数  给出,来构建模型的语义层;而在 Tableau 中,自有她的一套巧妙设计,我们不妨来对比研究一下对于同样的略微复杂的功能是如何在不同的产品中实现的。由于我们这里主要是研究 PowerBI,故给出 Tableau 的实现效果,对其涉及公式不再详细讨论,而将这些精力留给对 PowerBI 的描述。
   本文全部是案例,案例来自于实际,Tableau举例了十个案例,为了处于学习目的,这里将变换下案例,但保持本质不变,来达到花费最小精力学习最多收益的效果。
   参考文章《10大Tableau表计算》: https://www.tableau.com/zh-cn/about/blog/2017/2/top-10-tableau-table-calculations-65417 
   推荐实践方式:
   以下详细对比每个案例并给出在 PowerBI 中的实现。
   在 Tableau 中,利用表计算,可以计算从任意值开始的百分比变化。假设您对某个股票组合感兴趣,并且想评估它们从某个时间点开始的相对表现。为此,需要设置一个“投资日期”,并将这些股票标准化到同一个时间点,用线条显示百分比变化。可使用滑块调整参考日期。效果如下:
                                           Tableau 表达式:
                                           以及:
                                           在 PowerBI 中,模拟类似的需求,实现选定任意时间点,显示不同时间相对于该时间的销售额的增长率。效果如下:
                                           Power BI DAX表达式:
                                           以及:
                                           小结:
   您可能想参照一个公共基准点查看数据,而不是查看一段绝对时间范围的数据。例如,这里有三部《玩具总动员》电影的票房收入。如果按星期看一下自首映日开始的总收入,比较起来就容易多了:
                                           Tableau 表达式:
                                           在 PowerBI 中,模拟类似的需求,实现按照首次销售计算不同类别的销售额趋势。效果如下:
                                           首先构造了一个坐标轴,然后根据当前坐标轴位置来计算,PowerBI DAX 表达式为:
                                           小结:
   希望一次执行两遍表计算的情况很常见。例如,查看某个细分市场随时间变化的增长或收缩对公司的重要性可能很有意义。为此,必须先按细分市场计算随时间变化的销售额汇总,然后将其作为随时间变化的销售总额百分比来查看。这也称为多遍聚合,在 Tableau 中不写公式也可以完成这种聚合。
                                           在 Tableau 中仅需要设置就可以完成:
                                           以及:
                                           在 PowerBI 中,模拟类似的需求,实现按照不同类别显示其当年积累销售额占整体销售额的比例。效果如下:
                                           Power BI DAX 表达式:
                                           小结:
   这里我们需要了解产品在一个月和一年内的排名,然后显示排名随时间的变化。为此,我们创建一个凹凸图,其中以折线图形式显示随时间的变化。可在左侧看到复印机和传真机已经从销售不佳的产品变成目前的销售前 3 甲。还可以看到,传真机和复印机的购买量波动很大。
                                           Tableau中这样计算:
                                           在 PowerBI 中,模拟类似的需求,实现按照不同类别显示其不同时间段的排名。效果如下:
                                           在 PowerBI 中,在报告层面可以实现传达同样信息的效果,但从报告层的细节来说,仍无法做到 Tableau 的融合性,例如:
                                           无法做到最少可视化元素的完备性以及整体性,PowerBI 产品经理有的玩了。
   当然 PowerBI DAX 表达式:
                                           小结:
   现在需要监视呼叫中心未结支持案例的数量,或者有货的库存数量。但是系统未记录未结案例的滚动合计,您需要推算出来。这等于开案日的案例数 + 新开案例数 + 重开案例数 – 已结案例数。
   表面看来,这是简单计算。但是,每日开案数量是根据上一个结案日推算的,后者又是根据当日开案数量推算的。这形成了计算的循环引用。
   效果如下:
                                           在 Tableau 中的大致实现方式:
                                           以及:
                                           以及:
                                           充分看出在 Tableau 中的报表层提供了很多控制以实现计算。
   在 PowerBI 中,模拟类似的需求,实现计算每天的累计未发货量,未发货量由昨日累计订单量 - 昨天累计发货量得到,效果如下:
                                           PowerBI DAX 表达式:
                                           这看似一种递归的效果,但其实可以转化为非递归实现,在 Tableau 和 PowerBI 两者中都并非真正的递归,在 PowerBI DAX 中是不支持真正递归的,当然在这种案例中也不用使用真正的递归。
   小结:
   对于考试分数或订单优先级等数据,适合采用加权平均分析。也许您想查看各种产品类型所有订单的平均优先级,并且想按订购量加权该优先级,这样订购量大的产品就会得到更高的优先级分数。可以使用加权平均优先级分数来优化订购量大、优先级高的产品的供应链。这里,我们使用 Superstore 销售数据进行加权平均:
                                           在 PowerBI 中,模拟类似的需求,实现按子类别销售额利润率加权来计算类别的平均销售额,效果如下:
                                           PowerBI DAX 表达式可以直接由快速度量值给出:
                                           生成的 PowerBI DAX 表达式如下:
                                           小结:
   如果您管理公司的配送运营,可能会对哪些产品的运输成本高于平均值感兴趣。在 Tableau 6 中,可以计算整个时间窗口的平均值,并在计算中使用该值对各值进行分组和配色。
                                           Tableau 中的主要计算如下:
                                           在 PowerBI 中,模拟类似的需求,效果如下:
                                           首先构建一个用来分组的辅助表作为图例,然后编写 PowerBI DAX 表达式如下:
                                           小结:
   对于零售、智能或边界控制等不同的场景,通常需要了解在一个时间窗口内发生某一事件的次数。例如,一次可疑事件可能是一次意外,但是如果在 x 天里发生次数超过 n 次,那就值得调查一下。
                                           这里 Tableau 用到了参数和计算的结合,主要的计算如下:
                                           在 PowerBI 中,模拟类似的需求,实现 X 天内小于上月日平均销售额的次数达到指定阈值,效果如下:
                                           如果在连续的X天内次数超过了阈值次数则显示,否则不显示。
   PowerBI DAX 表达式如下:
                                           小结:
   您已使用 Tableau 中的快速表计算功能,计算了所有月份的销售额移动平均,但现在希望进行扩展,以便选择要计算多少个时段的平均值。
   淡蓝色线条显示所有月份的销售额总和,而橙色线条显示 15 个时段的销售额移动平均。
                                           在 Tableau 中的设置和计算如下:
                                           在 PowerBI 中,模拟类似的需求,效果如下:
                                           PowerBI DAX 表达式如下:
                                           小结:
   您可能更想看到季度销售额与当年平均值(而不是绝对数)的差异。此处显示了与当年平均值和绝对订单数之间的差异。
                                           在 Tableau 中的主要设置和计算如下:
                                           在 PowerBI 中,模拟类似的需求,效果如下:
                                           PowerBI DAX 表达式如下:
                                           虽然是达到同样的效果,在 PowerBI DAX 中却要理解上下文转换以及取消外部筛选等高级的 DAX 知识才能快速而准确地写出度量值。
   小结:
   通过对比用 Tableau 和 PowerBI 实现同样的 10 种非默认效果的计算,可以对两种软件在某方面的设计有了一个局部的认知,可以总结为:
   因此,我们可以对 PowerBI 的报表计算能力有一个更准确的把握:
   更多的思考:   从本文的 10 个典型案例可以部分看出 Tableau 作为完成报表层计算和展示时有良好和完备的能力,这也许得益于其初期就明确的精准定位,尤其看到在 Tableau 6 时代就已经达到了完备的计算。在这方面,由于 PowerBI 将数据准备,数据建模,数据可视化,报表制作融为一体,尤其是  模型层计算  和  报表层计算  并没有从系统化的角度做严格区分,导致任何报表需求的本质都是一个DAX查询,而报表层又没能做到:
   这两点导致:   PowerBI 的报表制作严重依赖于添加众多没有模型意义的辅助表以及过度复杂的相对重量级 DAX计算,虽然能证明 DAX 的强大,但明显可以感受到在很多方面,这并不得心应手。
   相信 PowerBI 在报表层必然有更大的提升,至少完成两点:
   最后,致敬 Tableau,没有这么优秀的对手,这么可能让 PowerBI 变得更强大呢,通过对 Tableau 的体会和理解,可以更多加深对 BI体系 的思考,也更清楚 PowerBI 的软肋,对于应对实际问题,如何基于现有的 PowerBI 特点做出合理的设计也就给出了更多的方法。

PowerBI 致敬 Tableau 10大表计算

2. 正在进行BI选型,不知道tableau怎么样?有没有哪些比较显著的缺点?

有产品本身的,也有其非本土产品的性质导致的。
1、基于数据查询的工具,难以处理不规范数据,难以转化复杂模型
2、对输入数据类型有要求,运行起来比较慢,且只能支持PC电脑,这也是很多Newsroom后来抛弃它的原因。
3、本身没有后端数据仓库,宣称自己是内存BI,实际用起来对硬件要求极高,对于超千万条的数据分析,必须借助于其他ETL工具处理好数据再进行前端分析
4、无法支持中国式复杂表样
5、本地化服务差
以上的都是tableau的硬伤,你要根据你自身的业务需求进行取舍。想要解决以上问题,建议你考虑一下其他的BI产品,帆软的finebi作为敏捷型BI就很不错。
最新文章
热门文章
推荐阅读