Pivot Tables

PivotTable

数据透视表。

JSON 表示法
{
  "rows": [
    {
      object (PivotGroup)
    }
  ],
  "columns": [
    {
      object (PivotGroup)
    }
  ],
  "criteria": {
    integer: {
      object (PivotFilterCriteria)
    },
    ...
  },
  "filterSpecs": [
    {
      object (PivotFilterSpec)
    }
  ],
  "values": [
    {
      object (PivotValue)
    }
  ],
  "valueLayout": enum (PivotValueLayout),
  "dataExecutionStatus": {
    object (DataExecutionStatus)
  },

  // Union field source_data can be only one of the following:
  "source": {
    object (GridRange)
  },
  "dataSourceId": string
  // End of list of possible types for union field source_data.
}
田野
rows[]

object (PivotGroup)

数据透视表中的各行分组。

columns[]

object (PivotGroup)

数据透视表中的每个列分组。

criteria
(deprecated)

map (key: integer, value: object ( PivotFilterCriteria))

每个来源列偏移量的可选过滤条件映射。

系统会先应用过滤条件,然后再将数据汇总到数据透视表中。映射的键是您要过滤的来源范围的列偏移量,值是该列的条件。

例如,如果来源是 C10:E150 将具有“列”的过滤条件 C,而键 1 代表列 D

此字段已弃用,取而代之的是 filterSpecs

filterSpecs[]

object (PivotFilterSpec)

汇总数据透视表数据之前应用于源列的过滤器。

系统会在响应中填充 criteriafilterSpecs。如果更新请求中同时指定了这两个字段,则此字段的优先级更高。

values[]

object (PivotValue)

要包含在数据透视表中的值的列表。

valueLayout

enum (PivotValueLayout)

值应水平(列)还是垂直(行)列出。

dataExecutionStatus

object (DataExecutionStatus)

仅限输出。数据源数据透视表的数据执行状态。

联合字段 source_data。数据透视表数据的来源。 source_data只能是以下其中一项:
source

object (GridRange)

数据透视表从中读取数据的范围。

dataSourceId

string

数据透视表从中读取数据的数据源的 ID。

PivotGroup

数据透视表中的单个分组(行或列)。

JSON 表示法
{
  "showTotals": boolean,
  "valueMetadata": [
    {
      object (PivotGroupValueMetadata)
    }
  ],
  "sortOrder": enum (SortOrder),
  "valueBucket": {
    object (PivotGroupSortValueBucket)
  },
  "repeatHeadings": boolean,
  "label": string,
  "groupRule": {
    object (PivotGroupRule)
  },
  "groupLimit": {
    object (PivotGroupLimit)
  },

  // Union field source can be only one of the following:
  "sourceColumnOffset": integer,
  "dataSourceColumnReference": {
    object (DataSourceColumnReference)
  }
  // End of list of possible types for union field source.
}
字段
showTotals

boolean

如果数据透视表应包含此分组的总计,则为 true。

valueMetadata[]

object (PivotGroupValueMetadata)

有关分组中值的元数据。

sortOrder

enum (SortOrder)

该组中值的排序顺序。

valueBucket

object (PivotGroupSortValueBucket)

要按其进行排序的对立数据透视表组的存储桶。如果未指定,则按照该组的值的字母顺序排序。

repeatHeadings

boolean

如果此数据透视组中的标题应重复,则为“true”。此字段仅对行分组有效,会被列忽略。

默认情况下,我们会尽量减少重复标题,避免在相同标题处显示更高级别的标题。例如,尽管下方的第三行对应于“第一季度(3 月)”,但系统不会显示“第一季度”,因为它与前几行重复。将 repeatHeadings 设置为 true 会导致“Q1”重复用于“2 月”和“Mar”

+--------------+
| Q1     | Jan |
|        | Feb |
|        | Mar |
+--------+-----+
| Q1 Total     |
+--------------+
label

string

用于可自定义行/列组的标签。例如,在下表中,行标签为 Region(可重命名为 State),列标签为 Product(可重命名为 Item)。2017 年 12 月之前创建的数据透视表没有标题标签。如果您想要向现有数据透视表添加标题标签,请删除现有数据透视表,然后使用相同的参数创建新的数据透视表。

+--------------+---------+-------+
| SUM of Units | Product |       |
| Region       | Pen     | Paper |
+--------------+---------+-------+
| New York     |     345 |    98 |
| Oregon       |     234 |   123 |
| Tennessee    |     531 |   415 |
+--------------+---------+-------+
| Grand Total  |    1110 |   636 |
+--------------+---------+-------+
groupRule

object (PivotGroupRule)

要应用于此行/列组的组规则。

groupLimit

object (PivotGroupLimit)

要应用于此数据透视表元素组的行数或列数限制。

联合字段 source。数据透视组的数据源。 source 只能是下列其中一项:
sourceColumnOffset

integer

此分组所依据的来源范围的列偏移量。

例如,如果来源为 C10:E15sourceColumnOffset0,则表示此组引用的是列 C,而偏移量 1 则引用的是列 D

dataSourceColumnReference

object (DataSourceColumnReference)

对此分组所依据的数据源列的引用。

PivotGroupValueMetadata

有关数据透视分组中值的元数据。

JSON 表示法
{
  "value": {
    object (ExtendedValue)
  },
  "collapsed": boolean
}
田野
value

object (ExtendedValue)

元数据对应的计算值。(请注意,formulaValue 无效,因为系统会计算值。)

collapsed

boolean

如果与该值对应的数据已收起,则为 true。

PivotGroupSortValueBucket

有关数据透视组中哪些值应该用于排序的信息。

JSON 表示法
{
  "valuesIndex": integer,
  "buckets": [
    {
      object (ExtendedValue)
    }
  ]
}
田野
valuesIndex

integer

PivotTable.values 列表中的偏移量,此分组中的值应按此偏移量进行排序。

buckets[]

object (ExtendedValue)

确定要从中选择值进行排序的存储桶。

例如,在包含一个行组和两个列组,则行组最多可列出两个值。第一个值对应于第一个列组中的某个值,第二个值对应于第二个列组中的一个值。如果未列出任何值,则表示该行应按各列组的“总计”进行排序。如果列出单个值,则表示使用该分桶的“总计”值。

PivotGroupRule

PivotGroup 上的可选设置,用于为来源数据列中的值定义分桶,而不是对每个单独的值进行细分。仅一个 PivotGroup 可能会为源数据中的每一列添加带有组规则的 ,但对于任何指定的列,您都可以同时添加 PivotGroup 包含规则和 PivotGroup 则不能。

JSON 表示法
{

  // Union field rule can be only one of the following:
  "manualRule": {
    object (ManualRule)
  },
  "histogramRule": {
    object (HistogramRule)
  },
  "dateTimeRule": {
    object (DateTimeRule)
  }
  // End of list of possible types for union field rule.
}
字段
联合字段 rule。要应用于 PivotGroup 的规则。 rule只能是以下其中一项:
manualRule

object (ManualRule)

ManualRule

histogramRule

object (HistogramRule)

HistogramRule

dateTimeRule

object (DateTimeRule)

DateTimeRule

ManualRule

可让您手动将源数据列中的值整理到您选择的名称对应的存储桶中。例如,按州汇总人口的数据透视表:

+-------+-------------------+
| State | SUM of Population |
+-------+-------------------+
| AK    |               0.7 |
| AL    |               4.8 |
| AR    |               2.9 |
...
+-------+-------------------+

可以转换为一个数据透视表,通过向手动分组规则提供组列表(例如,groupName = 'Central', items = ['AL', 'AR', 'IA', ...])来按时区汇总人口。请注意,通过向源数据中添加时区列并调整数据透视表,也可以实现类似的效果。

+-----------+-------------------+
| Time Zone | SUM of Population |
+-----------+-------------------+
| Central   |             106.3 |
| Eastern   |             151.9 |
| Mountain  |              17.4 |
...
+-----------+-------------------+
JSON 表示法
{
  "groups": [
    {
      object (ManualRuleGroup)
    }
  ]
}
字段
groups[]

object (ManualRuleGroup)

组名称列表以及与每个组名称对应的源数据中的相应项。

ManualRuleGroup

组名称,以及源数据中应放入此名称的组中的项列表。

JSON 表示法
{
  "groupName": {
    object (ExtendedValue)
  },
  "items": [
    {
      object (ExtendedValue)
    }
  ]
}
字段
groupName

object (ExtendedValue)

组名称,必须是一个字符串。给定 ManualRule 中的每个组都必须具有唯一的组名称。

items[]

object (ExtendedValue)

应放入此组的来源数据中的项。每一项可以是字符串、数字或布尔值。项最多只能出现在给定 ManualRule 内的 1 个组中。未出现在任何组中的项会单独显示。

HistogramRule

允许您将源数据列中的数值整理到常量大小的存储分区中。HistogramRule.startHistogramRule.end 之间的所有值都放入大小为 HistogramRule.interval 的组中。此外,下面的所有值 HistogramRule.start 置于一个组中,且以上所有值 HistogramRule.end 放在另一个文件夹中仅限 HistogramRule.interval 是必填字段,但如果 HistogramRule.startHistogramRule.end 两者均提供 HistogramRule.start 必须小于 HistogramRule.end。例如,一个包含 50 多行,按年龄段显示平均购买金额的 pivot 表:

+-----+-------------------+
| Age | AVERAGE of Amount |
+-----+-------------------+
| 16  |            $27.13 |
| 17  |             $5.24 |
| 18  |            $20.15 |
...
+-----+-------------------+

可以通过应用直方图分组规则(HistogramRule.start 为 25、HistogramRule.interval 为 20 和 HistogramRule.end 为 65)将其转换为如下所示的转换表。

+-------------+-------------------+
| Grouped Age | AVERAGE of Amount |
+-------------+-------------------+
| < 25        |            $19.34 |
| 25-45       |            $31.43 |
| 45-65       |            $35.87 |
| > 65        |            $27.55 |
+-------------+-------------------+
| Grand Total |            $29.12 |
+-------------+-------------------+
JSON 表示法
{
  "interval": number,
  "start": number,
  "end": number
}
字段
interval

number

所创建的存储分区的大小。必须为正数。

start

number

将项放入固定大小的存储桶时所需的最小值。低于 start 的值会归入单个分桶。此字段是可选字段。

end

number

将项放入大小不变的存储桶时的最大值。高于结束值的值会归入一个分桶。此字段是可选字段。

DateTimeRule

允许您根据日期或时间值的选定部分将源数据列中的日期时间值整理到存储分区中。例如,假设有一个按日期显示销售交易信息的数据透视表:

+----------+--------------+
| Date     | SUM of Sales |
+----------+--------------+
| 1/1/2017 |      $621.14 |
| 2/3/2017 |      $708.84 |
| 5/8/2017 |      $326.84 |
...
+----------+--------------+

应用日期时间组规则(DateTimeRuleType 为 YEAR_MONTH)会生成以下数据透视表。

+--------------+--------------+
| Grouped Date | SUM of Sales |
+--------------+--------------+
| 2017-Jan     |   $53,731.78 |
| 2017-Feb     |   $83,475.32 |
| 2017-Mar     |   $94,385.05 |
...
+--------------+--------------+
JSON 表示法
{
  "type": enum (DateTimeRuleType)
}
字段
type

enum (DateTimeRuleType)

要应用的日期时间分组的类型。

DateTimeRuleType

日期时间分组规则的可用类型。本文档假定电子表格的语言区域为“en-US”,但对于某些规则类型,日期和时间的实际呈现方式会使用电子表格的语言区域。

枚举
DATE_TIME_RULE_TYPE_UNSPECIFIED 默认类型,请勿使用。
SECOND 按秒对日期进行分组(从 0 到 59)。
MINUTE 按分钟对日期进行分组,范围为 0 到 59。
HOUR 使用 24 小时制(从 0 到 23)按小时对日期进行分组。
HOUR_MINUTE 使用 24 小时制按小时和分钟对日期进行分组,例如 19:45。
HOUR_MINUTE_AMPM 使用 12 小时制按小时和分钟对日期进行分组,例如晚上 7:45。上午/下午标识会根据电子表格的语言区域进行翻译。
DAY_OF_WEEK 按星期几(例如星期日)对日期进行分组。星期几将根据电子表格的语言区域进行翻译。
DAY_OF_YEAR 按一年中的日期(从 1 到 366)对日期进行分组。请注意,2 月 29 日之后的日期在闰年和非闰年中的分桶不同。
DAY_OF_MONTH 按月份(从 1 到 31)对日期进行分组。
DAY_MONTH 按天和月对日期进行分组,例如 11 月 22 日。系统会根据电子表格的语言区域来翻译月份。
MONTH 按月分组日期,例如 11 月。系统会根据电子表格语言区域翻译相应月份。
QUARTER 按季度对日期进行分组,例如第 1 季度(表示 1 月至 3 月)。
YEAR 按年份对日期进行分组,例如 2008 年。
YEAR_MONTH 按年份和月份对日期进行分组,例如 2008-11 月。系统会根据电子表格的语言区域翻译对应的月份。
YEAR_QUARTER 按年份和季度对日期进行分组,例如 2008 年第 4 季度。
YEAR_MONTH_DAY 按年、月和日对日期进行分组,例如 2008-11-22。

PivotGroupLimit

数据透视组中行或列的数量限制。

JSON 表示法
{
  "countLimit": integer,
  "applyOrder": integer
}
字段
countLimit

integer

计数限制。

applyOrder

integer

组限制应用于数据透视表的顺序。

数据透视表元素组限制按照从低到高的顺序应用。订单号将标准化为从 0 开始的连续整数。

对于写入请求,为了全面自定义应用订单,所有数据透视表元素组限制都应为此字段设置唯一编号。否则,顺序由 PivotTable.rows 列表中的索引决定,然后再由 PivotTable.columns 列表决定。

PivotFilterCriteria

用于显示/隐藏数据透视表中行的数据条件。

JSON 表示法
{
  "visibleValues": [
    string
  ],
  "condition": {
    object (BooleanCondition)
  },
  "visibleByDefault": boolean
}
田野
visibleValues[]

string

应包含的值。不包括此处未列出的值。

condition

object (BooleanCondition)

为显示值必须设为 true 的条件。(visibleValues 不会覆盖此设置 - 即使某个值已在其中列出,如果不符合条件,该值仍会隐藏。)

系统会相对于数据透视表工作表对引用范围(采用 A1 表示法)的条件值进行评估。系统会对引用进行绝对处理,因此不会向下填充数据透视表。例如,条件值 =A1 在“数据透视表 1”上会被视为 'Pivot Table 1'!$A$1

您可以通过列标题名称引用数据透视表的源数据。例如,如果来源数据包含名为“Revenue”(收入)和“Cost”(费用)的列,并且对“Revenue”(收入)列应用了类型为 NUMBER_GREATER 且值为 =Cost 的条件,则仅包含“Revenue”(收入)>“Cost”(费用)的列。

visibleByDefault

boolean

是否默认显示值。如果为 true, visibleValues 将被忽略,所有符合 condition (如果已指定)。如果为 false,则显示同时位于 visibleValues 中且符合 condition 的值。

PivotFilterSpec

与特定来源列偏移量关联的数据透视表过滤条件。

JSON 表示法
{
  "filterCriteria": {
    object (PivotFilterCriteria)
  },

  // Union field source can be only one of the following:
  "columnOffsetIndex": integer,
  "dataSourceColumnReference": {
    object (DataSourceColumnReference)
  }
  // End of list of possible types for union field source.
}
字段
filterCriteria

object (PivotFilterCriteria)

列的条件。

联合字段 source。此过滤条件应用到的来源列。 source 只能是下列其中一项:
columnOffsetIndex

integer

源范围的列偏移量(从零开始)。

dataSourceColumnReference

object (DataSourceColumnReference)

对数据源列的引用。

PivotValue

定义如何计算数据透视表中的值。

JSON 表示法
{
  "summarizeFunction": enum (PivotValueSummarizeFunction),
  "name": string,
  "calculatedDisplayType": enum (PivotValueCalculatedDisplayType),

  // Union field value can be only one of the following:
  "sourceColumnOffset": integer,
  "formula": string,
  "dataSourceColumnReference": {
    object (DataSourceColumnReference)
  }
  // End of list of possible types for union field value.
}
字段
summarizeFunction

enum (PivotValueSummarizeFunction)

用于汇总值的函数。如果设置了 formula,则唯一支持的值为 SUMCUSTOM。如果 sourceColumnOffset 设置,则 CUSTOM 不受支持。

name

string

要为值使用的名称。

calculatedDisplayType

enum (PivotValueCalculatedDisplayType)

如果指定,则表示数据透视值应当作为使用另一个数据透视值的计算结果显示。例如,如果将 calculatedDisplayType 指定为 PERCENT_OF_GRAND_TOTAL,则所有数据透视表值均显示为占总计的百分比。在表格编辑器中,这称为“显示为”。

联合字段 value。要用于数据透视表中值的数据。必须设置一个值。 value 只能是下列其中一项:
sourceColumnOffset

integer

从其中读取数据的源范围的列偏移量。

例如,如果来源为 C10:E15sourceColumnOffset0 表示此值引用的是 C 列,而偏移量 1 则引用的是 D 列。

formula

string

用于计算值的自定义公式。公式必须以 = 字符。

dataSourceColumnReference

object (DataSourceColumnReference)

对此值从中读取数据的数据源列的引用。

PivotValueSummarizeFunction

用于汇总数据透视表值的函数。

枚举
PIVOT_STANDARD_VALUE_FUNCTION_UNSPECIFIED 默认值,请勿使用。
SUM 对应于 SUM 函数。
COUNTA 对应于 COUNTA 函数。
COUNT 对应于 COUNT 函数。
COUNTUNIQUE 对应于 COUNTUNIQUE 函数。
AVERAGE 对应于 AVERAGE 函数。
MAX 对应于 MAX 函数。
MIN 对应于 MIN 函数。
MEDIAN 对应于 MEDIAN 函数。
PRODUCT 对应于 PRODUCT 函数。
STDEV 对应于 STDEV 函数。
STDEVP 对应于 STDEVP 函数。
VAR 对应于 VAR 函数。
VARP 对应于 VARP 函数。
CUSTOM 表示公式应按原样使用。仅当 PivotValue.formula 已设置。
NONE 表示该值已汇总,但未明确指定汇总函数。适用于值已汇总的 Looker 数据源数据透视表。

PivotValueCalculatedDisplayType

用于计算显示的枢轴值的可能方式。

枚举
PIVOT_VALUE_CALCULATED_DISPLAY_TYPE_UNSPECIFIED 默认值,请勿使用。
PERCENT_OF_ROW_TOTAL 以占行总值的百分比显示数据透视表值。
PERCENT_OF_COLUMN_TOTAL 以占列总值的百分比显示数据透视表值。
PERCENT_OF_GRAND_TOTAL 以占总计值的百分比显示数据透视表值。

PivotValueLayout

数据透视值的布局。

枚举
HORIZONTAL 值以水平方式(列)排列。
VERTICAL 值垂直布局(如行)。