tableau 如何选择tableau计算类型?基本计算 / LOD计算 / 表计算

article/2025/11/8 23:36:09

一、计算在数据源和分析中的位置

        基本计算LOD表达式是数据源查询的计算,返回的是一个结果集。统称为custom calculation,生成的结果是custom filed 自定义字段,字段在哪里?字段在数据源层面

        ① 基本计算和LOD计算是在数据源层面的计算,部分字段具有全局意义

比如创建一个“成本”字段,[cost]=[sales]-[profit],这个行级别字段在商品明细行级别具有意义的,在聚合后也具有意义;

        ② 但大部分不像维度或度量字段具有全局的意义,这些自定义字段受限于视图。

比如视图计算字段,比如sum([cost])=sum([sales])-sum([profit]),通过把聚合计算加入视图,可以让tableau自己决定在哪个层面执行聚合;

再比如创建LOD计算字段,{fixed [customer ID]: avg([sales])},虽然也会在数据源层面创建,但行级别的这个字段是没有意义的,只有在详细级别或相关视图级别上才具有意义。

        表计算table calculation是对视图详细级别聚合结果的二次计算,既然是视图详细级别,它要求的数据必须是聚合计算。它生成的是什么?是结果集,而且立刻在视图上显示,并没有在数据源层面创建字段或者有影响

二、表计算的独特用法

        基本计算和LOD表达式:只能为每个数据分区或分组输出单一值。表计算和其他计算最大的区别在于它能够以一个表达式,在每个数据分区(单元格、区、表)返回多个值。清晰的理解这一点,才能明白为什么只有表计算才能满足下列特别需求:

  • 排序
  • 递归(比如:累计总计)
  • 移动计算(比如:移动平均)
  • 行内计算(比如:期间对照计算)

        这几个计算,都是返回多个值,最简单的比如“排序”,一个rank()可以为视图中的一百行数据返回100个数值,比如total计算,根据分区寻址,返回多个值。这是基本计算和LOD计算做不到的

三、如何选择计算?

1. 特殊用法、数据齐全,则优先表计算,因为表计算更快,与数据源无关

2. 多个数据详细级别,使用LOD表达式

3. 使用基本字段增加新字段,比如比率、达成度等

第一次判断:是否是特殊计算?

第二次判断:视图中有所需要的数据吗?

第三次判断:如果视图层面没有需要的数据,怎么办?
        【一】应该首先将相关的数据字段拖入到视图,如果颗粒度完整,重新尝试表计算。常见的表计算已经在快速表计算预设了。

        【二】在判断是否视图具有所有数据时,一定要区分聚合数据和非聚合数据。
        比如:我们有一个各个子分类销售额的散点图,需求是计算各子分类的总额百分比,貌似我们拥有相关的数据,其实不在一个详细级别。总额百分比需要计算聚合的占比,散点图的数据不是聚合,需要先执行聚合(颗粒度降低)

四、总结

计算名称基本计算LOD表达式计算表计算
说明数据源层面的计算特别语法:处理在一个视图中,涉及到多个详细级别数据的问题对数据返回的聚合结果的二次聚合
计算结果

行级别基本计算:非聚合,每行返回一个值。比如split函数、if逻辑计算等。

视图级别基本计算:聚合,更具视图详细级别返回聚合值,比如count计数计算,sum求和计算。

返回的结果是一个数组,构成一个维度fixed或度量根据分区和寻址,返回多个值
与数据源的关系在数据源层面计算,生成一个新字段在数据源层面计算,生成一个新字段,但在视图层面才有意义与数据源无关,是对视图聚合的二次聚合
与视图详细级别的关系颗粒度高于视图详细级别颗粒度可以高于视图详细级别include,也可以低于exclude,或者指定详细级别fixed优先级在视图之后,聚合度高于视图级别
优势多种方式可选,逻辑计算,字符串计算,日期函数,类型转换,聚合函数更好的操控数据的颗粒度无需编程,使用常见的表计算

五、案例——示例超市数据

        问题1:顾客复购率矩阵分析:各个季度的新客户,在接下来的第1、第2、第3、第N季度的复购率分别是多少?

        问题2:客户生命周期区间的分析: 对于某个月份的100名获客样本而言,复购率60%就意味着有40%的群体短暂流失或者沉睡了,当然,这个流失/沉睡是相对于单月而言,也可能间隔两个月再次消费。这就是 为什么老客户在前期复购率低,而在后期复购率反而提高——有效的会员政策和营销策略的目的,即在于激活会员的有效复购,让沉睡的会员苏醒重新加入活跃群体。来自客户的几个问题,如下:
1、在过去的一年中有多少客户购买间隔少于3个月、3~ 6个月、6~ 9个月、9~12个月和超过12M个月的?(典型的分布分析,分布区间为客户生命周期经度区间)
2、前30%绩效客户和后30%绩效客户;
3、按地区、部门或省份进行客户绩效分析

1、问题分析

      按照此前问题解析的方法,这个问题是典型的高级分析——同时包含了两个层次。何为高级分析?在问题的筛选器、问题层次和聚合度量中,只有有一个位置包含了另一个层次的聚合。 高级的高级分析甚至会同时在多个位置引用其他层次的聚合。日期以连续的季度为层次聚合,统称之为“获客季度”。

1.1 单一层次:每个季度的客户数量

主视图:运用的是视图计算

 1.2 在主视图的基础上,增加客户所在矩阵

         通俗来讲,就是将总客户量划分为2018年新客户/2019年下单新客户/2020年下单新客户/2021年下单新客户。

        视图的维度是“季度”(层次是客户,聚合是sum客户名称),我们要引用“每个客户的首次订单所在的季度”(层次是客户,聚合是min订单日期),很明显二者是独立的层次,因此使用fixed lod计算返回每位客户的首次订单日期以识别客户为哪年的新客户。之后将这个字段加入到视图中,作为颜色。这样就是“客户不同获客季度矩阵,在接下来各个订单日期季度消费的客户数量”。

        蓝色的线:首次下单日期在2018年的客户群,在未来几年的下单数量

        这样,我们可以说包含了问题分析需要的两个维度(订单日期季度和客户首次订单日期),以及需要的聚合度量(客户数量)。接下来的关键是调整视图并完成计算。

2、构建基本的矩阵

        但数据太多,折线反而显得混乱,我们可以尝试使用数字构建的矩阵代替。构建矩阵需要把日期改成离散,可以使用智能推荐调整。

         这样,我们就有了数据的雏形了,不过复购率还为时尚早,这里有三个问题:

a、矩阵中仅有每个订单日期季度的消费客户数量,却没有每个“获客季度”的客户数量总和

b、矩阵中的数据,仅仅在每一行上有意义,不同获客季度的客户数量不同,因此相互之间的比较没有意义,因此需要借助每个获客季度的客户数量总和,计算每个消费日期季度的比率(相当于获客季度的确定性样本)。

c、每个获客季度的时间不同,接下来的消费日期季度显然也不同。如何比较2019Q3的获客客户和2020Q2的获客客户,分别在接下来的四个季度的复购率,才是关键。

3、增加更高层次的聚合——每个“获客季度”的客户数量

        问题a就是要找到每个获客季度的客户数量,这个数据是可以由不同消费日期的客户数量,通过不重复的计算countd获得。获客季度的客户数量,层次高于当前视图。

        total( countd([客户名称]))

        不过,直接在视图中添加这个计算后,由于度量默认聚合,聚合生成坐标轴,因此矩阵中增加了坐标轴。此时需要字段上右键改为“离散”,此时依然不对,因为计算的分区错误。还需要配合设置计算依据为:订单日期季度

        这样,视图中就有了统一的比较依据。 这里增加一个简单的步骤,计算复购率,就是每个矩阵中的客户计数,除以对应获客季度的客户计数,即:

        计算复购率=每个矩阵中客户计数/对应获客季度的总客户计数

        countd([客户名称]) / total( countd([客户名称]))

         至此,复购率的计算就完成了,由于这里使用的是每个客户名称的首次订单日期,因此第一个季度自然是100%。在业务环境中,销售人员的成交通常晚于入职时间,因此首月的转化可以视为客户消费能力和培训效果的指标。

        这里最后面临一个问题,虽然可以直观的查看每个获客季度在此后各个季度的复购率,但无法直观的纵向比较。这就涉及到如何把绝对的日期轴,通过处理更改为相对的日期轴。

4、通过表计算更改坐标轴——公共基准的日期

        如何将绝对日期改为相对日期?即相对于每个获客季度的第1、 第2、第3……呢?只是日期的次序转化,首先考虑使用Tableau表计算的index函数

        直接在订单日期后输入index(),数值默认生成连续的坐标轴, 这里还需要改为离散,如下图。

         这里的index是基于所有日期的基准,我们希望仅保留基准 index,而不再显示订单日期本身。注意,只是不显示,不能移除,因为订单日期字段是index字段的依据。可以把它拖到左侧标记的“详细信息”中。

        此时进入了最重要的一步——如何设置表计算的依据。默认的 index只有1,因为它默认采用的相对分区方法(表、区、单元格)无法识别标记中的字段。这里,每个获客日期为独立的分 区,index的依据是订单日期——第一个月就是绝对日期的相对坐标而已。因此设置index表计算的计算依据为:订单日期。如下:

        公共基准的获客季度客户复购。这样,就几近完美了。

        接下来,可以调整一下颜色,比如识别复购率大于20%的矩阵;也可以隐藏第一个季度(受限于这里的方法,第一个季度都是100%,影响了其他复购率的显示)。

        这样,我们就可以清楚地看到每个获客季度在此后各个季度的复购率情况(在这个季度有消费即为复购)。通过2018年第一 季度的指标可以看出,起初几个季度的复购并不高,但是到了后面几个季度,复购反而提高了,这说明老客户的购买能力比较好。这也和客户的首次矩阵相对应。

         问题2:客户生命周期区间的分析: 对于某个月份的100名获客样本而言,复购率60%就意味着有40%的群体短暂流失或者沉睡了,当然,这个流失/沉睡是相对于单月而言,也可能间隔两个月再次消费。这就是 为什么老客户在前期复购率低,而在后期复购率反而提高——有效的会员政策和营销策略的目的,即在于激活会员的有效复购,让沉睡的会员苏醒重新加入活跃群体。来自客户的几个问题,如下:
1、在过去的一年中有多少客户购买间隔少于3个月、3~ 6个月、6~ 9个月、9~12个月和超过12M个月的?(典型的分布分析,分布区间为客户生命周期经度区间)
2、前30%绩效客户和后30%绩效客户
3、按地区、部门或省份进行客户绩效分析

        客户矩阵分布。对于客户生命周期区间的分析: 对于某个月份的100名获客样本而言,复购率60%就意味着有40%的群体短暂流失或者沉睡了,当然,这个流失/沉睡是相对于单月而言,也可能间隔两个月再次消费。这就是为什么老客户在前期复购率低,而在后期复购率反而提高——有效的会员政策和营销策略的目的,即在于激活会员的有效复购,让沉睡的会员苏醒重新加入活跃群体。

1、先看第一个问题,不同客户生命周期区间的分布。

         视图中是对客户的计数,而生命周期来自客户层次的计算,因此这里使用fixed lod在客户层次计算每个客户的生命周期,生命周期又依赖于每个客户的首次订单日期和最后一次订单日期。

L生命周期 = datediff('month', {FIXED [客户名称]:MIN([订单日期])},
                    {FIXED [客户名称]:MAX([订单日期])})

L生命周期_区间=IF [L生命周期 ]<=3 THEN '<=3'
ELSEIF [L生命周期 ] <=6 THEN '3~=6'
ELSEIF [L生命周期 ] <=9 THEN '6~=9'
ELSEIF [L生命周期 ] <=12 THEN '9~=12'
ELSE '>12'
END

        a、如果是看2021年的客户情况,首先可以针对每个月的样本做不同的客户数量或者转化率。为什么,因为10月份的新客户都在“小于3个月”的阶段,不是这些客户不努力,而是时间未到,越近的时间范围,就越缺少准确性和样本意义。 如果把每个月份的客户分开计算,就避免了相互干扰。

 

        这里的生命周期区间,类似于此前的“第1个月、第2个月、第 N个月的复购”的公共基准。

        我们发现,老客户在一年以上的复购率非常高。 不过,有什么问题吗? 复购率明显与分析的样本有关,如果一次看三年的数据,超过 12个月的客户就会很多,因此可以尝试增加分析样本。比如只看2020年的新客户——注意,这里应该以首次订单日期为筛选条件,而非订单日期

        2020年的新客户的购买,可能发生在接下来的两年中,这样即便是2020年12 月的新客户,也有可能成为“大于12个月”的生命周期区间。因此分析就比较客观。可见,小于3个月就流失的客户比例比较低,老客户的稳定性比较高。3 到6,6到9的客户区间有时候竟然为0,也就是客户成长阶段在初期就决定了, 中途下车的情况比较少。


http://chatgpt.dhexx.cn/article/3Ni4KIcZ.shtml

相关文章

tableau:表计算

先创建一个‘利润2’的计算字段来copy一下‘利润’&#xff1a; 然后按照下图操作&#xff1a; 然后我们对‘利润2’添加表计算&#xff08;比如说我们这里选择‘汇总’&#xff09;&#xff1a; 然后就变成了下面这样&#xff1a; 可以看到红色圈圈那里多了一个小三角形&a…

Tableau 表计算函数

关注微信公共号&#xff1a;小程在线 关注CSDN博客&#xff1a;程志伟的博客 使用表计算函数可自定义表计算。 表计算应用于整个表中值的计算&#xff0c; 通常依赖于表结构本身。 1.FIRST() 返回从当前行到分区中第一行的行数。 例如&#xff0c; 计算每季度销售额。在Date…

Tableau(9):计算字段、表计算、自定义表计算

文章目录 一、计算字段二、表计算三、自定义表计算参考资料 一、计算字段 步骤1&#xff1a;导入全球超市订单数据   步骤2&#xff1a;创建成本&#xff08;销售额-利润&#xff09;字段 步骤3&#xff1a;创建盈利标志&#xff08;若利润大于0盈利&#xff0c;反之就是…

Tableau中的表计算

Tableau中的普通计算是把数据发送给数据源端进行计算&#xff0c;而表计算是在已经取得的查询结果基础上由Tableau做的进一步计算&#xff0c;即在结果表格里进行计算。Tableau中常见的表计算类型主要有&#xff1a;差异、百分比差异、合计百分比、排序、百分位、汇总及移动计算…

S3C2440的UART详解2440

转载出处&#xff1a;http://www.cnblogs.com/idle_man/archive/2010/12/19/1910548.html 1、UART原理简介 在介绍2440的UART控制器之前&#xff0c;我们首先来了解一下UART的原理。 UART&#xff1a;Universal Asynchronous Receiver/Transmitter(通用异步收发送器)&#xf…

《Linux驱动:s3c2440 lcd 驱动分析--终结篇》

文章目录 一&#xff0c;前言二&#xff0c;LCD原理和硬件分析2.1 LCD原理解析2.2 硬件电路2.2.1 LCD背光电路2.2.2 LCD屏2.2.3 S3c2440主控 三&#xff0c;LCD应用平台总线-设备-驱动模型3.1 lcd 设备的加载和注册3.2 lcd 驱动的加载和注册3.2.1 编译进内核&#xff0c;加载驱…

JZ2440ARM裸机学习笔记

第1节 eop常见问题 1、未连接op/eop到电脑 2、有其他程序在使用op/eop&#xff08;同一时间只能有一个程序使用它&#xff09; 3、JTAG线未接 4、开发板未上电 5、oflash xxx.bin 时当前文件夹下没有xxx.bin 6、烧写完后没有正确设置启动开关 7、烧写完后&#xff0c;op…

裸机系列——2440时钟

自己的总结&#xff1a; 1.2440 有俩个PLL &#xff0c;UPLL 和MPLL 。UPLL 用于USB 时钟UCLK &#xff0c;MPLL 对应FCLK .HCLK 、PCLK 。ARM 启动时直接使用外部晶振作为CPU 时钟&#xff0c;对应2440 为12Mhz 。只有在设置了时钟寄存器M P S 三个值&#xff0c;具体的寄…

【mini2440】S3C2440的串口

1. 基本电路 2. 相关寄存器 2.1 引脚 2.2 框图 2.3 串口 3. 相关代码 S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号&#xff0c;包括 CPU 的 FCLK&#xff0c;AHB 总线外设的 HCLK 以及 APB 总线外设的 PCLK。S3C2440A 包含两个锁相环&#xff08;PLL&#xff09;&#…

mdk+2440

目前仍然有许多人在使用ADS1.2编译ARM9的程序&#xff0c;这款编译器实属经典&#xff0c;但是已经多年停止更新、维护了。这篇文章主要讲解ARM公司受够Keil之后力推的一款编译器MDK。 MDK的使用上和ADS1.2有很多相似之处&#xff0c;从ADS1.2过渡到MDK也是非常容易的一种事情。…

2440 时钟设置

首先需要知道时钟的概念&#xff1a; 1、是用来同步系统信号; 就举例来说&#xff1a; 如果你cpu用i2c传输一个数据给从机设备&#xff0c;那么你传输数据时从设备怎么知道数据有没有到达&#xff0c;多久检测一次数据线&#xff1f;&#xff1f;这个就需要时钟同步&#xff0c…

FL2440开发板简介及其烧录

目录 FL2440开发板简介 FL2440开发板 FL2440硬件资源列表 开发板存储系统&#xff1a; FL2440开发板烧录 FL2440烧录流程&#xff1a; 烧录准备工作 烧录文件: 硬件准备&#xff1a; 烧录过程 J-link操作&#xff1a; u-boot下烧录&#xff1a; 开发板启动流程&…

大数据分析平台和工具,主要有哪些?

1.Disco Disco最初由诺基亚开发&#xff0c;这是一种分布式计算框架&#xff0c;与Hadoop一样&#xff0c;它也基于MapReduce。它包括一种分布式文件系统以及支持数十亿个键和值的数据库。 支持的操作系统&#xff1a;Linux和OSX。 2.HPCC 作为Hadoop之外的一种选择&#x…

大数据分析平台的搭建方式有哪些

随着大数据时代的到来&#xff0c;数据价值的概念逐渐深入人心&#xff0c;许多企业开始搭建自己的大数据分析平台&#xff0c;以便在数据洪流中把握行业未来的发展方向。做任何事情之前&#xff0c;首先要设定目标和思路&#xff0c;然后根据确定的目标、思路和实际情况制定可…

目前大数据技术平台有很多,主要可以分为哪几类?

大数据的处理过程可以分为大数据采集、存储、结构化处理、隐私保护、挖掘、结果展示(发布)等&#xff0c;各种领域的大数据应用一般都会涉及到这些基本过程&#xff0c;但不同应用可能会有所侧重。对于互联网大数据而言&#xff0c;由于其具有独特完整的大数据特点&#xff0c;…

有哪些好的数据来源或者大数据平台?

分享下我自己平时收集的..共100多个O_O 网站分析类&#xff1a; 百度指数 - 以百度海量网民行为数据为基础的数据分享平台 Google趋势 - 了解 Google中热度上升的搜索 360指数 - 基于360搜索的大数据分享平台 Alexa - 网站排名 Google Analytics - Google出品&#xff0c;可…

大数据平台的软件有哪些?

查询引擎 一、Phoenix 简介&#xff1a;这是一个Java中间层&#xff0c;可以让开发者在Apache HBase上执行SQL查询。Phoenix完全使用Java编写&#xff0c;代码位于GitHub上&#xff0c;并且提供了一个客户端可嵌入的JDBC驱动。 Phoenix查询引擎会将SQL查询转换为一个或多个H…

[BigData]16家大数据分析平台

&#xfeff;&#xfeff; 对今天的企业来说&#xff0c;数据分析已经成为生死攸关的选择。我们分析一些著名的供应商&#xff0c;从Hadoop创业者到传统的数据库市场参与者。 革命 – 这个词汇十分准确地描述了我们所处的这个数据分析的时代。企业一方面紧紧握住大量不同类型的…

大数据网站汇总(数据搜集、大数据竞赛、)

一. 国家级大数据平台 1.1 国家大数据平台&#xff1a; 数据_中国政府网 (www.gov.cn) 1.2 司法大数据平台&#xff1a;中国司法大数据服务网 (court.gov.cn) 1.3 中国经济社会大数据研究平台&#xff1a;中国经济社会大数据研究平台 (cnki.net) 1.4 中国知网CNKI-总库&a…

linux cat命令的作用,Linux命令cat使用详解

cat命令功能&#xff1a; cat命令主要用来实现查看文件、创建文件、及合并、追加文件内容等功能。 cat命令主要参数&#xff1a; -n 或 –number&#xff1a;对输出文档的行数进行编号&#xff0c;从1开始。 -b 或 –number-nonblank&#xff1a;和 -n 功能相似&#xff0c;不同…