打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VSTACK函数

分类:查找和引用函数

这是最新的Excel函数。我们前面介绍过这一批函数的作用,功能非常强大。现在,我们开始详细介绍这些函数。

VSTACK

VSTACK函数的作用就是在垂直方向上合并多个区域(数组)。

语法如下:

VSTACK(数组1,[数组2],......)

VSTACK函数的功能类似于M语言(Power Query)中的Table.Combine函数和DAX语言中的UNION函数。使用非常简单:

一般来说,使用VSTACK合并的数组应该具有相同的列。但是,这并不是强制要求,两个列数不同的数组也可以通过VSTACK合并:

当合并两个列数不同的数值时,VSTACK函数返回的数据列数与列数组最多的数组相同,对于其中对应于列数不足最大值的数组的部分,以#N/A代替。

如何去掉#N/A

可以使用IFNA函数来去掉#/N/A:

VSTACK函数应用场景:多区域合并去重复值

在这个场景中,我们需要将多个区域的数据合并在一起,然后去掉重复值。

公式如下:

=UNIQUE(VSTACK(B3:C6,E3:F7))

结果如下:

VSTACK函数应用场景:动态数组返回标题行

动态数组公式(如UNIQUE,FILTER,SORT或其他可以返回数组的函数)往往只成立数据区域,得到的结果是没有标题行的:

可以通过VSTACK函数一起返回标题行:

VSTACK函数应用场景:多工作表合并

这是一种很常见的场景。

我们的数据存放在多个工作表中,工作表以月份命名(或区域,部门,产品类别等):

在每个表中,我们的表格结构相同,只是其中数据不一样,数据的行数也不同。

现在我们需要将它们合并在一起。

可以使用公式:

=VSTACK('1月'!A2:C5,'2月'!A2:C6)

如果工作表比较多,可以输入如下的公式:

=VSTACK('*月'!A2:C100)

这里用*代表所有的月份,区域写A2:C100(因为各表中行数不同,所以可以写一个最大行数)。

回车后,公式变成:

这时,我们看到,公式变成了合并所有表格中的A2:C100区域。结果中多了很多全是0的行,这些是我们不需要的,可以通过FILTER函数去掉:

=LET(arr,VSTACK('1月:2月'!A2:C6),FILTER(arr,INDEX(arr,0,2)>0))

这个公式中的FILTER函数的用法具体请参见:FILTER函数详解

如果希望跟标题一起返回,可以使用公式:

=LET(arr,VSTACK('1月:2月'!A2:C6),data,FILTER(arr,INDEX(arr,0,2)>0),VSTACK('1月'!A1:C1,data))

注:VSTACK函数目前只在Office 365中的Excel中Beta频道中可以使用。

Excel+Power Query+Power Pivot+Power BI


Power Excel 知识库    按照以下方式进入知识库学习
Excel函数   底部菜单:知识库->Excel函数

自定义函数  底部菜单:知识库->自定义函数

Excel如何做  底部菜单:知识库->Excel如何做

面授培训  底部菜单:培训学习->面授培训

也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
青龙面板拉取常用脚本(JD签到)目前在维护的脚本更新(2021
利用VBA代码快速合并多个工作簿到一个工作簿
Zlibrary | 全球最大电子书资源网站最新网址 新手使用指南
手机怎么定位对方的手机所在位置?学会这个小窍门,定位再也不用愁
二十四山立向线法大全
潘长宏制作的四款GIF翻页图片
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服