Google Data Studio使用CASE WHEN匹配两组条件统计项目状态流转数量
错误原因
你之前写的计算字段公式逻辑存在天然矛盾:每一行数据只会对应唯一的Update_Date和Status值,不可能同时满足两个不同日期、两个不同状态的判断条件,所以永远不会返回符合要求的Project_Code,最终结果自然为0。
落地实现方案
方案1:Google Data Studio内直接实现(无需提前预处理数据)
- 第一步:将同一份Google Sheets数据源在Data Studio中添加两次,分别命名为
当前周期数据、上一周期数据 - 第二步:配置两个数据源的关联关系,关联键设置为
Project_Code - 第三步:新建计算字段,按需求写判断逻辑:
统计所有发生状态流转的项目数公式:
统计特定类型流转(比如Proposal转Business Case)的项目数公式:COUNT_DISTINCT(CASE WHEN 上一周期数据.Status != 当前周期数据.Status AND 上一周期数据.Status IS NOT NULL THEN 当前周期数据.Project_Code ELSE NULL END)COUNT_DISTINCT(CASE WHEN 上一周期数据.Status = "Proposal" AND 当前周期数据.Status = "Business Case" THEN 当前周期数据.Project_Code ELSE NULL END) - 第四步:将
当前周期数据.Update_Date作为维度拖入报表,即可查看每个日期对应的流转项目数量。
方案2:先在Google Sheets预处理后接入(实现更简单、性能更优)
直接在原始数据集里新增两列计算字段,提前标记每个项目的状态变化:
- 新增
上一状态列,公式参考:
=IFERROR(VLOOKUP(B2, FILTER($A:$C, $A:$A < A2), "首次上报")
- 新增
是否流转列,公式参考:
=IF(C2=D2, 0, 1)
处理完成后将数据集接入Data Studio,直接对是否流转字段求和即可得到对应日期的流转项目数。
内容的提问来源于stack exchange,提问作者Ant
相关产品推荐
相关产品推荐

