网站首页 > java教程 正文
1秒合并1000个表!Excel大神绝不外传的7个HSTACK神操作
一、动态合并多表
场景:将多个表中行数相同但列位置不同的表横向合并。
公式:
=LET(X,HSTACK(Sheet1:Sheet3!A1:T5),FILTER(X,INDEX(X,1,)<>""))
解析:
自动合并不同工作表的列,结合 FILTER 过滤空行。
二、跨表关联数据
场景:根据ID横向关联多个表的详细信息。
公式:
=HSTACK(XLOOKUP(E3:E5,C2:C6,B2:B6),XLOOKUP(E3:E5,B9:B13,D9:D13),XLOOKUP(E3:E5,C2:C6,A2:A6))
解析:
XLOOKUP在多个表格中查找返回部门等信息,再用HSTACK合并多个结果,从而得到一个动态数组区域。
三、条件分列显示
场景:根据状态将数据拆分到不同列。
公式:
=IFNA(HSTACK(FILTER(B2:B9,A2:A9="A"),FILTER(B2:B9,A2:A9="B")),"")
解析:
用 FILTER筛选出部门A、部门B名单,再用HSTACK横向拼接成动态数组,IFNA处理无数据时的错误显示为空白""。
四、智能填充空缺
场景:合并列数不同的表时,自动填充占位符或默认值。
公式:
=LET(x,HSTACK(B2:B6,C9:C13),IF(x="","无数据",x))
解析:
HSTACK合并B2:B6、C9:C13数据区域,原数据区域单元格为空白的情况下,合并后会自动填充为0,与原始数据中的0产生混淆,用指定值填充空白避免产生这种问题。
五、动态生成工资条
场景:为每个员工生成横向扩展的工资明细条。
公式:
=BYROW(HSTACK(A4:A7,B3&":"&B4:B7,C3&":"&C4:C7,D3&":"&D4:D7),LAMBDA(a,TEXTJOIN(" |",,a)))
解析:
每列工资数据与工资类别连接后,HSTACK将所有数据横向拼接,作为BYROW的数组区域,逐行合并分隔符,从而实现将多列工资数据合并为单列明细(如 WPS1 |工资1:11 |工资2:22 |工资3:33)的效果。
六、横向拼接多个函数
场景:根据部门分类汇总求和、计算平均、最大值、最小值等。
公式:
=GROUPBY(A1:A9,B1:B9,HSTACK(SUM,AVERAGE,MAX,MIN),1,0)
解析:
GROUPBY第三参数用HSTACK横向拼接多个函数,可同时汇总出多个值。
七、VLOOKUP多行多列查找
场景:根据多个部门名称查找多列数据。
公式:
=LET(a,{"B";"D";"E"},REDUCE(a,{2;4},LAMBDA(X,Y,HSTACK(X,VLOOKUP(a,A2:D7,Y,0)))))
解析:
公式核心在于VLOOKUP({"B";"D";"E"},A2:D7,2,0),返回查找区域的第二列数据,如果直接把公式改为VLOOKUP({"B";"D";"E"},A2:D7,{2,4},0),不能实现多行多列查找;
结合REDUCE传递参数{2;4}作为VLOOKUP的第三参数,这样通过逐列查找的方式,再用HSTACK函数横向将初始值查找对象{"B";"D";"E"}与每次查找的结果拼接起来,从而实现了VLOOKUP第1、3参数均为多个值的多行多列查找。
实现的效果等同于:
=CHOOSECOLS(CHOOSEROWS(A2:D7,XMATCH(F4:F6,A2:A7)),XMATCH(F3:H3,A1:D1))
立即参与:评论区说出你的独门秘籍,让10万打工人受益!
猜你喜欢
- 2025-05-11 Excel表格里按行提取重复的数据并合并到一个单元格内
- 2025-05-11 PMC生产计划群:2025年第15周训练题答案分享
- 2025-05-11 (每日持续更新)jdkapi之ByteArrayOutputStream基础应用实战
- 2025-05-11 如何将多行拼接成一行?#办公技巧
- 2025-05-11 打工人私藏的4个动态数组公式,工作效率飙升5.5%
- 2025-05-11 java字符串连接StringBuilder,StringBuffer和+拼接区别是什么
- 2025-05-11 多表格数据合并为1个表格,学会这个函数,1个公式便能完成
- 2025-05-11 一看就懂:Go语言实现合并排序算法,就这么简单
- 2025-05-11 PMC生产计划群:2025年第17周训练题答案分享
- 2025-05-11 10秒合并800个表,VSTACK就是这么厉害!
你 发表评论:
欢迎- 最近发表
-
- 五,网络安全IDA Pro反汇编工具初识及逆向工程解密实战
- 「JAVA8」- Lambda 表达式(java lambda表达式原理)
- 深入探讨Java代码保护:虚拟机保护技术的新时代
- Nginx反向代理原理详解(图文全面总结)
- 逆向拆解日本IT,哪些Java技术栈薪资溢价高
- mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比
- Spring Boot集成ProGuard轻松实现Java 代码混淆, Java 应用固若金汤
- 从 Java 代码逆向工程生成 UML 类图和序列图
- 人与人相处:尊重是标配,靠谱是高配,厚道是顶配
- Windows系统安装日期如何修改(windows10怎么修改安装日期)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)