Excel中批量将多行多列按组垂直堆叠,求简洁非VBA公式
优化多行数据分组堆叠的Excel荷兰语公式方案
你可以使用动态数组公式一次性处理多行数据,避免重复编写每行的逻辑,大幅简化公式长度。以下是针对你的需求优化后的荷兰语Excel公式:
=LET( 标识列; $B$4:$B$10; // 替换为你的实际多行标识列范围 数据区域; $C$4:$K$10; // 替换为你的实际多行数据区域 行数; RIJEN(标识列); 重复标识; TOKOLOM(HERHALEN(标识列; 3); 1); 组1; INDEX(数据区域; VOLGORDE(RIJEN(数据区域)); {1\2\3}); 组2; INDEX(数据区域; VOLGORDE(RIJEN(数据区域)); {4\5\6}); 组3; INDEX(数据区域; VOLGORDE(RIJEN(数据区域)); {7\8\9}); 堆叠数据; VERT.STAPELEN(组1; 组2; 组3); 结果; HOR.STAPELEN(重复标识; 堆叠数据); ALS(结果=0; ""; 结果) )
公式说明:
- 标识列:指定包含所有行标识的单元格范围(示例为
$B$4:$B$10) - 数据区域:指定所有行的9列数据范围(对应每组3列,共3组)
- 重复标识:通过
HERHALEN让每个标识重复3次,再用TOKOLOM转换为单列,确保和后续堆叠的数据行数匹配 - 组1/组2/组3:使用
INDEX分别提取数据区域中的每组3列数据 - 堆叠数据:用
VERT.STAPELEN将三组数据垂直堆叠 - 结果:用
HOR.STAPELEN将重复的标识列与堆叠后的数据横向组合 - 最后通过
ALS将结果中的0值转换为空单元格
使用方法:
- 将公式中的
$B$4:$B$10和$C$4:$K$10替换为你实际的数据范围 - 输入公式后直接按回车(Excel 365/2021支持动态数组,无需按Ctrl+Shift+Enter)
这个公式可以一次性处理任意行数的数据,不需要针对每行重复编写逻辑,解决了原公式冗长的问题。
内容的提问来源于stack exchange,提问作者Lars Nijkamp
相关产品推荐
相关产品推荐

