插入数据透视表

有两种主要方法可以将实时 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;若维度是时间段,则为目标日期或时间段。

小技巧

单击单个单元格会在公式栏中显示相关公式(如果相关)。要同时显示电子表格的所有公式,请在菜单栏上单击View ‣ Show ‣ Formulas。下面的示例显示用于检索销售人员Anita RodmanQ2 2024的销售总额的函数。

静态数据透视表函数

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

操作维度和度量从 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_countcolumn_count:设置值以分别限制行数和列数。

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

  • include_column_titlesinclude_measure_titles:设置值为 0 以分别删除列标题和度量标题。

小技巧

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

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

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

有两种主要方法可以将动态数据透视表转换为静态数据透视表,其中每个单元格都有一个从数据源检索数据的单独函数:

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

    将出现一个新的静态数据透视表,其样式与原始数据透视表相同。单击单元格可在公式栏中查看函数。

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

小技巧

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

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

要将:ref:`Odoo 数据透视视图 <studio/views/reporting/pivot>`中的数据透视表插入到 Odoo 电子表格中:

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

  2. 在打开的窗口中,如果需要,编辑数据透视表名称。此名称用作工作表名称和:ref:`数据透视表属性 <spreadsheet/pivot-tables/properties>`中,如果需要,可以稍后编辑。

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

    注解

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

  4. 点击 确认

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

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

小技巧

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

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

其他资料

操作数据透视表

从电子表格插入检索 Odoo 数据的数据透视表

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

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

  2. 从菜单栏中单击插入 ‣数据透视表从 Odoo 数据

  3. 在工作表右侧的新建 Odoo 数据透视表面板中,选择应从中检索数据的模型,然后单击保存

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

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