我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!
——首发于微信号:桃大喵学习记
今天跟大家分享的是Excel二维表格转一维表格公式,简单实用,遇到类似场景可以直接套用公式。
如下图所示,需要把左侧二维表格转换成右侧的一维表格。

下面直接上干货,在目标单元格中输入公式:
=HSTACK(TOCOL(IF(B2:F5<>"",A2:A5,NO),3),TOCOL(B2:F5,3),TOCOL(IF(B2:F5<>"",B1:F1,NO),3))
然后点击回车即可

解读:
这个公式主要用于将多列二维表格转换为一维表(类似数据库的“逆透视”或“从宽变长”),公式的核心结构是:用TOCOL提取三组数据,再用HSTACK将它们水平拼成三列。
①TOCOL(IF(B2:F5<>"", A2:A5, NO), 3)
首先判断B2:F5每个单元格是否非空,不为空就返回A2:A5数值,否则返回NO(表示跳过Excel中NO会返回#NAME? 错误,但在这里配合TOCOL的忽略选项会正确处理)。
最后使用TOCOL函数,忽略错误值,最终得到一个一列的数据,也就是商品名称。
②TOCOL(B2:F5,3)
提取B2:F5数据区域所有非空数值本身,忽略空单元格(3表示忽略错误,但这里是空值也会被TOCOL忽略)。
③TOCOL(IF(B2:F5<>"", B1:F1, NO), 3)
提取每个非空值对应的列标题(规格)。
同样用IF判断:若 B2:F5 非空,就取该列的标题(B1:F1),否则取 NO(错误值)。
TOCOL(...,3) 忽略错误,得到与列2长度相同的一列标题。
④HSTACK(数据列1, 数据列2, 数据列3)
将上述三列水平合并,得到一个3列的表格
亲爱的小伙伴们:
如果你正在为复杂繁琐的WPS表格/Excel操作困扰,希望通过掌握实用技能显著提升工作效率、减少无效加班——你可以考虑下我的WPS表格/Excel系列课程。
以上就是【桃大喵学习记】今天的干货分享~觉得内容对你有所帮助,别忘了动动手指点个赞哦~。大家有什么问题欢迎关注留言,期待与你的每一次互动,让我们共同成长!