利用這兩個(gè)函數(shù)可以解決多表合并的問(wèn)題。
這也是兩個(gè)期盼已久的函數(shù)了。
之前,經(jīng)常有人問(wèn)起這個(gè)問(wèn)題:
怎么用公式將幾個(gè)區(qū)域或者動(dòng)態(tài)數(shù)組合并為一個(gè)數(shù)組?
這其實(shí)是一個(gè)非常有用的功能??上В癊xcel并不能很容易就做到這一點(diǎn)。所以,我就做了一個(gè)自定義函數(shù):
=IF(
SEQUENCE(ROWS(FA)+ROWS(FB))<=ROWS(FA),
INDEX(FA,SEQUENCE(ROWS(FA)+ROWS(FB)),SEQUENCE(1,COLUMNS(FA))),
INDEX(FB,SEQUENCE(ROWS(FA)+ROWS(FB))-ROWS(FA),SEQUENCE(1,COLUMNS(FA))))
具體這個(gè)公式的解釋請(qǐng)參見(jiàn)這里。
悲劇的是,就在我寫(xiě)了這個(gè)公式的1天后,微軟公布了14個(gè)新函數(shù),其中就有VSTACK函數(shù)和HSTACK函數(shù)。
這兩個(gè)函數(shù)太方便了!
可以這樣合并:
公式很簡(jiǎn)單:
=HSTACK(B2:C4,B8:C10)
也可以這樣合并:
使用這樣的公式:
=VSTACK(B2:C4,B8:C10)
行列數(shù)不一致也不可怕:
加上IFNA函數(shù)就可以了:
=IFNA(HSTACK(B2:C4,B8:C9),"")
這兩個(gè)公式最典型的應(yīng)用就是多表合并了。
假設(shè)我們有如下數(shù)據(jù):
假設(shè)數(shù)據(jù)存放在多個(gè)表上(1月,2月,3月,......),并且各表中的數(shù)據(jù)結(jié)構(gòu)基本一致。我們可以使用VSTACK函數(shù)合并成一個(gè)表格:
這里的公式是這樣的:
=FILTER(VSTACK('1月:3
月'!B3:C5),VSTACK('1月:3月'!B3:B5)<>"")
其中,第一個(gè)VSTACK公式:
VSTACK('1月:3月'!B3:C5)
是用來(lái)合并所有Sheet中的數(shù)據(jù)的,在每個(gè)Sheet中,數(shù)據(jù)都是存放在B3:C5中的,注意這是最大區(qū)域,即每個(gè)Sheet中數(shù)據(jù)區(qū)域最大不超過(guò)C5單元格。
'1月:3月'表示在在工作表1月和工作表3月之間的所有工作表。
這個(gè)公式是合并了所有工作表中的B3:C5區(qū)域,如果有某些工作表中數(shù)據(jù)不到C5,那么就會(huì)包含很多空行。
再使用FILTER函數(shù)去掉空行,條件就是:
VSTACK('1月:3月'!B3:B5)<>""
合并后B列不為空的那些記錄。
更詳細(xì)解釋請(qǐng)看視頻:
這里介紹的是VSTACK和HSTACK函數(shù)使用技巧,節(jié)選自新課程:
《Office 365中的自定義函數(shù)》
這門(mén)課程中詳細(xì)介紹了Office 365中自定義函數(shù)的方法和技巧。課程重點(diǎn)介紹LAMBDA函數(shù)及其伴侶函數(shù)的使用,使你的數(shù)據(jù)處理能力更上一層樓。
聯(lián)系客服