目标
在本教程中,您将完成以下任务:
- 了解如何创建算术计算字段。
- 创建条件表达式以评估数据并返回不同的结果。
- 了解实现计算字段的不同方法。
场景
假设您管理着一家在线宠物用品店。您可能会衡量销售数据,例如商品代码 (SKU)、商品名称、价格和销售数量。示例如下:
SKU | 商品 | Price | 售出数量 |
---|---|---|---|
D-001 | Healthy Dog 狗粮 | 79.96 |
16 |
B-002 | 鹦鹉栖架 | 74.97 |
8 |
B-001 | Pretty Bird 鸟食 | 31.96 |
20 |
C-002 | Hungry Kitty 猫粮 | 29.98 |
3 |
D-002 | 顽皮的小狗玩具 | 17.97 |
11 |
C-001 | Happy Cat 猫薄荷 |
14.97 |
4 |
Looker Studio 中的计算字段可帮助您处理和扩展这些数据。在本练习中,您将使用计算字段来执行以下任务:
- 计算每个订单的总价值。
- 为超过一定金额的订单应用折扣。
- 将销售额划分为各个部门。
样本数据
如需按原样完成此练习,请使用以下示例数据。否则,请使用您自己的数据(并相应地调整字段名称)。您需要有 Google 表格的访问权限。或者,您也可以使用文件上传连接器将数据导入 Looker Studio。
将此数据复制并粘贴到文本文件中:
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 步:准备数据
- 复制上一个框中的示例数据。
- 打开文本编辑器,粘贴示例数据,然后将文件另存为
pet-store-data.csv
。
在 Google 表格中,依次选择文件 > 导入。
选择上传,然后上传您在第 2 步中创建的示例数据文件。
选择替换电子表格。
将电子表格命名为
Pet Store
。
第 2 步:创建报告并添加数据
稍后,您将看到新报告,画布上会显示一个使用宠物商店数据源中的字段的表格。
第 3 步:创建小计字段
在菜单中,依次选择资源 > 管理添加的数据源。
找到 Pet Store 数据源,然后点击
修改。
系统会显示数据源字段面板。
点击
添加字段。
系统会显示计算字段编辑器。
在字段名称中,输入
Subtotal
。在公式中,输入
Price * Qty Sold
。点击保存。
点击所有字段,返回主数据源编辑器。
第 4 步:创建折扣字段
假设您想根据订单价值提供不同的折扣率。创建另一个名为 Discount
的计算字段,用于评估小计字段并应用以下折扣。
小计值 | 折扣率 |
0 - 99 | 0 |
100 - 499 | 5% |
500 个或更多 | 10% |
提示:
- 在此步骤中,您只需计算折扣。您将在下一步中应用此公式,即将小计字段乘以折扣字段。
- 使用
CASE
表达式评估小计字段。
- 为每个折扣率使用一个
WHEN
子句。- 使用
ELSE
子句可返回全价(0% 折扣)。- 以小数值表示折扣。例如,25% 的折扣应表示为 0.25。
解决方案
CASE WHEN Subtotal > 499 THEN .9 WHEN Subtotal > 100 THEN .95 ELSE 1 END
第 5 步:创建总计字段
创建另一个名为 Total
的计算字段,该字段将小计字段乘以折扣字段。
解决方案
Subtotal * 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 步:在报告中查看数据
- 保存部门字段后,点击左侧的所有字段,返回数据源编辑器。
- 点击完成,然后关闭“管理数据源”面板。
您现在可以按照以下步骤将新的计算字段添加到图表中:
- 选择表格。
- 将您创建的每个计算字段从数据面板拖到表格上或表格的设置面板中,以将其添加到表格中。
您可以从多种解决方案中进行选择
之前的解决方案将问题分解为各个部分,并创建离散字段来处理每个部分,就像您对小计、折扣和总计字段所做的那样。
另一种方法是在单个计算字段中执行所有计算。例如,您可以将本教程的第 3-5 步合并为一个字段:
CASE WHEN Price * Qty Sold > 499 THEN (Price * Qty Sold) * .9 WHEN Price * Qty Sold > 100 THEN (Price * Qty Sold) * .95 ELSE Price * Qty Sold END
每种方法各有优缺点:
将复杂的公式分解为单独的字段,可让公式更易于读写,并减少出错的可能性。单独的字段在更多情况下也很有用。例如,使用单独的字段来表示折扣率,可让您在其他计算中使用该字段,或在报告中显示该字段。使用大量离散的计算字段创建公式的一个缺点是,您可能无法直观地了解每个字段的作用,因此需要单独修改这些字段才能了解它们的计算方式。
另一方面,将所有逻辑集中到一个字段中可以使公式更易于理解和修改。但您可能还需要进行大量重复的输入,并且复杂的公式可能难以扩展或维护。例如,假设您有 10 个产品层级,每个层级都有不同的订单数量阈值。或者,假设您想为另一产品线使用相同的折扣。在这些情况下,使用单独的字段来表示这些阈值和折扣可能更简单或更高效。
中间路径
此解决方案融合了之前介绍的两种方法。它将主要逻辑保留在单个字段中,同时将一些依赖逻辑分离到单独的字段中:
CASE WHEN Subtotal > Large Order THEN Subtotal * Large Order Discount WHEN Subtotal > Medium Order THEN Subtotal * Medium Order Discount ELSE Subtotal END
对于此解决方案,我们创建了单独的字段来保存大订单和中等订单的值以及相应的折扣。
此解决方案的优势在于易于阅读、灵活且相对容易根据需要进行调整。