=VSTACK(A!A1:D3,B!A1:D3)
一个VSTACK函数,也就是上下追加到一起,平时大家说的合并哈!但是你可能也发现了一些问题,这也不方便呀,第一、标题重复没处理,第二、每个表的数据区域不同,更新还要重新选择吗?不智能呀,没啥用!不要急,下面我们就来解决这两个难题,让其可以实战落地,真的可以用起来!只要保留第一个标题,其他的第一行去掉即可!后面还可以优化,比如先全部合并,然后筛选非标题行内容都是可以的!我们可以预留足够大的区域,比如 A.:.ZZ,这种写法就是最新的区域自动裁剪的语法糖,虽然我们选择A到ZZ列整列,但是最后会根据内容的列数和行数自动裁剪,大家可以参考一下结果!我们在产品中新增了一条今天的数据,汇总表也会自动更新进来!上面两个问题基本就解决了,但是目前只是固定的两个表,要是换成A、C产品合并怎么办?总不能每次手动修改吧,不实用!我们想要方便,可以设置一列放置要合并的工作表名称,然后公式遍历这个区域,实现动态合并!我们把要合并的工作表名称放在F列,按需配置,然后使用REDUCE循环每一个工作表进行VSTACK追加处理,具体公式如下!=DROP(
REDUCE("",F2:.F99,LAMBDA(x,y,
VSTACK(x,DROP(TRIMRANGE(INDIRECT(y&"!A:ZZ")),ROWS(x)<>1)))
),1
)
公式使用说明:
1、F2:.F99 需要合并的工作表名称存放的区域,按需修改为自己的区域,.(点)语法糖会自动裁剪区域,不用担心配置区域过大问题,不会卡
2、y&"!A:ZZ" 其中的A:ZZ是需要合并工作表的预留区域范围,如果你的区域更好,可以修改ZZ为更好的列号,TRIMRANGE函数会自动裁剪,不用怕预留太大卡的问题!
3、ROWS(x)<>1 这里是用来判断是否要删除标题行,本质是判断是否是首次,首次x只有一个空值,一行,DROP函数根据结果决定删除一行或者不删除!
如果你的标题是多行,你N*(ROWS(x)<>1),或者更直观的写也可以!
工作表名称特别多,一个一个写特别麻烦怎么办?其实非常简单用AI帮你简单写个VBA即可,还是不会的,也可以等我明天分享,记得关注我!不要错过每天的实战项目!