一行轻松变多行! 一文看懂excel中WRAPCOLS和WRAPROWS函数
脚本之家
函数WRAPROWS:将一行或一列数据打包为多行多列的数据区域,第二参数指定列数,行数自动计算。
1.、WRAPROWS函数
1) 作用与语法
将单行或单列数据均分成N列逐行排列。
=WRAPROWS(单行或单列数组,列数,[填充值])
第一参数必须是单行或者单列,否则出返回#VALUE错误。
第三参数,填充值,可选。如果不设置第三参数,按指定列数均分排列时,最后一行空缺部分默认用#N/A填充;如果设置第三参数,则最后一行空缺用第三参数填充。
2)基本用法
(1)不设置第三参数
将下方单行数据均分排成3列,最后一行缺少数据的地方用#N/A填充。
=WRAPROWS(A2:J2,3)
将单列数据排成3列,效果与上一致。
(2)设置第三参数
将下方单行数据均分排成3列,最后一行缺少数据的地方用“缺少”两字填充。
=WRAPROWS(A29:J29,3,"缺少")
2. WRAPCOLS函数
1) 作用与语法
将单行或单列数据均分成N行逐列排列。
=WRAPCOLS(单行或单列数组,行数,[填充值])
参数用法同WRAPROWS。
2)基本用法
(1)不设置第三参数
将下方单行数据均分排成3行,最后一列缺少数据的地方用#N/A填充。
=WRAPCOLS(A42:J42,3)
(2)设置第三参数
将下方单行数据均分排成3行,最后一行缺少数据的地方填充为空值。
=WRAPCOLS(A50:J50,3,"")
3. 典型应用
1)根据打印需要重排数据
假设下方横排表打印超出页宽,那就可以改成两列或四列、六列排列。
如下,将多列成绩单排成两列或者四列。
=VSTACK(A2:B2,WRAPROWS(TOCOL(A3:L4),2))
=VSTACK(A2:B2,WRAPROWS(TOCOL(A3:L4),4))
也能逆向处理,把竖排表变成横排表,如将两列的表排成12列。
=VSTACK(TOROW(IF(M1:M6="",A7:B7)),WRAPROWS(TOROW(A8:B19),12))
说明:
- TOROW(IF(M1:M6="",A7:B7)),将标题“姓名、成绩”重复6次排成12列。
- WRAPROWS(TOROW(A8:B19),12),将数据变成单行后重排成12列。
2)一维表转二维表
以往我们用数据透视表将一维表转二维表,现在用函数也方便。
先看分步过程。
第一步,生成标题,公式=HSTACK(A27,TOROW(UNIQUE(B28:B42)))
第二步,生成人员,公式=UNIQUE(A28:A42)
第三步,分布成绩,公式=WRAPROWS(C28:C42,3)
把上面三步组合起来的话:
=VSTACK(HSTACK(A27,TOROW(UNIQUE(B28:B42))),HSTACK(UNIQUE(A28:A42),WRAPROWS(C28:C42,3)))
Ok,新函数WRAPROWS和WRAPCOLS就介绍这么多。