hello大家好,我是小E,日常工作中,我们喜欢用二维表展示数据,清楚明了,如下图左边所示,但从数据处理分析的角度考虑,二维表没有一位表方便。
有些情况下,需要将二维表转换成一位表,今天我们介绍四种方法实现二维表的转换,不管你的Excel是哪一版本,总有一种方法适合你哦。
方法一 公式法
G2单元格内输入公式:
=INDEX(A:A,(ROW(A1)-1)/4+2)
H2单元格内输入公式:
=INDEX(B$1:E$1,MOD(ROW(A1)-1,4)+1)
I2单元格内输入公式:
=OFFSET($A$1,(ROW()-2)/4+1,MOD(ROW()-2,4)+1)
公式下拉,搞定~
方法二 数据透视表
依次点击Alt、D、P三键(注意是依次点击,不是一起按),调出数据透视表和数据透视图向导;
接着勾选“多重合并计算数据区域”—“下一步”—“下一步”,选定区域框选二维表区域,最后点击“下一步”—“确定”。
在建立的透视表界面中,将字段“列”拖动到行区域,之后点击【设计】,报表布局中依次点击”以表格形式显示“、”重复所有项目标签“;总计中点击”对行和列禁用“;分类汇总中点击”不显示分类汇总“,二维表转换完成~
方法三 Power Query
依次点击【数据】,【来自表格/区域】,点击确定按钮,进入Power Query编辑界面。
接着选中首列,依次点击【转换】,下拉”逆透视列“,选择”逆透视其它列“,可以发现二维表已经被转换成了一维表,关闭并上载即可,搞定~
注意:此方法的前提是Excel版本的是2016版本或者2019版本,不然得下载Power Query插件才可使用。
方法四 VBA
Alt+F11,调出Visual Basic界面,输入以下代码。
运行代码,二维表转换完成~
完整代码如下所示:
Sub 转换()Dim i%, j%, a%, arrarr = Range(“a1:e6”)Cells(1, 7) = “部门”Cells(1, 8) = “年份”Cells(1, 9) = “销售额”a = 2For i = 2 To UBound(arr)For j = 2 To UBound(arr, 2)Cells(a, 7) = arr(i, 1)Cells(a, 8) = arr(1, j)Cells(a, 9) = arr(i, j)a = a + 1NextNextEnd Sub
小结
综合来看,四种方法中,Power Query是最简单的,VBA十分快捷,公式法和透视表法各有所长。
那么问题来了,如何将一维表转换二维表