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

如果樞紐分析表應納入此群組的總和,則為「是」。

valueMetadata[]

object (PivotGroupValueMetadata)

分組中值的中繼資料。

sortOrder

enum (SortOrder)

這個群組中值的排序順序。

valueBucket

object (PivotGroupSortValueBucket)

要依據哪個相反的資料透視表群組進行排序。如未指定,系統會依照這個群組的值以字母順序排序。

repeatHeadings

boolean

如果這個樞紐群組中的標題應重複,則為「是」。這項屬性僅適用於資料列分組,資料欄會忽略這項屬性。

根據預設,我們會盡量減少標題重複的情況,也就是在相同層級不顯示重複的標題。舉例來說,雖然下方第三列對應「Q1 Mar」,但「Q1」不會顯示,因為與前面幾列重複。如果將 repeatHeadings 設為 true,系統就會在「Feb」和「Mar」中重複顯示「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:E150sourceColumnOffset 代表這個群組參照 C 資料欄,而偏移量 1 則會參照 D 資料欄。

dataSourceColumnReference

object (DataSourceColumnReference)

這個分組所依據的資料來源欄參照。

PivotGroupValueMetadata

資料透視分組中值的中繼資料。

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

object (ExtendedValue)

中繼資料對應的計算值。(請注意,formulaValue 無效,因為系統會計算值)。

collapsed

boolean

如果對應的資料已摺疊,則傳回「是」。

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 中的一個群組中。未顯示在任何群組中的項目會單獨顯示。

HistogramRule

可將來源資料欄中的數值整理成固定大小的值區。從 HistogramRule.startHistogramRule.end 的所有值都會放入大小為 HistogramRule.interval 的群組。此外,所有低於 HistogramRule.start 的值都會放入一個群組,而所有高於 HistogramRule.end 的值都會放入另一個群組。只有 HistogramRule.interval 是必要屬性,但如果同時提供 HistogramRule.startHistogramRule.endHistogramRule.start 必須小於 HistogramRule.end。舉例來說,資料透視表顯示平均購買金額 (依年齡劃分),且有 50 多列:

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

項目放入固定大小值區的最小值。小於起始值的值會歸入單一特徵分塊。這是選填欄位。

end

number

項目放入固定大小值區的上限值。大於 end 的值會歸為單一特徵分塊。這是選填欄位。

DateTimeRule

可讓您根據日期或時間值的所選部分,將來源資料欄中的日期時間值分類。舉例來說,請考慮資料透視表,以日期顯示銷售交易:

+----------+--------------+
| 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 依照日期和月份分組,例如 11 月 22 日。月份會根據試算表語言代碼進行翻譯。
MONTH 將日期依月份分組,例如 11 月。月份會根據試算表語言代碼進行翻譯。
QUARTER 將日期依季別分組,例如 Q1 (代表 1 月至 3 月)。
YEAR 依年份分組日期,例如 2008 年。
YEAR_MONTH 將日期依年和月分組,例如 2008 年 11 月。系統會根據試算表語言代碼轉譯月份。
YEAR_QUARTER 將日期依年份和季度分組,例如 2008 Q4。
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

資料透視表的來源資料可透過資料欄標題名稱參照。舉例來說,如果來源資料含有名為「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,所有樞紐值都會以總計的百分比顯示。在 Google 試算表編輯器中,資料透視表的值部分會稱為「顯示為」。

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

integer

這個值讀取的來源範圍欄位偏移量。

舉例來說,如果來源是 C10:E150sourceColumnOffset 代表這個值會參照資料欄 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 值會以垂直方式排列 (以列為單位)。