二、一维到二维
数据源:B2:D51
反过来,从一维到二维,又有哪些方法呢?
方法1:SUMPRODUCT
公式:SUMPRODUCT(($B$3:$B$51=$B59)*($C$3:$C$51=C$58)*$D$3:$D$51)
利用SUMPRODUCT进行条件判断,判断数据源日期和科目字段中每个单元格是不是要查询的日期和科目,对满足条件的数据进行先乘积再求和,最后就得到费用。
由于存在查询不到数据的情况(比如2010年职工薪酬),用SUMPRODUCT计算的结果为0,因此可以用IF函数做一下处理,使结果为0的显示为空。
方法2:VLOOKUP+IF{1,0}
公式:{VLOOKUP($B71&C$70,IF({1,0},$B$3:$B$51&$C$3:$C$51,$D$3:$D$51),2,)}
利用IF{1,0}构造一个数据源,用日期&科目作为查找值进行查找,这是数组的用法,公式要加上大括号。
当查找不到结果的时候,此公式会显示错误值,因此再嵌套IFERROR进行处理。
方法3:SUMIFS
公式:SUMIFS($D$3:$D$51,$B$3:$B$51,$B93,$C$3:$C$51,C$92)
把匹配问题转化成多条件求和问题(当然只能针对数值的情形,对文本不适用)。
方法4:自定义函数VLOOKUPS
公式:Vlookupifs(2,$D$3:$D$51,$B$3:$B$51,$B82,$C$3:$C$51,C$81)
本例中,相当于我们根据日期和科目两个条件去做查询,不管用SUMPRODUCT还是SUMIFS,都是把匹配问题转化成了条件求和问题,因此只能对查询结果是数值的情形适用。如果是文本则不合适。
因此,我用VBA编写了一个自定义函数——VLOOKUPIFS,多条件匹配,可以根据多个条件来匹配目标(不管目标是数值还是文本都可适用)。
当然,自定义函数必须添加到加载宏里才可以在任何文件中使用。
关于自定义函数及用法,我会在表格学院《21天Excel函数公式营》中为大家详细介绍。
函数营是在我原来的函数课《零基础学透Excel函数,5分钟搞定1天工作量》基础上重新打造的,由原来的22节课增加到30节,并且提供每日答疑。
想系统学习Excel函数,提高办公效率的朋友,欢迎报名。
表格学院Excel函数公式训练营
即将上线(5月6日首期正式开营)
分类突破+专题提升+加餐录制常见棘手问题
21天,30节视频课+每日答疑
表格学院Excel函数公式训练营
即将上线(5月6日首期正式开营)
分类突破+专题提升+加餐录制常见棘手问题
21天,30节视频课+每日答疑