1 说明
在Excel使用过程中,有时会需要对比两列中的数据,可以使用公式提高对比速度和准确性。
如图1中的表格,可使用公式把A中的单元格与B中的单元格一一比对,然后在C列填写比较结果。A2如果与B列的某一单元格相同,则填写到C2处;A3如果与B列的某一单元格相同,则填写到C3处;……;以此类推。有两个不同的公式可以实现同样效果,现分别列出。
1.1 公式一
以图1中A2为活动单元格,在C2填写公式“=IF(ISERROR(MATCH(A2,$B$2:$B$11,0)), "", A2)”。其中用到三个函数:
- IF(logical_test, [value_if_true], [value_if_false]),测试“logical_test”的值,为真则返回“[value_if_true]”,为假则返回“[value_if_false]”。
- ISERROR(value),“value”为任意错误值(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 或 #NULL!),则返回“TRUE”。
- MATCH(lookup_value, lookup_array, [match_type]),在“lookup_array”中查找“lookup_value”,返回“lookup_value”在“lookup_array”的相对位置。图1中A3单元格的值位于$B$2:$B$11的第三项,此函数会返回2。“[match_type]”指出匹配类型,“0”指精确匹配。若查找匹配项不成功,函数返回错误值“#N/A”。
对比结果如下:
1.2 公式二
以图1中A2为活动单元格,在C2填写公式“=IFERROR(VLOOKUP(A2,$B$2:$B$11,1,FALSE), "")”。其中用到两个函数:
- IFERROR(value, value_if_error),若“value”计算结果错误(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、 #NAME? 或 #NULL!),则返回“value_if_error”,否则返回“value”的计算结果。
- VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]),在“table_array”的第一列查找“lookup_value”,返回该区域相同行上第“col_index_num”列单元格的值。“[range_lookup]”指出匹配类型,“FALSE”指精确匹配,若无精确匹配项,函数返回错误值“#N/A”。如果“col_index_num”参数小于 1,函数返回错误值“#VALUE!”;大于“table_array”的列数,函数返回错误值 #REF!。
对比结果与图2相同。
2 参考文档
2.1 如何在 Excel 中通过比较两列中的数据来查找重复项
2.2 Excel 函数(按类别列出)
Visits: 429