1. 概述
在进行数据分析时,用户经常会使用到 IF 判断条件,来对已有的数据进行数据清洗和处理。
2. 处理特殊值
2.1 示例一:字段中值为空
用户在进行数据处理时,可能会遇到字段有空的情况,此时如果在此基础上需要对非 0 数据进行公式计算或者处理,就需要只处理非空的数据即可,可使用 IF 函数进行判断。
示例数据:互联网_访问统计表.xlsx
例如「互联网_访问统计表」中的「统计日期」有为空的数据,需要将非空的「统计日期」数据处理为当前时间后十天,由于空值会被处理成 1970 年,因此需要在公式外再嵌套一个 IF 和 ISNULL 组合的函数,确保处理后的结果正确性。
新建自助数据集,创建「新增列」并使用公式 IF(ISNULL(统计日期)=1,null,DATEDELTA(统计日期,10)),如下图所示:
注:DATEDELTA 函数可以返回指定日期后的具体日期。
2.2 示例二:保证除法结果的正确性
若出现需要对字段进行除法计算,被除数或者除数为 0 ,此时也可以使用 IF 函数。
详情参见:无穷/负数/空值显示为0 。
2. 进行条件赋值
用户需要需要根据某些条件对数据进行分类赋值处理,此时 IF 函数是一个比较好的选择。
通常会 IF 函数会与 AND、OR、FIND等嵌套使用。
2.1 示例一:多个 IF 嵌套使用
使用内置数据集「地区数据分析」。
如果「客户名称」这个列中包含「有限公司」字段的就等于「有限公司」,如果包含「大学」字段的就等于「教育行业」,否则就为「其他」。
创建自助数据集,新建新增列并输入公式:IF(FIND("有限公司",客户名称)!=0,"有限公司",IF(FIND("大学",客户名称)!=0,"教育行业","其他")),如下图所示:
注:字段需要从公式框左侧选择,不能手动输入。
公式说明:
公式 | 说明 |
---|---|
FIND("有限公司",客户名称)!=0 | 在「客户名称」字段中查找包含「有限公司」内容,则输出为真,否则为 FALSE |
IF(FIND("有限公司",客户名称)!=0,"有限公司",IF(FIND("大学",客户名称)!=0,"教育行业","其他")) | 如果「客户名称」这个列中包含「有限公司」字段的就等于「有限公司」,如果包含「大学」字段的就等于「教育行业」,否则就为「其他」 |
2.2 示例二:与逻辑函数一起使用
仍然使用内置数据集,如果只要满足「合同金额>500000」、「省份属于浙江省」中的一个,即赋值为「指定合同」,否则为其他。
输入公式:IF(OR(合同金额>500000,FIND("浙江省",省份)!=0),"指定合同","其他"),如下图所示:
公式 | 说明 |
---|---|
FIND("浙江省",省份)!=0 | 若省份为浙江省,返回 TRUE,否则返回 FALSE |
OR(合同金额>500000,FIND("浙江省",省份)!=0) | 满足两个条件中的一个则为真 |
也可将 OR 替换成 ||:IF(合同金额>500000||FIND("浙江省",省份)!=0,"指定合同","其他")
3. 处理逻辑错误值
在进行数据处理时,用户经常遇到数据「逻辑值错误」的问题,例如有一张数据表,总停留时间是有负数的数据,明显这些数据是错误的,此时就需要进行数据处理,将「总停留时间」为负数的都改成「报错」进行标识。
3.1 操作步骤
新建自助数据集,创建「新增列」并使用公式 IF(总停留时间>=0,总停留时间,"报错"),如下图所示:
公式 | 说明 |
---|---|
IF(总停留时间>=0,总停留时间,"报错") | 如果总停留时间字段>=0,则按照原内容输出,否则赋值为「报错」 |
注1:「总停留时间」字段需要从左侧的字段选择框中点击添加进公式框。
注2:由于「报错」为文本数据,因此需要使用双引号。