前言:

学习Tableau路上有两类障碍,第一类是技术上的障碍,比如如何使用LOD引用不同级别的数据,第二类是表达上的障碍,比如选择哪种可视化方式和结构能更好地展现数据。前者是理性的,后者是感性的;前者是技术的,后者是美学的。

对于我而言,最大的技术障碍之一是「详细级别表达式」(LOD, level of detail),在攻克的过程中,我翻遍了主要的资料,要点引文汇总如下,之后结合自己的案例详述了分析问题的思路。

BY David.Wu 2017/9/6

一、有助于理解LOD的官方{引文} ——复习前两篇文章

  • 在 Tableau 中,我们将主可视化聚合级别称为其“详细级别”。 利用 LOD 表达式,我们可以考虑可视化详细级别的以外问题。 可视化中的数据往往是从数据源中筛选数据的结果。 详细级别表达式可在筛选前查看数据 – 这样就能实现更强大的分析。详细级别表达式对于各种用例非常有用,其中包括:
    • 群组分析 – 比较不同子组的数据
    • 跨细分市场的合计或平均值
    • 聚合的聚合
    • 分桶聚合
  • In Tableau, we refer to the main visualization aggregation level as its “level of detail”. LOD Expressions allow us to look beyond the visualization level of detail. 

  • “与表计算、合计或参考线不同,详细级别表达式是在数据源中计算的。从有利的方面来看,这使您可以避免通过网络将所有数据从数据库引入计算机的开销。对于大型数据源,这可能会大幅提高性能。从不利的方面来看,这可能会导致 Tableau 运行更复杂的查询(例如,包含多个联接的查询),并且在基础数据源缓慢的情况下,性能可能会受到影响。”
筛选器和操作顺序
LOD在Tableau操作顺序中的位置
  • “数据分析中存在的挑战往往在于提出一个易于口头描述的问题,然后通过数据来解答这个问题。 分析经常需要比较或参考多个不同聚合级别的数据。 可视化的主要焦点可能位于一个级别,但问题可能需要参考另一个级别。 例如,您正在地图上可视化国家/地区级别的销售收入,但您想将这些销售额与全球销售额进行比较(15大详细级别表达式案例之一)。
  • “利用详细级别表达式,我们可将计算设置在一个特定维度,以便始终以该精细程度来进行计算。 您可将其想象为放置维度的隐藏功能区。
  • “详细级别表达式将 Tableau 的计算能力带入更高层次,不仅无需许多繁杂的解决办法,还能使用之前无法使用的案例。
  • “详细级别表达式为我们打开了一扇门,让我们得以分析人群、聚合的聚合、聚合的数据桶以及许多其他领域。 还让我们得以使用一些不太起眼,但同等重要的使用案例,如将所选择的地区/项目/员工与其他所有进行比较。……这个帖子将继续介绍典型分析问题的示例,这些问题有一个共同的属性,即要求我们在可视化主焦点以外的不同级别聚合数据
  • FIXED LOD 此表达式使用指定的维度计算值,而不引用视图中的任何其他维度。
  • INCLUDE LOD 此表达式使用指定的维度以及视图中的任何维度来计算值。
  • EXCLUDE LOD 此表达式从视图细节级别中减去维度

具体的语法可参考:官方指南LOD

关于行级别、表级别、详细级别,可参考我的前面两篇更加详细的博文:

  1. 【Tableau】详细级别表达式_入门手册 (1)
  2. 【Tableau】详细级别表达式_位置与语法(2)

 

 · 二、终极总结:梳理LOD需求的推荐方法「by David」

在官方的第三篇博文中,官方提供了一种梳理问题的思路,文中列举了三个问题:

  1. 每个销售人员达成的最大额交易是多少,每个国家/地区这些交易的平均值是多少?
  2. 各市场内每天争取到客户的累计数量是多少?
  3. 相对于最近刷新数据的那天,本年迄今为止的利润相比去年利润的差异如何?

不结合例子,你可能对上面的问题一头雾水,没关系,后面的一句话和表格才是作者背后的思维逻辑,因此是最重要的,他说,“这些问题中的每一个都有明确的焦点,但它们也会参考另一个背景环境。 ”于是画了一个表格清晰地表示“焦点”和“背景环境”,如下图。

*绿色部分是聚合,用来对聚合分组的维度蓝色部分,就像是在 Tableau 的 UI。

官方的表格和Tableau案例中的英文都没有翻译,大家看下面我的翻译。

案例 可视化的焦点 需要参考的额外背景?
1、最大值集合的平均值 按照地区平均值 销售员地区最大销售额
2、新顾客数量 按照市场计算新顾客的数量 顾客最早订单日期(判断是否为新客户)
3、相对时间的对比 按照年份和各年的天 计算利润总额 数据源中的最后订单日期

*绿色部分是聚合,用来对聚合分组的维度蓝色部分,就像是在 Tableau 的 UI。

我刚开始阅读时忽略了,现在重读发现,这是在使用LOD特别好的一个分析思路,先找到可视化层面的焦点,也就是我们要表现出来的是什么,然后寻找支撑这个焦点的、不在当前可视化级别的数据,并用LOD来表达这个背景数据。

我说一个自己刚刚做的会员分析的case,

比如说,面对POS中的单品消费清单,我要看对比每个品类人均消费金额人均消费数量,按照上面的分析,可以列为:

  • 案例描述:品类的人均消费金额、人均消费数量对比
  • 可视化的焦点:按照品类计算人均消费金额人均消费数量
  • 需要参考的额外背景数据:每个顾客消费金额合计和消费数量合计(因为数据库中,每个会员对应很多条商品明细)

因为人均消费金额和人均消费数量不在可视化的层面,就需要使用LOD表达式计算之后再可视化,于是有了“计算字段”:

  • 人均消费金额= { fixed [cardcode] : sum( [xsje] ) }
  • 人均消费数量= { fixed [cardcode] : sum( [xssl] ) }

如果仅仅有一年的数据,到这一步,上面的数据需求就分析好了,在Tableau中把 品类、人均消费数量和人均消费金额分别拖入列、行就好了。

更进一步,当我同时导入了两年的数据时,计算就需要区分不同的年份,在LOD表达式中,把年份也要加入到维度中,因此就有了:

  • 人均消费金额= { fixed [cardcode] , YEAR( [xssj] ) : sum( [xsje] ) }
  • 人均消费数量= { fixed [cardcode] , YEAR( [xssj] ) : sum( [xssl] ) }
// cardcode:会员卡号,唯一; xsje,单笔销售金额;xssl,单品销售数量;xssj:销售时间。

这样,把品类、人均消费金额和人均消费数量分别拖入列和行,然后把消费时间(默认是年)拖入标记的颜色,更改默认的柱状图为折现图,显示数据点,一气呵成,具体的过程如图。

(数据保密期间,维度和数值没有体现出来,仅反映数据过程)

KDDM99XrJS
各品类的顾客人均消费金额数量年同比

这么看来,使用LOD分析数据也很容易上手,熟悉了LOD的知识,采纳上面的分析思路,数据的展现就没问题了。

好了,这是我学习LOD的终极总结秘籍,还有不明白的,就需要自己多多练习了。

完整的LOD学习,请按照以下顺序阅读:

  1. 【Tableau】详细级别表达式_从0到1的入门 1
  2. 2【Tableau】详细级别表达式_位置与语法 2
  3. Tableau|LOD详细级别表达式终极实操(3)
  4. Tableau| LOD 核心要点回顾(4)
  5. 【Tableau】15大详细级别表达式-深度解读 (5)

 

三、福利:官方博客资源:

【入门】 Tableau 9 预览: 详细级别表达式的介绍   ROBIN COTTISS    2015/02/18

这篇文章是LOD新功能的官方介绍,也是Tableau 9 系列帖子之一。
【进阶】深入了解详细级别表达式 – 第二周   BRONSON SHONK   2015/02/23

这篇博文教我们使用Fixed表达式,制作基于消费明细单做顾客购买次数的分布(订单直方图)、每天的累计利润、比较销售。

 

【高阶】深入钻研详细级别表达式 – 第 3 周     BETHANY LYONS  2015/03/03

这一篇在用三个例子介绍了LOD在更高级别、更低级别、当前级别的应用。

第一个示例是参考更低的详细级别,第二个示例是查看当前详细级别以外的其他详细级别,第三个示例是查看更高的详细级别。

【修炼】 15 大详细级别表达式    BETHANY LYONS  2015/04/06

这是官方的15大案例,想尽其能,好好读读吧。鉴于官方的说明过于简明扼要,我做了白话版本的说明,对小白非常有帮助,可以参考下面的LOD系列之5的博客。

【白皮书】

详细级别 (LOD) 表达式 白皮书  这个官方的白皮书值得好好深入学习,我之前的博文,很多内容来自这里。反复阅读,就明白了LOD的初衷和技术方法,尤其要明白它的背后逻辑思路。

点击下载白皮书: LOD详细表达式whitepaper_lod_zh-cn_0 2

【官方help指南】

   详细级别表达式

官方help帮助指南其实是我的最爱,可以搜索,可以下载,还有中英文可以对照,是值得查阅的掌中宝。

 

David.wu
David.Wu 2017/9/6