插入数据透视表

在 Odoo 电子表格中,将实时 Odoo 数据集成到 数据透视表 主要有两种方式:

在这两种情况下,数据透视表都会通过其唯一的 数据源 连接到基础数据库数据,从而保持数据最新,并允许你直接从电子表格 访问基础数据。不过,了解 Odoo 中 静态与动态数据透视表 之间的区别很重要。

注解

也可以从电子表格中已有的数据区域 创建数据透视表。该区域可以是静态的手动输入数据,也可以是插入到电子表格中的 Odoo 数据区域,例如来自 Odoo 列表视图的数据。

静态与动态数据透视表

将 Odoo 透视视图中的数据透视表插入 Odoo 电子表格时,默认情况下它是 静态 数据透视表,其中每个单元格都通过 Odoo 特定函数 从数据库获取数据。数据透视表的数据会保持最新,但它不会扩展以容纳新数据,例如新季度或新入职销售人员的销售数据,并且其维度和度量值无法 操作。

可以将静态数据透视表 转换为动态数据透视表,让数据透视表随业务发展而变化,并可通过操作获得不同且更深入的洞察。

插入直接从 Odoo 电子表格获取 Odoo 数据的数据透视表会生成 动态 数据透视表,其中由单个 Odoo 特定数组函数 从数据库获取数据。数据透视表的数据会保持最新,会随新数据扩展,并且其维度和度量值可以操作。从数据区域插入 的数据透视表也是动态数据透视表。

如有需要,可以通过多种方式 查看动态数据透视表的各个函数。

静态数据透视表函数

静态数据透视表通过其 数据源,使用以下 Odoo 特定函数 分别获取表头和字段值:

=PIVOT.HEADER(pivot_id, [domain_field_name, …], [domain_value, …])
=PIVOT.VALUE(pivot_id, measure_name, [domain_field_name, …], [domain_value, …])

函数参数说明如下:

  • pivot_id :插入数据透视表时分配的 ID。第一个插入电子表格的数据透视表分配数据透视 ID 1 ,第二个分配数据透视 ID 2 ,依此类推。

  • domain_field_name :用作维度的字段技术名称,例如 user_id ;若维度是时间段,则为日期字段技术名称后跟时间段,例如 date_order:month 。

  • measure_name:被测量指标的技术名称,后跟聚合类型,例如 product__qty:sum 。

  • domain_value:记录的ID;若维度是时间段,则为目标日期或时间段。

小技巧

点击单个单元格时,如果相关,会在编辑栏中显示相应公式。要同时显示电子表格的所有公式,请在菜单栏中点击 视图 ‣ 显示 ‣ 公式。下面的示例显示了用于获取销售人员 Laurie Poiret 在 2025 年第二季度 的已开票数量的函数。

静态数据透视表函数

将静态数据透视表转换为动态数据透视表

要 操作 从 Odoo 透视视图插入的数据透视表的维度和度量值,必须先将其转换为 动态数据透视表。

主要有两种方法:

  • 从数据透视表属性中复制静态数据透视表 :打开数据透视表的属性面板,点击窗格右上角的 (齿轮) 图标,然后点击 复制。

    将创建新的数据源,并将动态版本的数据透视表插入到新工作表中。动态数据透视表具有与原始数据透视表相同的样式。

    注解

    使用此方法时,您的新动态数据透视表将获得下一个可用的数据透视 ID。这意味着您可以创建与同一模型关联的多个数据透视视图,但具有不同的设置、分组或计算。

  • 从数据菜单重新插入动态数据透视表 :在包含静态数据透视表的工作表上,将光标定位在空单元格中。从菜单栏单击 数据 ‣ 重新插入动态数据透视 ,然后选择相关的数据透视表。

    将出现一个新的动态数据透视表,其样式与原始数据透视表相同。

    小技巧

    也可以在空单元格中输入 动态数据透视表的函数 来重新插入动态数据透视表,例如 =PIVOT(1),其中 1 是 数据透视表 ID。不过,使用该方法需要手动重新应用表格样式。

    注解

    当你从数据菜单或通过动态数据透视表函数重新插入动态数据透视表时,静态数据透视表和动态数据透视表共用同一数据源,因此也共用同一透视表 ID。为避免混淆,请删除原来的静态数据透视表。

新动态数据透视表的左上角单元格包含一个 从数据库获取数据的 Odoo 特定数组函数。

动态数据透视表函数

与 静态数据透视表 中每个单元格都包含一个通过 数据源 获取数据的独立函数不同,动态数据透视表只有一个 Odoo 特定数组函数:

=PIVOT(pivot_id, [row_count], [include_total], [include_column_titles], [column_count],
 [include_measure_titles] )

此函数允许数据透视表自动扩展以容纳函数的运算结果。该函数的参数如下:

  • pivot_id :插入数据透视表时分配的 ID。第一个插入电子表格的数据透视表分配数据透视 ID 1 ,第二个分配数据透视 ID 2 ,依此类推。

  • row_count 和 column_count:分别设置一个值来限制行数和列数。

  • include_total:将值设为 0 可隐藏总计;这在创建图表时很有用。

  • include_column_titles 和 include_measure_titles:将值设为 0 可分别移除列标题和度量值标题。

小技巧

要为函数的某个参数设置值,请在编辑栏或数据透视表的左上角单元格中打开该函数,将光标放在透视表 ID 之后,然后输入 , 以前进到要修改的参数。在下面的示例中,为 [include_total] 添加值 0 会从数据透视表中移除行总计和列总计。

动态数据透视表的数组函数

数据透视表结构也可以通过 数据透视表属性 中的 设计 选项卡来控制。

将动态数据透视表转换为静态数据透视表

要将动态数据透视表转换为 静态数据透视表,即每个单元格都有从数据源获取数据的独立函数的数据透视表,主要有两种方法:

  • 从数据菜单重新插入静态数据透视表 :在包含动态数据透视表的工作表上,将光标放在空单元格中。在菜单栏中点击 数据 ‣ 重新插入静态透视表,然后选择相关数据透视表。

    会出现一个新的静态数据透视表,其样式与原数据透视表相同。点击某个单元格即可在编辑栏中查看该函数。

  • 使用“转换为独立公式”选项 :右键点击数据透视表中的任意单元格,然后点击 转换为独立公式。每个已填充的单元格都会被替换为独立函数;点击某个单元格即可在编辑栏中查看该函数。

小技巧

要查看动态数据透视表中特定单元格背后的独立函数,请复制相关单元格并将其粘贴到电子表格的其他位置;点击已粘贴的单元格即可在编辑栏中查看该函数。

从透视视图插入数据透视表

要将 Odoo 透视视图 中的数据透视表插入 Odoo 电子表格:

  1. 在数据库中打开相关透视图后,点击 在电子表格中插入。

  2. 在打开的窗口中,如有需要,编辑 透视表名称。该名称会用作工作表名称,也会用于 数据透视表属性 中,之后如有需要还可以编辑。

  3. 单击 空白电子表格 以创建新的电子表格,或选择应将数据透视表插入到哪个现有电子表格中。

    注解

    将数据透视表插入到新电子表格时,该电子表格会保存在 Odoo 文档 应用中的 我的云端硬盘 个人文件夹中。

  4. 点击 确认。

数据透视表会插入到电子表格中的新工作表;工作表名称是数据透视表名称后跟 数据透视表 ID,例如 按销售团队划分的销售分析(透视表#1)。默认情况下,该数据透视表是 静态数据透视表,其中每个单元格都包含一个从数据库获取数据的 Odoo 特定函数。

电子表格右侧的面板会显示 数据透视表属性。

小技巧

  • 要允许对数据透视表进行操作,请 将其转换为动态数据透视表。

  • 要切断插入的数据透视表和数据库之间的联系,请选择整个数据透视表,点击右键并选择 复制,然后再次点击右键并选择 特殊粘贴 ‣ 粘贴为值。

另请参阅

操作数据透视表

插入从电子表格获取 Odoo 数据的数据透视表

要直接从 Odoo 电子表格使用 Odoo 数据插入数据透视表:

  1. 从 文档 应用中打开相关 Odoo 电子表格,或 创建新的空白电子表格。

  2. 在菜单栏中点击 插入 ‣ 数据透视表 来自 Odoo 数据。

  3. 在工作表右侧的 新建 Odoo 透视表 面板中,选择要从中获取数据的 模型,然后点击 保存。

会打开一个新工作表,工作表左上角有一个空的数据透视表;工作表名称是模型名称后跟 数据透视表 ID,例如 销售订单(透视表#1)。默认情况下,该数据透视表是 动态数据透视表,其中左上角单元格包含一个 Odoo 特定数组函数,在 添加列、行和度量值 后从数据库获取数据。

电子表格右侧的面板会显示 数据透视表的属性。