1. 概述
Excel 中
「条件计数(COUNTIF/COUNTIFS)」:统计满足某个条件的数据条数。
「条件求和(SUMIF/SUMIFS)」:用于对指定条件的值求和。
在 BI 中同样也可以使用组合函数实现条件求和与计数。
注:BI 中不能实现跨数据表计算,只能在一张数据表中进行计算。
2. 条件计数
2.1 在组件中实现
注:若不需要去重统计,只需要记录次数,那么使用 COUNT_AGG 计数即可。
示例:计算激活日期当日登录的用户数(对当日登录用户联系方式进行去重计数)
示例数据:用户留存分析.xlsx
2.1.1 操作步骤
新建分析主题,添加「用户留存分析」数据后,添加组件并进入组件编辑界面。
创建「计算字段」,输入字段名称「激活当日登录用户数」,公式为:COUNTD_AGG(IF(DATEDIF(最早激活日期,登录时间,"D")=0,联系电话,null)),并点击「确定」,如下图所示:
公式说明:
公式 | 说明 |
---|---|
DATEDIF(最早激活日期,登录时间,"D") | 计算登录时间和最早激活时间的时间差,返回以天为维度的时间差 |
IF(DATEDIF(最早激活日期,登录时间,"D")=0,联系电话,null) | 如果时间差=0,即激活日期当日就登录,那么输出用户的「联系电话」,否则输出 null,即不计数 |
COUNTD_AGG(IF(DATEDIF(最早激活日期,登录时间,"D")=0,联系电话,null)) | 对当日登录用户联系方式进行去重计数 |
2.1.2 效果查看
选择分组表,将「最早激活时间」拖入横轴并设置分类为「年月」,将「激活当日登录用户数」字段拖入纵轴,则可以看到激活当天登录用户的数量,如下图所示:
注:如果需要计数不为空的数据,可使用类似COUNTD_AGG(IF(字段1!="",字段2,null)) 公式。
2.2 在数据中实现
使用 分组汇总 功能实现去重计数和计数,如下图所示:
3. 条件求和
示例:计算「省份」为「北京」且「客户名称」为「格双有限公司」的「合同金额」总量。
示例数据:地区数据分析.xlsx
3.1 操作步骤
添加组件,选择「地区数据分析」数据集,创建「计算字段」,输入字段名称「北京 格双有限公司回款总额」,公式为:SUM_AGG(IF(省份="北京市"&&客户名称="格双有限公司",回款金额,0)),如下图所示:
公式说明:
公式 | 说明 |
---|---|
IF(省份="北京市"&&客户名称="格双有限公司",回款金额,0) | 如果同时满足「省份」为「北京」且「客户名称」为「格双有限公司」,则输出「回款金额」,否则输出 0 |
SUM_AGG(IF(省份="北京市"&&客户名称="格双有限公司",回款金额,0)) | 对上一步输出的结果进行求和 |
3.2 效果查看
保存字段后,将「北京 格双有限公司回款总额」字段拖入纵轴,则可以看到指定条件下的回款总额,如下图所示: