在Excel运用中,有很多数据分类、统计工作。有些统计工作非常消耗人工,如:商店里擢爻充种的每天销售的商品种类及其剞麽苍足数量,工厂里每天的不良项目及其数量。这是数据,按各项目来区分,每天各项目的数据都有变化,再从软件系统导出时,排列顺序每天都有不同,但,我们有时也需要每天追踪各项目的数据变化趋势,因此,就需要一个总表,按项目类型分开统计数据。但,每天不良项目顺序不同,用人工统计费时费力,如何实现电脑自动统计呢?本经验就说明一下这方面的方法。讲述在一个总合表中,统计每天产线不良项目及及其对应的不良数量;因每天不良项目的个数、顺序、数量是不同的,在Excel中,又如何区分识别不良项目,并找到不良项目对应的不良数。
工具/原料
电脑、Office软件Excel
方法/步骤
1、1>.新建一个Excel表,并新增Sheet,将Sheet增加到32个2>.第一个Sheet,命名为《不良分析》3>.将其他Sheet一次按数字命名,从《1》,《2》....《31》4>.完成后保存
2、在《不良分析》表中,完成总合表制作1>.所有的不良项目2>.按日期的列表项注意:命名为1,2,3....31,此数据与Sheet名相同,到时需要关联
3、每日数据如下表:1>.每天的不良项目数量有变化2>.每天的不良项目顺序不同3>.不良名固定,数据格式固定如何将上面状况的不良项目的不良数,在《不良分析》表中,按照对应的不良名称,填写到对应的日期中呢?
4、公式设定:1>.用M钽吟篑瑜ATCH()函数,找匹配的位置Match(Lookup_Value,Lookup_array,Looku禊诬娱飑p_type)说明函数功能:指定的数组中,找一个指定的数据,并放回此数据在数组中的位置返回的是在Sheet中的列数。函数参数:-Lookup_Value:需要查找的值-Lookup_array:在指定的区域查找-Lookup_type:查找格式,-1,0,1,三个选项(一般选择0)2>.Match公式设定,完成不良项目对应关系A.在《不良分析表》中,"P06下POL异物不良"这个项目,在4月2日(Sheet名为2)的的表中,对应“P06下POL异物”项的所在列B.在《不良分析表》日期栏为“2”,与“P06下POL异物不良”对应行,输入公式:=MATCH(M16,'2'!A1:DA1,0)其中:M16:指向《不良分析表》中“P06下POL异物不良”的单元格‘2‘!A1:DA1:指的是在Sheet名为“2”的从A1到DA1的区间单元格0:完全匹配C:返回值:18(通过公式,得到数据18)说明:1.“P06下POL异物不良”在Sheet名为2的表中,的位置为第18列2.不管顺序,不管需要找的内容,都能按上方式在不同Sheet查找
5、读取对应不良项目的数据,1>.先用ADDRESS函墙绅褡孛数定位地址函数功能:创建一个以文本名对应工辑湃形傥作Sheet内的单元格数据的引用ADDRESS(Row_num,Colum_num,abs_num,a1,sheet_name)函数参数:Row_num:行数,在本例中,第三为不良名称,第4行为不良数Colum_num:列数:配合上面公司Match函数,可以定位到列数sheet_name:Sheet名,对应到日期,Sheet名以数字命名,对应日期2>.公式设计=ADDRESS(4,MATCH(M16,'2'!A1:DA1,0),1,1,S3)在《不良分析表》单元格S3中,放置日期为2,也就是说,上面公式是在Sheet名为“2”的工作表里,对应第4行,第18列(Match函数得出的数据)对应单元格3>.数据引用;Address只是将单元格地址找到了,但单元格内的内容,需要用INDIRECT函数把它导出=INDIRECT(ADDRESS(4,MATCH(M16,'2'!A1:DA1,0),1,1,S3))将Sheet名(在S3单元格)为“2”的第4行第18列的数据显示在对应单元格中
6、配置其他日期对应单元格的函数1.先对“P06下POL不良“项目进行了4月2日的单元格配置,要配置其他日期,有些内容不用改变,用"$"符合锁定,有些自动更新的内容,不要锁定,如下:=INDIRECT(ADDRESS(4,MATCH($M16,'2'!$A$1:$DA$1,0),1,1,S$3))2.横向拉动单元格,公司主动复制3.在每个单元格内,将公式内的“2”!修改成对应日期,这个需要手工修改-如:'2'!,'3'!....3中的数据按对应日期修改-要保证有对应的Sheet名,不然会报错
7、完成所有不良项目的设置1.配置好一个不良项目后,将可以配置其他不良项目2.其他不良项目不用和第一个不良项目一样配置,只要将公式往下拉,自动复制3.自动完成后,整个报表就完成了4.为了美光,在数据找不到时,不要让单元格显示异常,可以修改为下列公式:=IF(ISNA(INDIRECT(ADDRESS(3,MATCH($M16,'2'!$A$1:$DA$1,0),1,1,$S$3))),0,INDIRECT(ADDRESS(3,MATCH($M16,'2'!$A$1:$DA$1,0),1,1,$S$3)))