新函数VSTACK和HSTACK用法
作者:小窝来源:部落窝教育发布时间:2023-11-24 15:47:37点击:1202
新函数分享第二篇。跨多表汇总求和或者跨多表查找,在过往的时候大多公式复杂,要用到INDIRECT函数跨表引用。现在不需要了,直接用VSTACK和HSTACK将多表合并成一表即可求和或者查找。
1.VSTACK
1)作用与语法
在垂直方向上把各数组逐行合并成一个数组。
=VSTACK(数组1,[数组2],...)
逐行合并得到的新数组的行数等于所有数组的行之和,列数等于所有数组中的最大列数。
2)基本用法
(1)添加行列相等的数组
合并下方3个数组。
=VSTACK(A2:B4,D2:E4,G2:H4)
(2)合并行数不等列数相等的数组
=VSTACK(A18:B20,D18:E19,G18:H18)
(3)合并列数不等的数组
列数不等的数组的合并,缺少部位会出用#N/A错误值填充。
=VSTACK(A31:B33,D31:D32,G31:H31)
这时可以套用IFNA或者IFERROR消除错误值。
2.HSTACK
1)作用与语法
在水平方向上把各个数组逐列合并成一个数组。
=HSTACK(数组1,[数组2],...)
逐列合并得到的新数组的列数等于所有数组的行之和,行数等于所有数组中的最大行数。
2)基本用法
(1)合并行列数相等的数组
=HSTACK(A2:B4,D2:E4,G2:H4)
(2)合并列数不等行数相等的数组
列数不等不影响合并。如果数组中存在空值,合并后会用0填充。
=HSTACK(A12:B14,D12:E14,G12:G14)
(3)合并行数不相等的数组
合并行数不相等的数组,缺少部位会用#N/A错误值填充。
3.典型应用
1)跨多表按条件汇总求和
如求销售、行政、后勤、生产等多个工作表中A产品的用量。
如果用老函数,公式很长:
=SUM(SUMIF(INDIRECT({"销售","后勤","生产","质检","行政"}&"!A2:A6"),"a",INDIRECT({"销售","后勤","生产","质检","行政"}&"!B2:B6")))
现在用VSTACK,公式简练多了:
=SUM((VSTACK(销售:行政!$A$2:$A$6)="a")*VSTACK(销售:行政!B2:B6))
2)跨多表多对多查找
小窝曾分享过《跨多表多对多查找最强组合》,里面用的就是VSTACK与FILTER搭配。
=FILTER(VSTACK('1月:4月'!A2:E100),(VSTACK('1月:4月'!B2:B100)=H2)*(VSTACK('1月:4月'!C2:C100)=I2))
3)跨多表一对多查找并排序
譬如将5张表中B产品信息汇总并按金额升序排列。
公式=SORT(FILTER(VSTACK(销售:行政!A10:D24),VSTACK(销售:行政!B10:B24)="B"),4,1)
亲们分享、点赞走起!!!
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
版权申明:
本文作者小窝;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。