工作经验:妙用Excel功能提高数据对比效率
在现场检查中,我们常常会遇到数据对比,也叫数据勾对,经常是一人报数,另一人勾对,时常弄得头晕眼花……在实际工作中,我们发现,Excel为我们提供了强大的功能。如下表所示,A、B是两列数据源,C列是两列都有的数据集,D列是A列有B列没有的数据集,E列是A列没有B列有的数据集。
我们希望用Excel提供的函数,定义一个公式,自动计算或筛选出来。在C1输入数组公式:
=INDEX(A:A,SMALL(IF(COUNTIF($B$1:$B$1000,$A$1:$A$1000)>0,ROW($A$1:$A$1000),4^8),ROW(1:1)))&""
按CTRL+SHIFT+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往下拖动,就会得到两列都有的数据集C。
在D1输入数组公式:
=INDEX(A:A,SMALL(IF(COUNTIF($B$1:$B$1000,$A$1:$A$1000)=0,ROW($A$1:$A$1000),4^8),ROW(1:1)))&""
按CTRL+SHIFT+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时,同时按住鼠标左键往下拖动,就会得到是A列有B列没有的数据集D。
在E1输入数组公式 :
=INDEX(B:B,SMALL(IF(COUNTIF($A$1:$A$1000,$B$1:$B$1000)=0,ROW($A$1:$A$1000),4^8),ROW(1:1)))&"";
按CTRL+SHIFT+回车三键确定输入,鼠标移到单元格右下角,当出现一个黑色小十字时;同时按住鼠标左键往下拖动 就会得到A列没有B列有的数据集E。
这里只设置了1000行;具体可以根据你的数据调整范围。
在监管统计现场检查中,我们调阅了2009年5月至2010年5月的风险预警系统数据,我们重点检查了系统中数据的完整性和准确性。将系统中的数据和非现场监管系统中的数据进行对比,起初,我们采用逐笔勾对的老办法,两个人一天只能勾对1个月的个人违约信息,后来,采用新办法,一个人两小时,可以勾对13个月的数据,效率十分明显。
下面是十分枯燥乏味的Excel函数介绍:
1、函数INDEX
返回由行和列编号索引选定的表或数组中的元素值。
如果 INDEX 的第一个参数是数组常量,请使用数组形式。
INDEX(array,row_num,column_num)
Array 是一个单元格区域或数组常量。
如果数组中只包含一行或一列,则可以不使用相应的 row_num 或 column_num 参数。
如果数组中包含多个行和列,但只使用了 row_num 或 column_num,INDEX 将返回数组中整行或整列的数组。
Row_num 用于选择要从中返回值的数组中的行。如果省略 row_num,则需要使用 column_num。
Column_num 用于选择要从中返回值的数组中的列。如果省略 column_num,则需要使用 row_num。
说明
如果同时使用了 row_num 和 column_num 参数,INDEX 将返回 row_num 和 column_num 交叉处单元格中的值。
如果将 row_num 或 column_num 设置为 0(零),INDEX 将分别返回整列或整行的值数组。要将返回的值用作数组,请在行的水平单元格区域和列的垂直单元格区域以数组公式的形式输入 INDEX 函数。要输入数组公式,请按 Ctrl+Shift+Enter。
Row_num 和 column_num 必须指向数组中的某个单元格;否则,INDEX 将返回 #REF! 错误值。
2、函数SMALL
返回数据集中第 k 个最小值。使用此函数可以返回数据集中特定位置上的数值。
语法
SMALL(array,k)
Array 为需要找到第 k 个最小值的数组或数字型数据区域。
K 为返回的数据在数组或数据区域里的位置(从小到大)。
说明
如果 array 为空,函数 SMALL 返回错误值 #NUM!。
如果 k ≤ 0 或 k 超过了数据点个数,函数 SMALL 返回错误值 #NUM!。
如果 n 为数组中的数据点个数,则 SMALL(array,1) 等于最小值,SMALL(array,n) 等于最大值。
3、函数COUNTIF
计算区域中满足给定条件的单元格的个数。
语法
COUNTIF(range,criteria)
Range 为需要计算其中满足条件的单元格数目的单元格区域。
Criteria 为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式、单元格引用或文本。例如,条件可以表示为 32、"32"、">32" 、"apples" 或 B4。
说明
Microsoft Excel 还提供了其他一些函数,它们可根据条件来分析数据。
若要计算基于一个文本字符串或某范围内的一个数值的总和,可使用 SUMIF 工作表函数。
若要使公式返回两个基于条件的值之一,例如某指定销售金额的销售红利,可使用 IF 工作表函数。
若要计算空或非空单元格的个数,可使用 COUNTA 和 COUNTBLANK 函数。
4、函数ROW
返回引用的行号。
语法
ROW(reference)
Reference 为需要得到其行号的单元格或单元格区域。
如果省略 reference,则假定是对函数 ROW 所在单元格的引用。
如果 reference 为一个单元格区域,并且函数 ROW 作为垂直数组输入,则函数 ROW 将 reference 的行号以垂直数组的形式返回。
Reference 不能引用多个区域。