笔者借鉴学习了6种tableau同比或环比计算方法。
20211123 增加各种方法的做法。
方法1:官方提供的快速表计算:年度同比增长
计算字段:
(ZN(SUM([Sales])) - LOOKUP(ZN(SUM([Sales])), -1)) / ABS(LOOKUP(ZN(SUM([Sales])), -1))
简易版:
zn(SUM([Sales]))/LOOKUP(zn(SUM([Sales])),-1)-1
方法2:筛选年份同比上一年
步骤一:创建参数,选择int格式的。
步骤二:创建一个筛选字段,并拖到筛选器,选择真,此处的select year是步骤一的参数字段。
int(DATEPART(‘year’,[Order Date]))= int([select year])
步骤三:重新创建一个订单日期字段,用途是应用步骤一的参数,使其生效。
if int(DATEPART(‘year’,[Order Date])) = int([select year]) then [Order Date] END
步骤四:计算本年sales。
{ FIXED DATEPART(‘month’, [Order Date]):sum(
IF int(datepart(‘year’,[Order Date])) = int([select year]) then [Sales] END)}
步骤五:计算去年sales。
{ FIXED DATEPART(‘month’, [Order Date]):sum(
IF int(datepart(‘year’,[Order Date])) = int([select year])-1 then [Sales] END)}
步骤六:计算同比
即: 步骤四的sales/步骤五的sales-1
步骤七:计算一个颜色字段,此处的year over year sales=步骤六的同比
IF SUM([year over year sales])>0 then ‘green’
步骤八:将相关字段拖到行列位置:
将步骤三的日期拖到列,选择月份;
将步骤六的同比拖到行,显示标签
将步骤七的颜色字段拖到颜色。
方法3:通过设定日期月度范围来比较销售额
步骤一:这里重点是筛选器日期设置,创建一个计算字段,将此字段先拖到行或者列,由离散字段转换为连续字段,再拖到筛选器,选择你需要的日期范围
LOOKUP(MIN([Order Date]),0)
步骤二:将order date 字段拖到列,选择离散字段的year,然后再下钻到月份。
步骤三:将sales拖到行,然后选择快速表计算的同比【year over year growth】,添加标签。
方法4:与去年、2年前、3年前对比
步骤一:创建一个计算字段表当前年份,【current year 】
{ max(YEAR([Order Date]))}
步骤二:创建一个参数int类型,【select comparison time】
-1,显示为去年
-2,显示为2年前
-3,显示为3年前
步骤三:创建一个字段计算为对比年【comparison year】,current year 为步骤一的计算字段,select
comparison time是步骤二的参数
[current year ]+[select comparison time ]
步骤四:创建当前年份的sales【current year sales 】,current year是步骤一的当前年份
if YEAR([Order Date])=[current year ] then [Sales] END
步骤五:对比年的销售额【comparison year sales】
if YEAR([Order Date])=[comparison year ] then [Sales] END
步骤六:计算同比【current vs Comparison】
sum([current year sales ])/sum([comparison year sales])-1
步骤七:创建正数对比和负数对比
正数对比:IF [current vs Comparison]>=0 then [current vs Comparison] END
负数对比:IF [current vs Comparison]<0 then [current vs Comparison] END
步骤八:将步骤四、步骤二、步骤七的内容都放到标记的【标签】内,调整顺序
方法5:根据时间维度计算同比
步骤和方法四差不多。