小伙伴們,早上好!新的一天又開始了,學(xué)習(xí)的腳步不能停。
今天向大家分享二維表格轉(zhuǎn)一維表的三種方法,分別用到函數(shù)、數(shù)據(jù)透視表和VBA代碼。三種方法各有利弊,表親可以自行選擇。
如下圖,A1:E5是數(shù)據(jù)源,A7:C22是最終要實(shí)現(xiàn)的結(jié)果樣式:
函數(shù)公式法
A7單元格輸入
B7單元格輸入
C7單元格輸入
公式向下復(fù)制,完成。
OFFSET函數(shù)通過調(diào)整行、列偏移量,改變起始單元格地址,返回現(xiàn)有結(jié)果。
以上均以A1為起始單元格。A列的列偏移量始終為0,行偏移量為1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4的數(shù)列,以取整函數(shù)INT和ROW函數(shù)嵌套生成。
B列的行偏移量始終為0,列偏移量為1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4的數(shù)列,以求余函數(shù)MOD和ROW函數(shù)嵌套生成。
C列行列偏移量為A、B兩列綜合。
透視表法
依次按下Alt、D、P,進(jìn)入多表透視向?qū)А?/p>
選擇【多重合并計算數(shù)據(jù)區(qū)域】、創(chuàng)建【數(shù)據(jù)透視表】
創(chuàng)建單頁字段。
選擇數(shù)據(jù)源所在區(qū)域并添加
將生成的數(shù)據(jù)透視表字段設(shè)置如下:
報表布局調(diào)整為【以表格形式顯示】、【重復(fù)所有項目標(biāo)簽】
取消分類匯總行和總計
在數(shù)據(jù)透視表選項中,去掉勾選顯示展開/折疊按鈕
VBA代碼法
按Alt+F11鍵,進(jìn)入VBE編輯窗口,輸入如下代碼:
Sub test()
Dim arr, i%, j%, n%
'聲明整形變量i,j,n和arr
arr = Range('a1:e5')
'將二維表區(qū)域裝入數(shù)組arr中
n = 1 '給i賦初始值1
For i = 2 To UBound(arr)
'雙重循環(huán)嵌套,先行后列,循環(huán)終值各為二維表行列數(shù)
For j = 2 To UBound(arr, 2)
Cells(n, 7) = arr(i, 1)
'將數(shù)組arr中i行1列數(shù)值(即車間信息)寫入G列
Cells(n, 8) = arr(1, j)
'將數(shù)組arr中1行j列數(shù)值(即部門信息)寫入H列
Cells(n, 9) = arr(i, j)
'將數(shù)組arr中i行j列數(shù)值寫入I列
n = n + 1
'每一次循環(huán)即對n加1,用以改變待寫入單元格行數(shù)
Next '結(jié)束列循環(huán)
Next '結(jié)束行循環(huán)
End Sub
按F5運(yùn)行該段代碼,查看結(jié)果:
有其他的奇思妙想也可以在下方留言哦,我們下次再見!
聯(lián)系客服