计算字段简介

借助计算字段,您可以创建从数据派生的新指标和维度。借助计算字段,您可以扩展和转换从数据源流入的信息,并在报告中查看结果。

观看视频

计算字段的运作方式

计算字段是一种公式,用于对数据源中的一个或多个其他字段执行某些操作。计算字段可以执行算术运算和数学运算;处理文本、日期和地理信息;以及使用分支逻辑来评估数据并返回不同的结果。您还可以使用自定义组计算字段类型创建自定义组,或使用自定义分箱计算字段类型创建自定义分箱。然后,您可以在包含该字段的图表中针对每行数据显示计算字段的输出。这些新数据的显示方式取决于其使用方式。

例如,假设您创建了一个名为“Total”的计算字段,该字段将单价字段 ( Price ) 与售出数量字段 ( Qty Sold ) 相乘:

“添加字段”面板会显示名为“总计”的计算字段的公式 sum(Price) * sum(Qty Sold)。

在表格中使用时,计算出的总计字段会显示每行相应乘积的结果。

表格图表会显示 SKU、商品、价格和售出数量的列,以及“总计”计算字段,该字段会将每行的价格值乘以售出数量。

在计分卡中使用时,总计字段会显示所有行中产品的总和,其中数量乘以价格。

在“计分卡”图表中,“总计”计算字段指标显示值 15,488.22,字段名称“总计”则以上标形式显示在其上方。

数据源计算字段与图表专用计算字段

计算字段分为两种,具体取决于您在何处创建它们:在数据源中在报告中的特定图表中。每种类型的计算字段都比其他类型具有一定的优势。

数据源中的计算字段

在数据源中创建计算字段后,您可以执行以下操作:

  • 计算字段可在使用该数据源的任何报告中使用。
  • 您可以在图表、控件和其他计算字段中使用数据源计算字段,就像使用常规字段一样。
  • 您可以按数据源计算字段过滤,就像按常规字段过滤一样。例如,您可以设置过滤条件属性,以便仅包含总价值至少为 500 美元的商品:

选择一个名为“Item Filter”的计算字段(逻辑为“大于或等于 500”)作为“Filter Control Filter”。

数据源计算字段的限制

数据源中的计算字段存在以下限制:

  • 您无法将数据源计算字段与混合数据搭配使用。
  • 您必须拥有对数据源的修改权限,才能在其中创建或修改计算字段。
  • 在数据源中创建或修改计算字段时,您无法应用自定义值格式。您可以在图表的属性面板的设置标签页中,将自定义值格式应用于数据源计算字段。

特定于图表的计算字段

您可以直接将计算字段添加到报告中的图表中。这些特定于图表(也称为“图表级”)的计算字段可以进行数学运算、使用函数,并返回基于结果的 CASE 语句,就像数据源中的计算字段一样。

与数据源计算字段相比,图表专用计算字段具有一些优势:

  • 您无需访问数据源,即可快速轻松地添加字段。
  • 您可以创建基于混合数据的特定于图表的计算字段。
  • 您可以在图表专用计算字段中添加数据源计算字段。
  • 您可以在创建过程中对特定于图表的计算字段应用自定义值格式

图表专用计算字段的限制

  • 图表专用计算字段仅存在于您创建它们的图表中。在图表中创建字段并不会同时在图表的数据源中创建该字段。
  • 您无法在公式中引用其他特定于图表的计算字段,即使这些字段是在同一图表中定义的也是如此。(如果您需要引用其他计算字段,请使用数据源计算字段。)
  • 若要创建特定于图表的计算字段,您必须是报告的编辑者。
  • 必须在数据源中启用报告中的字段修改功能

下表总结了这两种计算字段之间的差异。

特征 数据源计算字段 特定于图表的计算字段
谁可以创建? 数据源编辑器 报告编辑者
是否适用于混合数据?
包含其他计算字段?
此字段在哪些位置可用? 基于数据源的任何报告 仅在创建该图表时使用的特定图表

数据类型

计算字段的数据类型取决于公式中涉及的函数:

  • 使用算术函数或汇总函数(例如 SUMCOUNTMAX)的公式会创建数字类型字段。
  • 使用文本函数(例如 CONCATSUBSTRLOWER)的公式会创建文本类型字段。
  • 使用日期和时间函数的公式会创建数字日期和时间类型字段,具体取决于所使用的函数。

您可以使用数据源编辑器中的类型下拉菜单更改计算字段的数据类型。

不妨详细了解数据类型

汇总和计算字段

汇总是指对字段数据进行汇总的方法。您可以构建可对按行未汇总的值或汇总值进行运算的计算字段。

例如,假设您有 2 个未汇总的数字维度,即价格售出数量,其中包含以下数据:

下单日期 商品 售出数量 价格
2019 年 10 月 2 日 Pretty Bird Bird Seed

7

7.99

2019 年 10 月 3 日 Pretty Bird Bird Seed

5

7.99

2019 年 10 月 8 日 Pretty Bird Bird Seed

3

7.99

2019 年 10 月 13 日 Pretty Bird Bird Seed

5

7.99

如需计算这些订单的总价值,您需要将价格售出数量相乘:

Price * Quantity Sold

如果您在数据源中创建此字段,则结果将是一个未汇总的数字维度。在图表中使用此函数时,系统会使用默认的“求和”汇总方式,并计算每行数据的总和。

如需创建汇总的计算指标,请为构成公式的任何数字字段添加所需的汇总函数。例如,假设您想在统计信息摘要图中显示总利润率。您可以使用如下公式来实现此目的:

SUM(Profit) / SUM(Revenue)

当您明确指定汇总方法时,字段的默认汇总会设为 Auto.。这可确保 Looker 数据洞察按预期汇总公式,并防止有人更改默认汇总时计算字段出现错误。

您可以使用计算字段做些什么

借助计算字段,您可以执行以下任务:

使用数字字段进行基本数学运算

您可以使用常规运算符进行简单的算术运算:

  • 加法:+
  • 减号:-
  • 除法运算符:/
  • 乘法:*

您可以使用上述任一运算符,结合使用数据源中的静态数值和未汇总的数值字段来构建计算字段。使用括号强制计算顺序。

示例

Users / New Users

(SUM(Price) * SUM(Quantity)) *.085

详细了解运算符

使用函数处理数据

借助函数,您可以通过不同的方式汇总数据、应用数学和统计运算、处理文本,以及处理日期和地理信息。

示例

SUM(Quantity) - 在“数量”字段中添加值。

PERCENTILE(Users per day, 50) - 返回“用户数(每天)”字段的所有值的第 50 百分位数。

ROUND(Revenue Per User, 0) - 将“每位用户的收入”字段舍入到小数点后 0 位。

SUBSTR(Campaign, 1, 5) - 返回“广告系列”字段的前 5 个字符。

REGEXP_EXTRACT(Pipe delimited values, R'^([a-zA-Z_]*)(\|)') - 提取以英文竖线分隔的字符串中的第一个值。

DATETIME_DIFF(Start Date, End Date) - 计算“开始日期”和“结束日期”之间的天数。

PARSE_DATETIME("%d/%m/%Y %H:%M:%S", DateTimeText) - 根据文本字段创建日期。

TOCITY(Criteria ID, "CRITERIA_ID") - 显示有效 Google Ads 地理位置定位条件 ID 对应的城市名称。

详细了解如何使用函数

使用分支逻辑

借助 CASE 语句,您可以在计算字段中执行分支“if/then/else”风格逻辑。例如,以下 CASE 公式会将指定的国家/地区划分为区域,并将未指定的国家/地区划分为“其他”类别:

CASE
    WHEN Country IN ("USA","Canada","Mexico") THEN "North America"
    WHEN Country IN ("England","France") THEN "Europe"
    ELSE "Other"
END

详细了解 CASE

创建自定义群组

借助自定义组,您可以为维度创建临时自定义组,而无需在计算字段或 SQL 中开发或编写 CASE 逻辑。如果您想为与特定条件匹配的值分配固定标签或类别名称,此功能会非常有用。

例如,名为“按目的地划分的 FAA 航班数”的图表会显示“记录数”指标,该指标按表示航班目的地的“DestState”维度进行分组。

报告制作者希望按区域(而非各个州)查看和比较数据,但数据源中没有地区维度。报告制作者可以创建自定义组,将特定州或国家/地区划分到区域中。

报告制作者通过输入以下规范,将自定义组计算字段添加到图表中:

  • 要按其分组的所选字段字段中,报告创建者选择 DestState 字段。

  • 新字段名称字段中,报告制作者为新组字段提供名称。我们将其称为“航班目的地区域”。

  • 组名称字段中,报告创建者输入 Pacific Northwest(美国西北部)来表示归入美国西北部区域的各州。

  • 包含或排除下拉菜单中,报告创建者选择包含

  • 条件下拉菜单中,报告制作者选择 In 函数,以便为“西北太平洋”组指定具体值。

  • 组值字段中,报告创建者输入州缩写 ORWYID、MTWA

  • 报告制作者想要了解美国西北部区域与美国其他地区的对比情况。报告制作者选中将其余值划分到一个新组中复选框。

  • 在“其余值的组名称”字段中,报告制作者输入标签“美国其他地区”,以便将不属于太平洋西北部组的所有其他州归为一组。

  • 报告编辑器点击保存

生成的表格现在会按新的航班目的地区域维度组(美国西北部美国其他地区)对记录数指标进行分组。

通过此表格,用户可以快速了解太平洋西北区域(4,430,314 个航班)与美国其他区域(112,334,509 个航班)相比,有多少个航班目的地。

详细了解自定义群组

创建自定义回收站

借助自定义分桶,您可以为数字类型维度创建临时分桶(即数字层级),而无需在计算字段或 SQL 中开发或编写 CASE 逻辑。如果您想快速将值分组到特定的整数范围,以调整数据的精细程度,分箱计算字段类型会很有用。

例如,名为按年份显示电影上映信息的表格图表会显示记录数指标,该指标按year_film 维度(表示电影上映的年份)进行分组。

报告制作者希望按十年而不是按年份查看和比较数据,但数据源中没有十年维度。报告制作者可以创建自定义分桶,按十年对年份进行分组。

报告制作者通过输入以下规范,将自定义分箱计算字段添加到图表中:

  • 新字段名称字段中,报告制作者为新组字段提供了名称:十年

  • 所选的按字段分箱字段中,报告创建者选择 year_film 字段。

  • “分桶”字段格式字段中,报告制作者选择“[x,y]”间隔格式。

  • 分桶类型字段中,报告制作者选择大小相同

  • 分桶大小字段中,报告制作者输入 10,表示十年中的年数。

  • 分箱最小值中,报告制作者输入 1920,以便从数据集中电影发行最早的十年开始分箱。

  • 在“分箱上限值”中,报告制作者输入 2020,以便在数据集中电影的发布年份达到该十年后结束分箱。

  • 为了考虑任何多余的数据点,报告创建者会选中将小于最小值和大于最大值的剩余值分箱,作为单独的分箱复选框。

  • 报告编辑器点击保存

生成的表格现在会按新的十年分桶字段显示记录数指标,以显示每个十年发行的电影数量。

详细了解自定义分桶。