教程:在数据洞察中创建计算字段

目标

在本教程中,您将完成以下任务:

  • 了解如何创建算术计算字段。
  • 创建条件表达式来评估数据并返回不同的结果。
  • 了解实现计算字段的不同方法。

场景

假设您管理着一家宠物用品网店。您可能会衡量销售数据,例如商品代码 (SKU)、商品名称、价格和销量。示例如下:

SKU 商品 价格 售出数量
D-001 Healthy Dog 狗粮

79.96

16

B-002 鹦鹉栖木

74.97

8

B-001 Pretty Bird 鸟食

31.96

20

C-002 Hungry Kitty Cat Food

29.98

3

D-002 Playful Puppy Toy

17.97

11

C-001

Happy Cat 猫薄荷

14.97

4

数据洞察中的计算字段可帮助您处理和扩展这些数据。在本练习中,您将使用计算字段执行以下任务:

  • 计算每笔订单的总价值。
  • 对超过一定金额的订单应用折扣。
  • 将销售额按部门分类。

样本数据

如需按照说明完成此练习,请使用以下示例数据。否则,请使用您自己的数据(相应地调整字段名称)。您需要有权访问 Google 表格。或者,您也可以使用文件上传连接器将数据导入数据洞察。

将此数据复制并粘贴到文本文件中:

SKU,Item,Price,Qty Sold
D-001,Healthy Dog Dog Food,79.96,16
B-002,Parrot Perch,74.97,8
B-001,Pretty Bird Bird Seed,31.96,20
C-002,Hungry Kitty Cat Food,29.98,3
D-002,Playful Puppy Toy,17.97,11
C-001,Happy Cat Catnip,14.97,4

第 1 步:准备数据

  1. 复制上一个框中的示例数据。
  2. 打开文本编辑器,粘贴示例数据,然后将文件保存为 pet-store-data.csv。
  • 创建新的 Google 表格。

  • 在 Google 表格中,依次选择文件 > 导入。

  • 选择上传,然后上传您在第 2 步中创建的抽样数据文件。

  • 选择替换电子表格。

  • 将电子表格命名为 Pet Store。

第 2 步:创建报告并添加数据

  1. 在数据洞察中创建新报告。
  2. 在为报告添加数据面板中,选择 Google 表格连接器。
  3. 选择您刚刚创建的 Pet Store 电子表格和工作表。
  4. 保留默认选项。
  5. 点击添加。

片刻之后,您会看到新报告,画布上有一个使用 Pet Store 数据源中的字段的表格。

第 3 步:创建小计字段

  1. 在菜单中,选择资源 > 管理添加的数据源。

  2. 找到 Pet Store 数据源,然后点击 “修改”图标。 修改。

    随即会显示数据源字段面板。

  3. 点击 添加字段。

    系统会显示计算字段编辑器。

  4. 在字段名称中,输入 Subtotal。

  5. 在公式中,输入 Price * Qty Sold。

  6. 点击保存。

  7. 点击所有字段,返回主数据源编辑器。

第 4 步:创建折扣字段

假设您想根据订单金额提供不同的折扣率。创建另一个名为 Discount 的计算字段,用于评估 Subtotal 字段并应用以下折扣。

小计值 折扣率
0 - 99 0
100 - 499

5%

500 或以上 10%

提示:

  • 在此步骤中,您只需计算折扣。您将在下一步中应用此税率,方法是将 Subtotal 字段乘以 1 - Discount。
  • 使用 CASE 表达式对 Subtotal 字段求值。
    • 为每个折扣率使用一个 WHEN 子句。
    • 使用 ELSE 子句返回 0% 的折扣 (0)。
  • 以小数值表示折扣。例如,25% 的折扣为 0.25。

解决方案

CASE
WHEN Subtotal > 499 THEN 0.1
WHEN Subtotal > 99 THEN 0.05
ELSE 0
END

第 5 步:创建总数字段

创建另一个名为 Total 的计算字段,该字段将 Subtotal 字段乘以 1 - Discount。

解决方案

Subtotal * (1 - Discount)

第 6 步:创建部门字段

创建最终计算字段 Department,用于解析 SKU 字段并根据 SKU 分配新值。您需要将狗、猫和鸟类相关商品分到不同的部门。

提示:再次使用 CASE 语句,这次搭配使用 STARTS_WITH(或 REGEXP_MATCH)函数。

解决方案

CASE
WHEN STARTS_WITH(SKU, "C") THEN "Cat"
WHEN STARTS_WITH(SKU, "D") THEN "Dog"
WHEN STARTS_WITH(SKU, "B") THEN "Bird"
ELSE "Misc"
END

第 7 步:在报告中查看数据

  1. 保存部门字段后,点击左侧的所有字段,返回数据源编辑器。
  2. 点击完成,然后关闭“管理数据源”面板。

现在,您可以按照以下步骤将新的计算字段添加到图表中:

  1. 选择该表格。
  2. 将您创建的每个计算字段添加到表格中,方法是将它们从数据面板拖到表格中或表格的设置面板中。

您可以从多种解决方案中进行选择

之前的解决方案将问题分解为多个单独的部分,并创建离散字段来处理每个部分,就像您对小计、折扣和总计字段所做的那样。

另一种方法是在单个计算字段中执行所有计算。例如,您可以将本教程的第 3 步到第 5 步合并为一个字段:

CASE
WHEN Price * Qty Sold > 499 THEN (Price * Qty Sold) * 0.9
WHEN Price * Qty Sold > 100 THEN (Price * Qty Sold) * 0.95
ELSE Price * Qty Sold
END

每种方法各有利弊:

将复杂的公式拆分为单独的字段,可以使公式更易于读写,并且更不容易出错。在更多情境中,单独的字段也很有用。例如,如果您为折扣率使用单独的字段,则可以在其他计算中使用该字段,或在报告中显示该字段。创建包含大量离散计算字段的公式有一个缺点,那就是每个字段的作用可能不明显,因此您需要单独修改每个字段,以查看其计算方式。

另一方面,将所有逻辑集中到一个字段中可以使公式更易于理解和修改。但您可能也需要进行大量重复输入,而且复杂的公式可能更难扩展或维护。例如,假设您有 10 个商品层级,每个层级都有不同的订单数量阈值。或者,假设您想对其他产品线使用相同的折扣。在这些情况下,为这些阈值和折扣使用单独的字段可能会更简单或更高效。

中间路径

此解决方案融合了前面介绍的两种方法。它将主要逻辑保留在单个字段中,同时将一些依赖逻辑拆分到单独的字段中:

CASE
WHEN Subtotal > Large Order THEN Subtotal * (1 - Large Order Discount)
WHEN Subtotal > Medium Order THEN Subtotal * (1 - Medium Order Discount)
ELSE Subtotal
END

对于此解决方案,请创建单独的字段来保存大订单和中等订单的值及其对应的折扣:

  • 大额订单:499
  • 中等订单:100
  • 大额订单折扣:0.1
  • 中等订单折扣:0.05

此解决方案的优势在于易于阅读、灵活,并且相对容易根据需要进行调整。