最近与公司财务在交流中发现,数据是他们天天面对而又是最为头痛的问题,一个表须要从其余部门提供上来的各式各样的表中人为的提取数据,耗费的人力愈来愈大,手工的录入也带来了或多或少的错误。在他们的要求下,花去我许多空闲时间,终于帮他们解决很大一部分问题,为他们从此工做节省了一笔时间。面对EXCEL若是仅仅知道的是往里面输入简单的几个字符,那只能说咱们仅仅用到了它的皮毛。熟练的应运一些看似简单的公式,将为咱们的应用锦上添花。ide
一、根据姓名取值函数
使用函数:Vlookupblog
标准语法:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)ip
用途:不只用于在当前表格中查找指定值后返回其它列的值,并且能够用于在两个不一样表格中查找并返回所须要的值。get
例:计算当月工资时要从领导提供的管理人员薪资表中提取全部人的基础薪资时,能够使用:VLOOKUP(C4,管理人员薪资!$B:$C,2,FALSE)。 it
所产生的问题是当没有查找到目标值时,返回的是一个错误值“#N/A”,这个值将致使其它字段运用它计算时一样产生错误值“#N/A”。table
二、根据姓名取值,错误值用0取代class
使用函数:IF+ISNA+VLOOKUPtest
标准语法:IF(logical_test,value_if_true,value_if_false)基础
ISNA(value)
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
合并后:IF(ISNA(VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)),“0”,VLOOKUP(lookup_value,table_array,col_index_num,range_lookup))
用途:将判断一个字段的值是否为“#N/A”,若是值为错误值 #N/A,则返回 TRUE所对应的值,不然返回FALSE所对应的值。
这样一来咱们可经过将IF、ISNA和VLOOKUP配合到一块儿来解决咱们所遇到的“#N/A”问题,也能够方便地取到咱们所须要的值。
IF(ISNA(VLOOKUP(C9,管理人员薪资!$B:$C,2,FALSE)),"0",VLOOKUP(C9,管理人员薪资!$B:$C,2,FALSE))
注:当咱们采用各类函数获得的值出现相似“#N/A”、“#VALUE ”、“#REF ”、“#DIV/0 ”、“#NUM ”等错误时,咱们还能够使用IF+ISERR/ISERROR/ISNA来进行判断取值。
ISERR:若是值为除 #N/A 之外的任何错误值,则返回 TRUE。
ISERROR:若是值为任何错误值,则返回 TRUE。
ISNA:若是值为错误值 #N/A,则返回 TRUE。
三、取数字的大写元角分值
使用函数:SUBSTITUTE+TEXT+TRUNC+FIXED+IF+RIGHT+ABS
用途:用于财务输入数字金额时自动在相应的单元格中产生大写元角分值。
SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(B3)),"[dbnum2]G/通用格式元;负[dbnum2]G/通用格式元;"&IF(B3>-0.5%,,"负"))&TEXT(RIGHT(FIXED(B3),2),"[dbnum2]0角0分;;"&IF(ABS(B3)>1%,"整",)),"零角",IF(ABS(B3)<1,,"零")),"零分","整")
四、自动取最近一次单价值
使用函数:INDEX+MAX+IF+COLUMN
用途:注要用于取某一行中最后一个非空值的单元格数据到指定单元格,当表格超大时,查找一个最新的值移动表格将很是不方便,这样咱们将最新的数据所有显示在一块儿将更易于工做。
INDEX(A2:CU2,1,MAX(IF(N2="",0,COLUMN(N2)),IF(P2="",0,COLUMN(P2)),IF(R2="",0,COLUMN(R2)),IF(T2="",0,COLUMN(T2)),IF(V2="",0,COLUMN(V2)),IF(X2="",0,COLUMN(X2)),IF(Z2="",0,COLUMN(Z2)),IF(AB2="",0,COLUMN(AB2)),IF(AD2="",0,COLUMN(AD2))))
下表中“最近单价”和“最近价格确认时间”所取的值为本行中相应颜色字段的值。
或许这些平时不起眼的小函数,当它们组合在一块儿时将产生多大用处,只要咱们好好的去运用它们,它们将给咱们带来工做上不少的便利。