GOOGLE

EP04. “计算字段(Calculated field)与混合数据(Blend)”

首页 › Google 工具 › Data Studio · EP04
约 11 分钟· #EP04#Data Studio
🔒 登录后可标记已读
  • 资料里只有「数量」和「单价」,要看营业额?GA4 的流量来源太细,想合并成「社交媒体 / 搜索 / 直接」几大类?用计算字段自己算、自己分组
  • 计算字段的写法像 Google Sheets 公式,最常用的是四则运算、CASE WHEN 分组、SUM 这类汇总函数
  • 混合数据(Blend)把两个数据源按共同栏位接起来,例如 Google Ads 的花费 + Sheets 里的营业额 = 广告投报率(ROAS)
  • 一个混合最多 5 个表,默认用 Left outer join;选错连接方式,数字会少算或重复

重点内容


计算字段放在哪里

位置做法适合
数据源层级Resource → Manage added data sources → Edit → Add a field很多图表、很多报表都要用的字段
图表层级图表 Setup 的 Dimension 或 Metric 下方 Add dimension / Add metric → Add calculated field只有这一个图表需要

💡 常用的字段放在数据源层级,每份报表都能直接用,也只要维护一个地方。


常用写法

四则运算:

Qty * Unit Price

比率(用 SUM 先汇总再相除):

SUM(Conversions) / SUM(Sessions)

然后把字段 Type 设成 Percent。

分组(CASE WHEN):

CASE
  WHEN REGEXP_MATCH(Session source, "(?i).*(facebook|instagram|tiktok|xiaohongshu).*") THEN "社交媒体"
  WHEN Session medium = "organic" THEN "自然搜索"
  WHEN Session medium = "cpc" THEN "付费广告"
  WHEN Session source = "(direct)" THEN "直接访问"
  ELSE "其他"
END

州属名称统一:

CASE
  WHEN State IN ("KL", "Kuala Lumpur", "W.P. Kuala Lumpur") THEN "Kuala Lumpur"
  WHEN State IN ("Penang", "Pulau Pinang") THEN "Penang"
  ELSE State
END

常用函数

类型函数例子
汇总SUM、AVG、COUNT、COUNT_DISTINCT、MAX、MINCOUNT_DISTINCT(Order ID)
条件CASE WHEN … THEN … ELSE … END、IF见上面
文字CONCAT、LOWER、UPPER、TRIM、REPLACE、REGEXP_MATCH、REGEXP_EXTRACTLOWER(Page path)
日期YEAR、MONTH、WEEKDAY、DATE_DIFF、TODAYDATE_DIFF(TODAY(), Order Date)
数学ROUND、ABS、SAFE_DIVIDEROUND(Revenue / Orders, 2)

📌 REGEXP_MATCH 要整串符合才算,所以前后常加 .*;(?i) 代表不分大小写。

⚠️ 比率一定要先汇总再相除:SUM(Revenue) / SUM(Orders) 才对;写成 Revenue / Orders 会先逐行相除再加总,得到的「平均订单金额」是错的。


混合数据(Blend)

什么时候需要:

  • Google Ads 花费(Ads 数据源)+ 营业额(Sheets 数据源)→ 算 ROAS
  • GA4 的页面流量 + Search Console 的曝光点击 → 同一张表比较
  • 每月目标(Sheets)+ 实际业绩(GA4 / 销售表)→ 达成率

建立混合:

  1. 方法一:选取两个使用不同数据源的图表 → 右键 → Blend data
  2. 方法二:Resource → Manage blends → Add a blend
  3. 左边第一个表是左表,按 Join another table 加入其他表(最多 5 个)
  4. 设定 Join configuration:连接方式 + Join conditions(共同栏位,例如 Date、Campaign)
  5. 选好每个表要用的维度、指标 → Save

连接方式(Join)

flowchart LR
    subgraph L["Left outer(默认)"]
        L1["左表全部<br/>+ 右表对得上的"]
    end
    subgraph I["Inner"]
        I1["只保留两边<br/>都对得上的"]
    end
    subgraph F["Full outer"]
        F1["两边全部保留"]
    end
连接方式结果例子
Left outer(默认)左表全部 + 右表对得上的以 GA4 日期为主,补上当天的广告花费
Right outer右表全部 + 左表对得上的反过来
Inner只留两边都有的只看有广告、也有营业额的日子
Full outer两边全部保留目标表有、实际还没发生的月份也要显示
Cross每一行跟每一行配对很少用,资料量会暴增

实操示例:广告投报率(ROAS)

  1. 数据源 A:Google Ads(维度 Day,指标 Cost)
  2. 数据源 B:Google Sheets 销售表(维度 Date,指标 Revenue)
  3. 两个日期栏位都设成 Date (YYYYMMDD) 同样格式
  4. Blend:左表 Ads、右表 Sheets,Left outer,Join condition:Day = Date
  5. 在混合后的图表加计算字段:
SUM(Revenue) / SUM(Cost)
  1. 设成 Number,命名 ROAS;ROAS 3 代表花 RM1 广告带来 RM3 营业额

⚠️ 两边的日期格式、大小写、空格要完全一样才对得上。Selangor 和 selangor 会被当成两个不同的值,先用计算字段 TRIM / LOWER 统一。


学完你会

  • ✅ 在数据源或图表层级建立计算字段
  • ✅ 用 CASE WHEN 做分组、用 SUM()/SUM() 算比率
  • ✅ 用 Blend 把两个数据源接起来
  • ✅ 分得清 Left outer、Inner、Full outer

常见错误

  • ❌ 比率写成 Revenue / Orders:先逐行相除再加总,结果错误,要 SUM(Revenue) / SUM(Orders)。
  • ❌ Blend 的共同栏位格式不同:日期一边是 Text、一边是 Date,完全对不上,数字变空白。
  • ❌ 用 Inner join 结果少了很多天:没有广告的日子被排除,要保留全部就用 Left outer。
  • ❌ REGEXP_MATCH 没加 .*:只有完全相同的字串才符合,大部分都没分到类。
  • ❌ 同一个计算字段在十个图表各写一次:放到数据源层级,只维护一份。

Sources

官方文档:

  1. About calculated fields - Google Cloud Documentation
  2. Use functions in calculated fields - Google Cloud Documentation
  3. Tutorial: Create calculated fields in Data Studio - Google Cloud Documentation
  4. How blends work in Data Studio - Google Cloud Documentation
  5. Create, edit, and manage blends - Google Cloud Documentation
  6. Blending tips and advanced concepts - Google Cloud Documentation
📝 测验一下共 6 题