表计算

有时,仅展示原始数据并不满足我们的需求。如下图,展示的是每年各地区的销售额。
biaojisuan1.png
我们可能希望观察各地区销售额的占比,原始数据里并没有这样的信息,这种情况下可以借助表计算得到。如下图所示,我们使用了总额百分比表计算。

biaojisuan2.png
如果我们想观察每年各地区销售额的排名情况,则可使用排名表计算,结果如下图所示。

biaojisuan3.png
提供了7种表计算:差异、百分比、差异百分比、总额百分比、累积和、移动计算、排名。具体的使用方法可参考相关章节。

选中度量字段进行右键,下拉菜单内即可进入表计算。

biaojisuan4.png
表计算的配置面板如下。新用户可能对面板中的分区寻址有疑惑。

biaojisuan5.png
分区为表计算划定范围,寻址为表计算指定方向。比如我们需要在对每年的地区进行排名,分区就是“年”,寻址是“地区”。

biaojisuan6.png
如果我们对调一下,把“地区”变为分区,“年”变为寻址,那么我们得到的就是每个地区下各年的销售额排名,如下图所示:

biaojisuan7.png



差异

差异是一种表计算。它计算的是分组中某一项与其前一项的差异,如: 2014年“销售额”是100,2015年是200,则表计算后,销售额的差异是

$ 100 = 200 - 100 $
$ D_x = A_x - A_{x-1} $

注:这里的x-1并不是一定的,可以和其他项做计算,参照下文

差异只能出现在数字型的度量上,如要计算“销售额”的差异,首先需要把要计算的“销售额”胶囊拖拽到左边的面板上,并点击小三角找到表计算菜单选项(如下图):

img_1.png
打开表计算面板后,在计算类型中选择第一项

img_2.png
计算内容是决定当前视图中,哪些维度用来分区计算,哪些用来在区分好的组里面按照顺序做计算的,如上图中配置,我们可以得到以下图表中显示的计算结果。

img_3.png

可以看到,每一个分组的第一项因为没有前值,所以计算结果为空。

我们根据邮寄方式划分了四个小组分别作差异计算,在每个分组中沿着年(订单日期)中的2011 2012 2013 2014 按顺序计算与前一项的差异。

如果想要和其他项做差异计算,可以打开图2的配置面板中最下面的配置菜单

img_4.png



百分比

百分比是一种表计算。它计算的是分组中某一项与其前一项的比值(以百分比呈现),如: 2014年“销售额”是100,2015年是200,则表计算后,销售额的百分比是

$ 200\% = 200 \div100 \times 100\% $
$ P_x = A_x \div A_{x-1} \times 100\% $

注:这里的$ x-1 $并不是一定的,可以和其他项做计算,参照下文

百分比只能出现在数字型的度量上,如要计算“销售额”的百分比,首先需要把要计算的“销售额”胶囊拖拽到左边的面板上,并点击小三角找到表计算菜单选项(如下图):

img_1.png

打开表计算面板后,在计算类型中选择第二项

img_5.png

计算内容是决定当前视图中,哪些维度用来分区计算,哪些用来在区分好的组里面按照顺序做计算的,如上图中配置,我们可以得到以下图表中显示的计算结果。

img_6.png

可以看到,每一个分组的第一项因为没有前值,所以计算结果为空。

我们根据邮寄方式划分了四个小组分别作差异计算,在每个分组中沿着年(订单日期)中的2011 2012 2013 2014 按顺序计算与前一项的百分比。

对比上下两张图表,我们可以发现2014年销售额是2013年的200%。

如果想要和其他项做百分比计算,可以打开配置面板中最下面的配置菜单

img_4.png



差异百分比

差异百分比是一种表计算。它计算的是分组中某一项与其前一项的差异相对其自身的比值(以百分比呈现),如: 2014年“销售额”是100,2015年是200,则表计算后,销售额的差异百分比是

$ 100\% = (200 - 100) \div100 \times 100\% $
$ P_x = (A_x - A_{x-1}) \div A_{x-1} \times 100\% $

注:这里的$ x-1 $并不是一定的,可以和其他项做计算,参照下文

差异百分比只能出现在数字型的度量上,如要计算“销售额”的百分比,首先需要把要计算的“销售额”胶囊拖拽到左边的面板上,并点击小三角找到表计算菜单选项(如下图):

img_1.png

打开表计算面板后,在计算类型中选择第三项

img_7.png

计算内容是决定当前视图中,哪些维度用来分区计算,哪些用来在区分好的组里面按照顺序做计算的,如上图中配置,我们可以得到以下图表中显示的计算结果。
img_12.png

可以看到,每一个分组的第一项因为没有前值,所以计算结果为空。

我们根据邮寄方式划分了四个小组分别作差异百分比计算,在每个分组中沿着年(订单日期)中的2011 2012 2013 2014 按顺序计算与前一项的百分比。

对比上下两张图表,我们可以发现2014年销售额相比2013年的增长了100%。

如果想要和其他项做差异百分比计算,可以打开配置面板中最下面的配置菜单

img_4.png



总额百分比

总额百分比是一种表计算。它计算的是分组中某一项占它所在分组中总额的百分比,如: 上海的“销售额”是200,全国销售额是2000,则表计算后,销售额的总额百分比是

$ 10\% = 200 \div 2000 \times 100\% $
$ P_x = A_x \div \Sigma A \times 100\% $

总额百分比只能出现在数字型的度量上,如要计算“销售额”的总额百分比,首先需要把要计算的“销售额”胶囊拖拽到左边的面板上,并点击小三角找到表计算菜单选项(如下图):

img_1.png

打开表计算面板后,在计算类型中选择第四项

img_13.png

计算内容是决定当前视图中,哪些维度用来分区计算,哪些用来在区分好的组里面按照顺序做计算。这里,总额百分比并没有前后的概念所以寻址的顺序不影响结果,寻址中的邮寄方式代表着我们计算每个邮寄方式占所有邮寄方式总额的百分比。如上图中配置,以及当前面板的配置

img_15.png

我们可以得到以下图表中显示的计算结果。

img_14.png

可以看到,每一个邮寄方式的扇形上显示的标签即为总额百分比的值。
标准级的销售额占总额的58.14%。



累积和

累积和是一种表计算。它计算的是分组中某一项与其前面的所有项的总和,如: 2014年“销售额”是400,2011,2012,2013年分别是100,200,300,则表计算后,销售额的累积和是

$ 1000 = 100+200+300+400 $
$ CS_x = \Sigma_{i=0}^{x} A_{i} $

注:累积和支持基于当前结果再做其他表计算,叫做二次表计算,参照下文

累积和只能出现在数字型的度量上,如要计算“销售额”的累积和,首先需要把要计算的“销售额”胶囊拖拽到左边的面板上,并点击小三角找到表计算菜单选项(如下图):

img_1.png

打开表计算面板后,在计算类型中选择第五项

img_9.png

计算内容是决定当前视图中,哪些维度用来分区计算,哪些用来在区分好的组里面按照顺序做计算的,如上图中配置,我们可以得到以下图表中显示的计算结果。

img_16.png

我们根据邮寄方式划分了四个小组分别作累积和计算,在每个分组中沿着年(订单日期)中的2011 2012 2013 2014 按顺序计算与其前面所有值的和。

对比上下两张图表,我们可以发现标准级的2014年的总销售额约为1000万。

我们可以继续在这个累积和上做表计算,只需要在配置面板中最下面的复选框中打上勾,并在下面的二次表计算类型中做进一步的计算

img_17.png



移动计算

移动计算是一种表计算。它计算的是分组中某一项与其前后几项的聚合计算的结果(求和、平均、最大值、最小值),如: 2014年“销售额”是400,2013,2015年分别是200,600,则表计算后,销售额的前后一项平均值的移动计算是

$ 400 = (200 + 400 + 600) \div 3 $
$ WS_x(-1,1) = AGG_{x-i}^{x+1} $

注1:-1,1为确定前后项的参数,可调,在设置时只需要写绝对值
注2:移动计算的也可以包含当前项
注3:累积和支持基于当前结果再做其他表计算,叫做二次表计算,参照下文

如要计算“销售额”的移动计算,首先需要把要计算的“销售额”胶囊拖拽到左边的面板上,并点击小三角找到表计算菜单选项(如下图):

img_1.png

打开表计算面板后,在计算类型中选择第六项

img_10.png

计算内容是决定当前视图中,哪些维度用来分区计算,哪些用来在区分好的组里面按照顺序做计算的,如上图中配置,我们可以得到以下图表中显示的计算结果。

img_18.png

我们根据邮寄方式划分了四个小组分别作累积和计算,在每个分组中沿着年(订单日期)中的2011 2012 2013 2014 按顺序计算与其前面两项的值求和。

对比上下两张图表,我们可以发现标准级的2014年与前两年的销售额总和约为800万。

图2中除了可以指定聚合计算的类型,前后多少项,是否包含当前项,还可以选中包含前面所有项或后面所有项。

若没有足够的项则留空: 当前面或后面没有能够满足移动计算的足够数量的项时,不进行计算,留空。

我们可以继续在这个移动计算上做表计算,只需要在可以图2的配置面板中最下面的复选框中打上勾,并在下面的二次表计算类型中做进一步的计算

img_17.png



排名

排名是一种表计算。它计算的是分组中某一项在它所在分组中排序后的名次。

如要计算“销售额”的排名,首先需要把要计算的“销售额”胶囊拖拽到左边的面板上,并点击小三角找到表计算菜单选项(如下图):

img_1.png

打开表计算面板后,在计算类型中选择第七项:排序,还可以选择按升序或降序进行排序。

img_19.png

计算内容是决定当前视图中,哪些维度用来分区计算,哪些用来在区分好的组里面按照顺序做计算。如上图中配置,以及当前面板的配置

img_20.png

我们可以得到以下图表中显示的计算结果。

img_21.png

img_22.png

对照下图,我们可以看到上海的销售额是排名第一的。



表计算的动态计算方式

表计算新增了动态的计算方式,“动态”指的是设置计算方式时,不需要指定具体的维度,只需要指定计算方向,有数会自动将需要的维度放置在分区、寻址面板。

比如,在下图中,我们对于透视表进行排名表计算,当寻址方式设置为“表(横穿)”时,会横向对表中的数据进行排名,也就是对各年的销售额进行排名。

dongtaibiaojisuan1.png
如果我们将寻址方式设置为“表(向下)”,则会纵向对表中的数据进行排名,也就是对各地区的销售额进行排名,如图所示。

dongtaibiaojisuan2.png
因为动态表计算不需要指定具体的维度,所以当图表的字段发生变更时,会自动根据新的字段进行计算,比如,用“类别”字段替换掉“地区”字段,则会自动按照新的字段进行表计算,计算各类别的排名。

dongtaibiaojisuan3.png



计算字段

日期函数说明

日期函数的作用

日期函数允许您对数据源中的日期进行操作。
比如,您有一个日期字段(2018-1-1),您可以使用日期函数(例如 DATETRUNC 函数)依据这些现有值创建新的日期值。

示例

DATEADD(‘day’, 1, #2018-1-1#) = 2018-1-2
这个函数相当于把日期加了1天

数据分析中的日期函数

日期加法:DATEADD(日期部分,整数,日期型表达式) - 返回指定日期,该日期的指定 date_part 中添加了指定的数字间隔。

日期加法:DATEDIFF()

DATEADD(日期部分,整数,日期型表达式)

计算开始日期和借宿日期的日期部分的差值,将日期型表达式的日期部分增加整数,可使用的日期部分包括”year”,”quarter”,”month”,”week”,”day”,”hour”,”minute”,”second”;函数返回一个日期。

示例

DATEADD(‘month’,1, [订单时间])

该表达式表示将[订单时间]增加一个月

日期减法:DATEDIFF()

DATEDIFF(日期部分,开始日期,结束日期)

计算开始日期和结束日期的日期部分的差值,可使用的日期部分包括 “year”, “quarter”, “month”, “week”, “day”, “hour”, “minute”, “second”;函数返回一个整数。

示例

DATEDIFF(“DAY”, [发货时间], [收货时间]) 表示从发货到收货所用的天数

日期部分:DATEPART()

DATEPART(日期部分,日期型表达式)

返回指定日期型表达式的某个部分(由日期部分参数指定需要的部分),可使用的日期部分包括 “year”, “quarter”, “month”, “week”, “day” , “dayofweek”, “hour”, “minute”, “second”;函数返回一个整数。

示例

当 [日期] 为 1990-03-16 时 DATEPART(“month”, [日期]) = 3


日期截断:DATETRUNC()

DATETRUNC(日期部分,日期型表达式)

将日期型表达式的精度截断到指定部分(由日期部分参数指定),可使用的日期部分包括 “year”, “quarter”, “month”, “day”, “hour”, “minute”, “second”;函数返回一个日期。

示例

当 [日期] 字段的值为 1988-08-31, 1988-09-11, 1990-03-16… 时,DATETRUNC(“month”, [日期])的结果为 1988-08-01, 1988-08-01, 1990-03-01…


转为日期:DATE()

DATE(表达式)

在给定数字 字符串或日期表达式的情况下返回日期,数字按1970年1月1日的秒数计算日期。

示例

DATE(1487030400) 返回日期2017年2月14日
DATE(“2017-02-14”) 返回日期2017年2月14日
DATE(“2017-02-14 10:10:10”) 返回日期2017年2月14日


转为日期时间:DATETIME()

DATETIME(表达式)

在给定数字 字符串或日期时间表达式的情况下返回日期时间,数字按1970年1月1日的秒数计算日期时间。

示例

DATETIME(“2017-02-14”) 返回日期时间2017年2月14日 0时0分0秒
DATETIME(“2017-02-14 10:10:10”) 返回日期时间2017年2月14日 10时10分10秒
DATETIME(1487035400) 返回日期时间2017年2月14日 1时23分20秒


日期天数:DAY()

DAY(日期)

以整数的形式返回给定日期的天。

示例

DAY(DATE(“2017-04-19”)) = 19


日期月份:MONTH()

MONTH(日期型表达式)

以整数的形式返回给定日期的月份。

示例

MONTH(DATE(“2004-04-12”)) = 4


日期年份:YEAR()

YEAR(日期型表达式)

以整数的形式返回给定日期的年份。

示例

YEAR(DATE(“2017-04-19”)) = 2017


当前日期:TODAY()

TODAY()

返回当前日期,精确到天

示例

TODAY() 返回当前日期,精确到天


当前日期时间:NOW()

NOW()

返回当前日期和时间,精确到秒

示例

NOW() 返回当前日期时间,精确到秒


日期串解析:DATEPARSE()

DATEPARSE(格式串,字符串)

将字符串转成指定格式的日期

示例

DATEPARSE(“yyyy-mm-dd”, “2017-02-14”) 返回日期2017年2月14日
DATEPARSE(“yyyy/mm/dd hh:mi:ss”, “2017/02/14 18:30:15”)返回日期时间2017年2月14日 18点30分15秒”
DATEPARSE(“yyyy-mm-dd hh:mi:ss am”, “2017-11-02 03:30:15 PM”) = 返回日期时间2017年11月2日 15点30分15秒”


作者:admin  创建时间:2024-10-28 11:04
最后编辑:admin  更新时间:2024-10-28 13:13
即 即 即 即 即 即