

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在数据透视表中使用表计算


您可以使用表计算向包含度量 (数字值) 的数据透视表单元格应用统计函数。下面几节介绍可在计算中使用哪些函数以及如何应用或删除这些函数。

单元格值的数据类型会自动更改以适合您的计算。例如，假设您将 **Rank** 函数应用于货币数据类型。值将显示为整数而不是货币，因为排名的度量单位不是货币。同样，如果您应用 **Percent difference** (差额百分比) 函数，单元格值将显示为百分比。

**Topics**
+ [

# 添加和删除数据透视表计算
](adding-a-calculation.md)
+ [

# 数据透视表计算函数
](supported-functions.md)
+ [

# 应用数据透视表计算的方法
](supported-applications.md)

# 添加和删除数据透视表计算


要在数据透视表上添加、修改和删除表计算，请按照以下过程操作。

**Topics**
+ [

# 添加数据透视表计算
](add-a-calculation.md)
+ [

# 更改计算的应用方式
](change-how-a-calculation-is-applied.md)
+ [

# 移除计算
](remove-a-calculation.md)

# 添加数据透视表计算


要向数据透视表添加表计算，请按照以下过程操作。

**向数据透视表添加表计算**

1. 通过选择视觉对象底部附近的字段井，展开**字段井**窗格。

1. 在 **Values** 字段井中选择要应用表计算的字段，选择 **Add table calculation**，然后选择要应用的函数。

**注意**  
如果按度量对数据透视表进行排序，您无法运行“Total”、“Difference”和“Percent Difference”表计算。要使用这些表计算，请从数据透视表中移除排序。

# 更改计算的应用方式


要更改将表计算应用到数据透视表的方式，请按照以下过程操作。

**更改将表计算应用于数据透视表的方式**

1. 通过选择视觉对象顶部的字段井，展开 **Field wells (字段井)** 窗格。

1. 在 **Values (值)** 字段井中选择具有要更改的表计算的字段，选择 **Calculate as (计算方式)**，然后选择要应用计算的方式。

# 移除计算


要从数据透视表删除表计算，请按照以下过程操作。

**从数据透视表中移除表计算**

1. 通过选择视觉对象底部附近的字段井，展开**字段井**窗格。

1. 在**值**字段井中选择要移除表计算的字段，然后选择**移除**。

# 数据透视表计算函数


您可以在数据透视表计算中使用以下函数。

**Topics**
+ [

## Running total
](#running-total)
+ [

## 区别
](#difference)
+ [

## Percentage difference
](#percent-difference)
+ [

## Percent of total
](#percent-of-total)
+ [

## Rank
](#rank)
+ [

## 百分位数
](#percentile)

您可以将列出的函数应用于以下数据：

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/running-total1.png)


![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/running-total1.png)


## Running total


**Running total** 函数计算给定单元格值与其之前的所有单元格值的总和。此总和的计算方法为 `Cell1=Cell1, Cell2=Cell1+Cell2, Cell3=Cell1+Cell2+Cell3`，依此类推。

**计算方式**选择**表横向**，沿表行应用 **Running total** 函数会得到以下结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/running-total2.png)


## 区别


**Difference** 函数计算单元格值与其之前单元格值的差值。此差值的计算方法为 `Cell1=Cell1-null, Cell2=Cell2-Cell1, Cell3=Cell3-Cell2,`，依此类推。由于 `Cell1-null = null`，Cell1 值始终为空。

**计算方式**选择**表横向**，沿表行应用 **Difference** 函数得到以下结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/difference.png)


## Percentage difference


**Percentage Difference** 函数计算单元格值与其之前单元格值的百分比差值，然后除以其之前单元格的值。此值的计算方法为 `Cell1=(Cell1-null)/null, Cell2=(Cell2-Cell1)/Cell1, Cell3=(Cell3-Cell2)/Cell2,`，依此类推。由于 `(Cell1-null)/null = null`，Cell1 值始终为空。

**计算方式**选择**表横向**，沿表行应用 **Percentage Difference** 函数得到以下结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentage-difference.png)


## Percent of total


**Percent of Total** 函数计算给定单元格占计算中包含的所有单元格总和的百分比。此百分比的计算方法为 `Cell1=Cell1/(sum of all cells), Cell2=Cell2/(sum of all cells),`，依此类推。

**计算方式**选择**表横向**，沿表行应用 **Percent of Total** 函数得到以下结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percent-of-total.png)


## Rank


**Rank** 函数计算单元格值与计算中包含的其他单元格值相比较的排名。Rank 始终将最高值显示为 1，最低值等于计算中包含的单元格数。如果两个或更多单元格具有相等的值，则它们排名相同，但在排名中各占一位。因此，下一个最高值的排名将下降该值所占的单元格数减 1。例如，如果对 5,3,3,4,3,2 排名，它们的排名将是 1,3,3,2,3,6。

例如，假设您具有以下数据。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/rank.png)


**计算方式**选择**表横向**，沿表行应用 **Rank** 函数得到以下结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/rank2.png)


## 百分位数


**Percentile** 函数计算的是计算中包含的等于或低于给定单元格值的单元格值百分比。

此百分比的计算方式如下：

```
percentile rank(x) = 100 * B / N

Where:
   B = number of scores below x
   N = number of scores
```

**计算方式**选择**表横向**，沿表行应用 **Percentile** 函数得到以下结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/percentile.png)


# 应用数据透视表计算的方法


您可以按照下述方式应用表计算。表计算一次仅应用于一个字段。因此，如果数据透视表包含多个值，则计算只应用到表示已应用计算的字段的单元格。

**Topics**
+ [

## 表横向
](#table-across)
+ [

## 表纵向
](#table-down)
+ [

## 表先横后纵
](#table-across-down)
+ [

## 表先纵后横
](#table-down-across)
+ [

## 组横向
](#group-across)
+ [

## 组纵向
](#group-down)
+ [

## 组先横后纵
](#group-across-down)
+ [

## 组先纵后横
](#group-down-across)

## 表横向


使用 **Table across (表横向)** 将沿数据透视表中的行应用计算，而不考虑分组。这种应用方式是默认值。例如，使用以下数据透视表。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sample-pivot.png)


使用**表横向**方式应用 **Running total** 函数会得到以下结果（在最后一列中显示行总计）。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/table-across.png)


## 表纵向


使用 **Table down (表纵向)** 将沿数据透视表中的列应用计算，而不考虑分组。

使用**表纵向**方式应用 **Running total** 函数会得到以下结果（在最后一行中显示列总计）。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/table-down.png)


## 表先横后纵


使用 **Table across down (表先横后纵)** 将沿数据透视表中的行应用计算，得到结果后再沿数据透视表中的列应用计算。

使用**表先横后纵**应用 **Running total** 函数会得到以下结果。在这种情况下，总计将同时纵向和横向求和，总数显示在右下方的单元格中。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/running-total-across-down.png)


在这种情况下，假设您使用**表先横后纵**方式应用 **Rank** 函数。这样做意味着先沿表行确定初始排名，然后这些排名再沿着列排名。这种方法会向您提供以下结果。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/rank-table-across-down.png)


## 表先纵后横


使用 **Table down across (表先纵后横)** 将沿数据透视表中的列应用计算。然后，获取结果并沿数据透视表中的行对结果重新应用计算。

您可以使用**表先纵后横**方式应用 **Running total** 函数得到以下结果。在这种情况下，总计将同时纵向和横向求和，总数显示在右下方的单元格中。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/running-total-down-across.png)


您可以使用**表先纵后横**方式应用 **Rank** 函数得到以下结果。在这种情况下，初始排名是沿表列确定的。然后，这些排名再沿着行进行排名。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/rank-table-down-across.png)


## 组横向


使用 **Group across (组横向)** 将在分组边界（由应用到列的第二级分组确定）内沿数据透视表中的行应用计算。例如，如果先按字段 2 分组，然后按字段 1 分组，则在字段 2 级别应用分组。如果您按字段 3、字段 2 和字段 1 的顺序分组，则会重新在字段 2 级别应用分组。没有任何分组时，**Group across (组横向)** 会返回与 **Table across (表横向)** 相同的结果。

例如，使用以下数据透视表，其中的列先按 `Service Line` 分组，然后按 `Consumption Channel` 分组。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sample-pivot.png)


您可以使用**组横向**方式应用 **Running total** 函数得到以下结果。在这种情况下，函数在每个服务类别分组的列确定的边界内沿行应用。`Mobile` 列针对给定行表示的 `Customer Region` 和 `Date`（年份），显示给定 `Service Line` 的两个 `Consumption Channel` 值的总计。例如，突出显示的单元格表示针对名为 `Billing` 的 `Service Line` 中的所有 `Consumption Channel` 值，在 `2012` 年份的 `APAC` 区域的总计。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/group-across.png)


## 组纵向


使用 **Group down (组纵向)** 将在分组边界（由应用到行的第二级分组确定）内沿数据透视表中的列应用计算。例如，如果先按字段 2 分组，然后按字段 1 分组，则在字段 2 级别应用分组。如果您按字段 3、字段 2 和字段 1 的顺序分组，则会重新在字段 2 级别应用分组。没有任何分组时，**Group down (组纵向)** 将返回与 **Table down (表纵向)** 相同的结果。

例如，使用以下数据透视表，其中的行先按 `Customer Region` 分组，然后按 `Date`（年份）分组。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sample-pivot.png)


您可以使用**组纵向**方式应用 **Running total** 函数得到以下结果。在这种情况下，函数在每个 `Customer Region` 分组的行确定的边界内沿列应用。`2014` 行显示对于给定列表示的 `Service Line` 和 `Consumption Channel`，在给定 `Customer Region` 的所有年份的总计。例如，突出显示的单元格表示对于报告中显示的所有 `Date`（年份）值，`Mobile` 渠道的 `Billing` 服务的 `APAC` 区域总计。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/group-down.png)


## 组先横后纵


使用 **Group across down (组先横后纵)** 将在分组边界（由应用到列的第二级分组确定）内沿行应用计算。然后，该函数沿数据透视表中的列对得到的结果重新应用计算。同样在分组边界（由应用到行的第二级分组确定）内重新应用计算。

例如，如果先按字段 2 对行或列分组，然后按字段 1 分组，则在字段 2 级别应用分组。如果您按字段 3、字段 2 和字段 1 的顺序分组，则会重新在字段 2 级别应用分组。没有任何分组时，**Group across down (组先横后纵)** 会返回与 **Table across down (表先横后纵)** 相同的结果。

例如，使用以下数据透视表，其中的列先按 `Service Line` 分组，然后按 `Consumption Channel` 分组。行先按 `Customer Region` 分组，然后按 `Date`（年份）分组。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sample-pivot.png)


您可以使用**组先横后纵**方式应用 **Running total** 函数得到以下结果。在这种情况下，总计在分组边界内先纵向后横向求和。此处，这些边界对于行来说为 `Customer Region`，对于列来说为 `Service Line`。分组右下角的单元格中为总计。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/running-total-group-across-down.png)


您可以使用**组先横后纵**方式应用 **Rank** 函数得到以下结果。在这种情况下，函数首先在每个 `Service Line` 分组的边界内沿行应用。然后向第一次计算的结果再次应用函数，这次在每个 `Customer Region` 分组确定的边界内沿列应用。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/rank-group-across-down.png)


## 组先纵后横


使用 **Group down across (组先纵后横)** 将在分组边界（由应用到行的第二级分组确定）内沿列应用计算。然后，Amazon Quick 获取结果并将计算结果重新应用于数据透视表的各行。同样，它在分组边界内 (由应用到列的第二级分组确定) 重新应用计算。

例如，如果先按字段 2 对行或列分组，然后按字段 1 分组，则在字段 2 级别应用分组。如果您按字段 3、字段 2 和字段 1 的顺序分组，则会重新在字段 2 级别应用分组。没有任何分组时，**Group down across (组先纵后横)** 会返回与 **Table down across (表先纵后横)** 相同的结果。

例如，使用以下数据透视表。列先按 `Service Line` 分组，然后按 `Consumption Channel` 分组。行先按 `Customer Region` 分组，然后按 `Date`（年份）分组。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/sample-pivot.png)


您可以使用**组先纵后横**方式应用 **Running total** 函数得到以下结果。在这种情况下，总计在分组边界内先纵向后横向求和。在这种情况下，这些边界对于列来说为 `Service Category`，对于行来说为 `Customer Region`。将在分组的右下角单元格中显示总计。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/running-total-group-across-down.png)


您可以使用**组先纵后横**方式应用 **Rank** 函数得到以下结果。在这种情况下，函数首先在每个 `Customer Region` 分组确定的边界内沿列应用。然后向第一次计算的结果再次应用函数，这次在每个 `Service Line` 分组确定的边界内沿行应用。

![\[alt text not found\]](http://docs.amazonaws.cn/quick/latest/userguide/images/rank-group-down-across.png)
