vlookup()函数,纵向查找函数。
举个例子
=VLOOKUP(G6,$B$6:$E$10,4,0)
参数一是要查找的值,参数二是要查找的区域,参数三是返回查找区域的第几列,参数四是精确匹配还是模糊匹配。
注意,查找的值必须位于查找区域的第一列。参数二可以在其他工作表。
参数四为0时表示精确匹配,1表示模糊匹配。模糊匹配会向下匹配。
举个例子,当销售额在0到两百万间,提成比例为5%。
=VLOOKUP(G9,$C$8:$D$13,2,1)
此时使用模糊匹配。
有时会遇到参数一是数值格式,而参数二的第一列是文本格式(或者反过来),导致无法匹配的情况。
假设参数一是数值,参数二的第一列是文本,函数应该这样写。
=VLOOKUP(F4&"",$A$2:$C$6,3,0)
数值型数据加上&"",即可转化成文本型。
如果参数一、二比较混乱,数值文本交错,如下
可以结合if、iserror、vlookup三个函数来写。
=IF(ISERROR(VLOOKUP(D20&"",$A$18:$C$22,3,0)),VLOOKUP(D20*1,$A$18:$C$22,3,0),VLOOKUP(D20&"",$A$18:$C$22,3,0))
HLOOKUP()是横向查找函数,用法和VLOOKUP差不多。
=HLOOKUP(A6,A:V,3,0)
练习:通过使用if和vlookup来计算个税。
=IF(E7-3500>0,VLOOKUP(E7-3500,$A$6:$C$12,3,1)*(E7-3500)-VLOOKUP(E7-3500,$A$6:$D$12,4,1),0)
下面介绍match()和index()函数。
match()函数有三个参数,参数一是查找值,参数二是查找区域,参数三是精确/模糊匹配。
=MATCH(A2,A:A,0)
上面这个函数就表示到A列精确查找A2值,返回它所在的行。
index()函数有三个参数,参数一是数据区域,参数二表示返回哪一行,参数三表示返回哪一列。
=INDEX(A:B,2,1)
上面这个函数表示返回数据区域的第二行的第一列。
有时候会遇到这样的问题,待查找值在第五列,而返回值在第一列,就无法使用vlookup函数了。此时可以结合index和match函数解决。
举个例子,在数据源中,公司名称列位于客户ID列前面。
=INDEX(数据源!A:A,MATCH(查询2!A2,数据源!B:B,0))
数据源中,B列是公司名称,A列是客户ID列。
练习:返回多列结果(注意引用方式即可,列名顺序和数据源的列名顺序一样)
=VLOOKUP($D4,数据源!$A:$K,COLUMN()-3,0)
练习:返回多列结果2(此处列名顺序和数据源的列名顺序不同,结合match和vlookup使用)
=VLOOKUP($A3,数据源!$A:$K,MATCH(返回多列结果!B$2,数据源!$1:$1,0),0)
注意引用方式。
数字1转换成日期格式显示1900/1/1,即表示1900年1月1日零时。
1.5换成日期表示1900年1月1日12:00。
时间24:00转换为数字是1,时间17:00转换为数字是0.708333333。
日期与时间计算
日期推算(使用date、year、month、day函数)
下一个月的第零天,即上一个月的最后一天。
通过datedif函数计算日期间隔
返回间隔了多少年,参数一是小日期,参数二是大日期。
参数三改为m、d分别表示间隔多少个月和多少天。
ym表示去掉整数个年后间隔多少月。同理,yd表示去掉整数个年后间隔多少天,md表示去掉整数个月后间隔多少天。
星期计算,认识函数weeknum和weekday。
weeknum函数返回日期是第几周,参数一是日期,参数二是设置星期几作为每个星期的开头。2表示以星期一作为每个星期的开头。
weekday函数返回日期是周几,参数和weeknum差不多。
还可以利用单元格格式设置中的自定义格式返回日期。
"aaaa"自定义格式表示将日期转化为星期几。如果是"aaa"的话返回“六”。
通过text函数还可以将假日期转为真日期
结果会返回数字,将格式设置为日期即可。
条件格式
通过条件格式可以将满足条件的数据设定为指定格式。
特别是使用数据条标记数据透视表,很直观。
另外,通过数据透视表工具可以插入切片器,通过切片器控制透视表显示不同类型的值字段。
通过自定义条件格式还能隐藏数据中的错误值
练习:将数量大于100的项目整行标记为红颜色背景(使用条件格式的新建格式规则)