[TITLE]
Odoo 动态数据透视表使用指南:创建、编辑与操作技巧
[DESCRIPTION]
本文详细介绍 Odoo 中动态数据透视表的概念、如何从静态透视表创建动态透视表、函数使用以及维度、度量的编辑操作,帮助用户实现灵活的数据分析。
[KEYWORDS]
Odoo, 动态数据透视表, 静态数据透视表, 创建, 编辑, 维度, 度量, 计算度量, 表格函数, 数据分析
[TRANSLATED_CONTENT]
---
# 动态数据透视表
当将 Odoo 数据库中的透视视图插入到电子表格时,默认是 **静态数据透视表**。静态数据透视表中的每个单元格都包含一个 `Odoo 特定函数 <spreadsheet/insert/pivot-table-functions-static>`,用于从数据库检索数据。

当数据库中对应的数据发生变化(例如某个季度或某位业务员的销售额),静态数据透视表的单元格会随之更新。
但静态数据透视表 **不会自动扩展** 以容纳新数据,例如新季度的销售或新入职业务员的数据。也无法通过透视表属性添加或操作维度(列/行)或度量。
:::: note
::: title
注意
:::
如果尝试更新或操作刚插入电子表格的透视表属性,屏幕右上角会出现错误提示:

::::
为了在操作透视表时拥有更大的灵活性,你可以 **从静态透视表创建动态透视表** `<spreadsheet/dynamic-pivot-tables/create>`。
## 创建动态数据透视表 {#spreadsheet/dynamic-pivot-tables/create}
从静态透视表生成动态透视表的主要方式有两种:
- **通过透视表属性复制静态透视表**
打开 `透视表属性 <spreadsheet/insert/pivot-table-properties>`,点击右上角的 `fa-cog`(齿轮)图标,然后点击 `fa-clone` **Duplicate**(复制)。
系统会创建一个新的数据源,并在新工作表中插入动态透视表。动态透视表的样式与原始透视表保持一致。
:::: note
::: title
注意
:::
使用此方法时,新的动态透视表会获得下一个可用的透视表 ID。这意味着可以为同一模型创建多个透视视图,且每个视图拥有独立的设置、分组或计算方式。
::::
- **通过 “数据” 菜单重新插入动态透视表**
在包含静态透视表的工作表中,将光标放在空白单元格上。点击 `Data --> os-insert-pivot Re-insert dynamic pivot`,随后在弹出的列表中选择相应的透视表。
系统会生成一个新的动态透视表,样式同原始透视表。
:::: note
::: title
注意
:::
使用此方法时,静态与动态透视表共享同一数据源,因而拥有相同的透视表 ID。为免混淆,建议删除原来的静态透视表。
::::
:::: tip
::: title
技巧
:::
也可以直接在空白单元格中输入 **动态透视表函数** `<spreadsheet/dynamic-pivot-tables/functions>`。不过此方式需要手动重新套用表格样式。
::::
### 动态数据透视表函数 {#spreadsheet/dynamic-pivot-tables/functions}
与静态透视表中每个单元格都包含独立函数不同,动态透视表只使用 **单一函数**:
```text
=PIVOT(pivot_id, [row_count], [include_total], [include_column_titles], [column_count])函数参数说明:
pivot_id:插入透视表时系统分配的 ID。第一个透视表的 ID 为 1,第二个为 2,依此类推。[row_count]与[column_count]:分别指定返回的行数和列数。[include_total]与[include_column_titles]:设为 0 时可去除总计行/列标题。
该函数为 数组函数,能够自动扩展以容纳返回结果。
左上角单元格显示可编辑的函数,其余单元格则以灰色显示同一公式。
:::: tip ::: title 技巧 :::
如需去除总计或列标题,可在公式栏或左上角单元格中编辑函数。将光标定位在 pivot_id 后,输入 , 跳转到可选字段,然后填写 0 即可。例如在 [include_total] 中输入 0,即可同时去除行总计和列总计。
::::
操作动态数据透视表 {#spreadsheet/dynamic-pivot-tables/manipulate}
要编辑动态透视表的数据,打开透视表属性 <spreadsheet/insert/pivot-table-properties>。
点击 fa-cog(齿轮)图标后,可使用以下功能:
fa-exchange翻转轴:将列维度切换到行,行维度切换到列。:::: tip ::: title 提示 :::
翻转轴可以从不同视角审视数据,可能发现新洞见。但在数据量大时,可能出现 #SPILL 错误(公式输出范围被其他内容阻挡)。将鼠标悬停在
#SPILL单元格上可查看错误详情。 ::::fa-clone复制:复制当前动态透视表并创建拥有独立属性的新数据源。fa-trash删除:删除动态透视表的数据源。:::: note ::: title 注意 :::
删除数据源仅会移除后台数据链接,表格本身仍保留在工作表中。若需彻底删除,请使用键盘快捷键、菜单或直接删除所在工作表。 ::::
维度管理 {#spreadsheet/dynamic-pivot-tables/manipulate-dimensions}
维度决定数据的分组方式,显示在 列 与 行 区域,顺序与数据库中透视视图的布局保持一致。
可进行的操作:
- 点击 Add 添加新维度。
- 在对应维度上点击
fa-trash(删除)图标以移除。 - 拖拽维度在 列 或 行 区域内重新排序。
- 将维度从 列 拖到 行(或反向)以切换轴向。
- 在 Order by 下拉框中选择 Ascending、Descending 或 Unsorted 以改变值的排序方式。
- 对于日期/时间维度,可在 Granularity 中选择所需的粒度(年、月、日等)。
度量管理 {#spreadsheet/dynamic-pivot-tables/manipulate-measures}
度量是你在透视表中衡量或分析的数值,顺序同数据库透视视图中的显示顺序。
可进行的操作:
- 点击 Add 添加新度量(包括 计算度量
<spreadsheet/dynamic-pivot-tables/manipulate-measures-calculated-measures>)。 - 使用
fa-eye(隐藏)或fa-eye-slash(显示)切换度量可见性,或点击fa-trash删除。 - 点击度量名称即可编辑其显示名称。
- 拖拽度量以改变显示顺序。
- 点击
fa-cog(齿轮)图标,可在下拉菜单中选择 % of grand total、Rank smallest to largest 等显示方式,数据会即时更新。 - 在 Aggregation 中选择 Sum、Average、Minimum 等聚合方式。
:::: tip ::: title 技巧 :::
若需按特定维度的度量值对整张透视表进行排序,右键任意单元格 → os-sort-range Sort pivot → 选择 Ascending 或 Descending。若想恢复默认顺序,选择 No sorting 即可。
::::
计算度量 {#spreadsheet/dynamic-pivot-tables/manipulate-measures-calculated-measures}
当原始透视视图中没有所需度量时,可自行添加 计算度量(例如“每笔订单的平均收入”或“每件商品的利润率”)。
添加步骤:
在 Measures 区域点击 Add。
在可滚动列表底部,点击
os-formula Add calculated measure。点击度量名称并重新命名。
在以 [=] 开头的行输入公式。
::: example 示例:将销售总额除以订单数量,得到“每笔订单的平均收入”。
:::
在下拉框中选择该度量的聚合方式。
:::: tip ::: title 技巧 :::
如果想保留查看单元格背后函数的能力(静态透视表的优势),可以选中动态透视表的相应区域,复制后粘贴到空白区域。点击粘贴后的任意单元格,即可看到用于获取数据的 Odoo 函数 <spreadsheet/functions/odoo>。
::::
[SUMMARY]
```markdown
# 动态数据透视表
## 静态数据透视表概述
## 创建动态数据透视表
### 通过属性复制
### 通过数据菜单重新插入
## 动态数据透视表函数
## 操作动态数据透视表
### 翻转轴
### 复制
### 删除
### 维度管理
#### 添加维度
#### 删除维度
#### 拖拽排序
#### 轴向切换
#### 排序方式
#### 粒度设置
### 度量管理
#### 添加度量
#### 添加计算度量
#### 隐藏/显示
#### 删除
#### 编辑名称
#### 拖拽排序
#### 显示方式
#### 聚合方式
#### 按度量排序