Pivot Tables

資料透視表

資料透視表。

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:E15,則 0 的索引鍵將會有 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。

資料透視表

資料透視表中的單一群組 (列或欄)。

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。這僅適用於列分組,且遭到欄忽略。

根據預設,我們會盡量避免重複標題,而不會顯示相同的標題。例如,即使第三列與「Q1 月第 1 季」對應,但「Q1」和先前的資料列重複,因此不會顯示。將重複標題設為 true 時,「2」和「3」都會重複「Q1」。

+--------------+
| 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:E15,則 0sourceColumnOffset 代表這個群組參照了 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

手動規則

可讓您手動將來源資料欄中的值整理成指定名稱的值區。舉例來說,這個資料透視表能夠按狀態匯總人口:

+-------+-------------------+
| 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 中的項目最多可能會顯示在一個群組中。不屬於任何群組的項目都會自行顯示。

HistogramRule

可讓您將來源資料欄中的數值整理為常數大小的值區。HistogramRule.startHistogramRule.end 之間的所有值都會放在 HistogramRule.interval 大小的群組中。此外,HistogramRule.start 底下的所有值都會放在一個群組,而 HistogramRule.end 的所有值都會位於另一個群組。您只需要提供 HistogramRule.interval,不過如果同時提供 HistogramRule.startHistogramRule.end,則 HistogramRule.start 必須小於 HistogramRule.end。舉例來說,資料透視表則顯示依年齡顯示超過 50 列資料的每日購買金額:

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

套用 HistogramRule.start 為 25、HistogramRule.interval 為 20 且 65 的 HistogramRule.end 的直方圖群組規則,並將其轉換為類似資料透視表。

+-------------+-------------------+
| 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

將項目放在固定大小的值區中的最小值。下方值會展開為單一值區。這是選填欄位。

end

number

項目固定於常數大小範圍內的最大值。系統會將上方值加總為單一值區。這是選填欄位。

日期時間規則

可讓您依據日期或時間值的選取部分,將來源資料欄的日期時間值分門別類。舉例來說,假設資料透視表可以按日期顯示銷售交易:

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

套用日期為 YEAR_MONTH 的 DateTimeRuleType 日期群組規則會導致以下資料透視表。

+--------------+--------------+
| 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 按日期和月份將日期分組,例如 22 至 11 月。系統會根據試算表語言代碼翻譯月份。
MONTH 按月份分組日期,例如 11 月。系統會根據試算表語言代碼翻譯月份。
QUARTER 按照季度分組,例如第一季 (代表 1 月至 3 月)。
YEAR 依年份分組日期,例如 2008。
YEAR_MONTH 按年份與月份分類日期,例如 2008-111 月。系統會根據試算表語言代碼來翻譯月分。
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 標記表示範圍的條件值將根據資料透視表工作表進行評估。系統會一律參照參照,因此請不要填寫資料透視表。舉例來說,「資料透視表 1」中的 =A1 條件值會視為 'Pivot Table 1'!$A$1

欄標題名稱可參照資料透視表的來源資料。舉例來說,如果來源資料含有名為「收益」和「費用」的欄,且條件為「收益」欄 (類型為 NUMBER_GREATER 和「=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)

指定時,表示資料值應與另一個資料透視值一併顯示。舉例來說,如果計算的 DisplayTypeType 指定為 PERCENT_OF_GRAND_TOTAL,所有資料透視值都會顯示為總總計的百分比。在試算表編輯器中,資料透視表的值部分會顯示為「顯示為」。

聯集欄位 value。資料透視表中用來呈現的資料。只能設定一個值。 value 只能是下列其中一個值:
sourceColumnOffset

integer

這個值的來源來源資料列偏移。

舉例來說,如果來源為 C10:E15,則 0sourceColumnOffset 表示這個值為 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 的情況下,這個公式才有效。

PivotValueCalculatedDisplayType

計算資料值的可能性值。

列舉
PIVOT_VALUE_CALCULATED_DISPLAY_TYPE_UNSPECIFIED 預設值,請勿使用。
PERCENT_OF_ROW_TOTAL 以列總值的百分比做為資料透視值。
PERCENT_OF_COLUMN_TOTAL 以資料欄總值的百分比呈現資料透視值。
PERCENT_OF_GRAND_TOTAL 根據資料總值的百分比顯示資料透視值。

PivotValueLayout

資料透視值的版面配置。

列舉
HORIZONTAL 以水平方式並列顯示值 (欄)。
VERTICAL 值會以垂直排列的方式 (以列呈現)。