目标
在本教程中,您将完成以下任务:
- 了解如何创建简单的算术计算字段。
- 创建条件表达式以评估数据并返回不同的结果。
- 了解实现计算字段的不同方法。
场景
假设您经营一家在线宠物用品商店。您可以衡量销售数据,例如商品代码 (SKU)、商品名称、价格和销量。下面是一个简单示例:
SKU | 项 | Price | 售出数量 |
---|---|---|---|
D-001 | 健康狗粮 | 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 | 活泼的幼犬玩具 | 17.97 |
11 |
C-001 | Happy Cat Catnip |
14.97 |
4 |
Looker 数据洞察中的计算字段可帮助您处理和扩展这些数据。在本练习中,您将使用计算字段执行以下任务:
- 计算每个订单的总价值。
- 对超过一定金额的订单应用折扣。
- 将销售交易划分到各个部门。
样本数据
如需按照说明完成本练习,请使用以下示例数据。否则,请使用您自己的数据(相应地调整字段名称)。您需要有权访问 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 步:准备数据
目标:使用之前显示的示例数据创建 Google 表格。
- 复制上一个框中的示例数据。
- 打开文本编辑器,粘贴示例数据,然后将文件另存为
pet-store-data.csv
。
在 Google 表格中,依次选择文件 > 导入。
选择上传,然后上传您在第 2 步中创建的示例数据文件。
选择替换电子表格。
将电子表格命名为
Pet Store
。
第 2 步:创建报告并添加数据
目标:将数据源关联到“宠物商店”电子表格,并将其添加到报告中。
片刻后,您将看到新报告,其中画布上有一个表格,使用的是 Pet Store 数据源中的字段。
第 3 步:创建“小计”字段
目标:创建一个用于计算订单小计的字段。
在菜单中,依次选择资源 > 管理添加的数据源。
找到宠物商店数据源,然后点击 修改。
系统随即会显示数据源字段面板。
点击 添加字段。
系统随即会显示计算字段编辑器。
在字段名称中,输入
Subtotal
。在公式中,输入
Price * Qty Sold
。点击保存。
点击所有字段,返回数据源主编辑器。
第 4 步:创建折扣字段
目标:创建一个字段,用于对价值在一定范围内的订单应用可变折扣率。
假设您想根据订单金额提供不同的折扣率。创建另一个名为 Discount
的计算字段,用于评估总金额字段并应用以下折扣。
小计值 | 折扣率 |
0 - 99 | 0 |
100 - 499 人 | 5% |
500 个或更多 | 10% |
提示:
- 在此步骤中,您只需计算折扣。您将在下一步中应用此值,方法是将总金额字段乘以折扣字段。
- 使用
CASE
表达式评估小计字段。
- 为每个折扣率使用
WHEN
子句。- 使用
ELSE
子句返回全价(折扣率为 0%)。- 折扣以小数值表示。例如,七五折优惠的折扣率为 .75。
解决方案
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
对于此解决方案,我们创建了单独的字段来存储大订单和中等订单的值以及相应的折扣。
这种解决方案的优势在于易于阅读、灵活且相对容易根据需要进行调整。