excel只用Vlookup查找太笨了 Vlookup函数隔列求和才是yyds

Vlookup曾是表格中最常用查找函数,但随着新版本增加了xlookup、Filter等函数,可以轻松实现多条件、反向、倒查等,难道Vlookup就没用了吗?NO! 它还有一个绝招:隔列取数。

微软Office LTSC 2021专业增强版 简体中文批量许可版 2024年09月更新

  • 类型:办公软件
  • 大小:2.2GB
  • 语言:简体中文
  • 时间:2024-09-12

查看详情

案例一:

Vlookup有4个参数,其中第3个参数是返回值所在的列数。正常情况下只需要返回一个值,所以常用一个整数。

=VLOOKUP(G2,B:E,4,0)

很多人不知道的是,如果第3个参数是一个组数,就可以返回多列值。

=VLOOKUP(A11,A1:E7,{2,3,5},0)

注: 非WPS和Office365版本需要按三键(ctrl shift enter) 输入公式

利用这个特点可以解决工作中常见的隔列取值问题。比如最常遇到的查找后的隔列求和

【例】如下图所示,要求根据下表的姓名,从上表中查找并隔列对实际、计划求和。

分析:估计很多同学首先想到Sumif函数,但这是一个多列求和而且要先分产品。如果非要用它,公式为:

=SUMIF(B2:Y2,B2,OFFSET(B2:Y2,MATCH(A14,A3:A10,0),0))

或:

=SUM(SUMIF(A:A,AA2,OFFSET(A:A,,ROW(1:12)*2-1)))

用Sumproduct函数公式会简单些,但数据量大了会很卡。

=SUMPRODUCT((A3:A10=A14)*(B2:Y2=B13)*B3:Y10)

其他函数都不理想,换作Vlookup怎么样?嘿嘿,很简单!

=SUM(VLOOKUP(A14,A:Y,ROW($1:$12)*2,0))

用Vlookup查找并隔列取值,用Sum求和就可以了,其中row(1:12)生成1,2,3,4….12序号*2就变成了2,4,6…24用来取实际列的数字。

其实很多函数的参数都可以把一个数换成一组数,用来批量运算。

别怕,IF函数其实很简单字符拆分的模式化公式,你最喜欢哪一种?

案例二:

如下图所示,需要从上表中提取1~12月的实际数放在下表格

分析:

Vlookup4个参数,其中第3个是提取的列数,比如3就可以提取上表中第3列的值。

=VLOOKUP(A13,A:Y,3,0)

其实3可以换成一组数,提取多列,比如

=VLOOKUP(A13,A:Y,{3,5,7},0)

注:非wps和office365版本没溢出功能,所以需要选取多列(几个数选几列)按Ctrl + shift+Enter输入。

但如果有很多列,一个个输入数字觉得麻烦,可以用Column函数生成

=COLUMN(A:L)*2+1

最终公式:

=VLOOKUP(A13,A:Y,COLUMN(A:L)*2+1,0)

如果外套 sum就可以求和了。

=SUM(VLOOKUP(A13,A:Y,COLUMN(A:L)*2+1,0))

很多excel函数的参数都可以使用数组,如sumifs、mid,实现高级用法。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平