分類:查找和引用函數(shù)
這是最新的Excel函數(shù)。我們前面介紹過這一批函數(shù)的作用,功能非常強大?,F(xiàn)在,我們開始詳細介紹這些函數(shù)。
VSTACK函數(shù)的作用就是在垂直方向上合并多個區(qū)域(數(shù)組)。
語法如下:
VSTACK(數(shù)組1,[數(shù)組2],......)
VSTACK函數(shù)的功能類似于M語言(Power Query)中的Table.Combine函數(shù)和DAX語言中的UNION函數(shù)。使用非常簡單:
一般來說,使用VSTACK合并的數(shù)組應(yīng)該具有相同的列。但是,這并不是強制要求,兩個列數(shù)不同的數(shù)組也可以通過VSTACK合并:
當合并兩個列數(shù)不同的數(shù)值時,VSTACK函數(shù)返回的數(shù)據(jù)列數(shù)與列數(shù)組最多的數(shù)組相同,對于其中對應(yīng)于列數(shù)不足最大值的數(shù)組的部分,以#N/A代替。
可以使用IFNA函數(shù)來去掉#/N/A:
在這個場景中,我們需要將多個區(qū)域的數(shù)據(jù)合并在一起,然后去掉重復(fù)值。
公式如下:
=UNIQUE(VSTACK(B3:C6,E3:F7))
結(jié)果如下:
動態(tài)數(shù)組公式(如UNIQUE,F(xiàn)ILTER,SORT或其他可以返回數(shù)組的函數(shù))往往只成立數(shù)據(jù)區(qū)域,得到的結(jié)果是沒有標題行的:
可以通過VSTACK函數(shù)一起返回標題行:
這是一種很常見的場景。
我們的數(shù)據(jù)存放在多個工作表中,工作表以月份命名(或區(qū)域,部門,產(chǎn)品類別等):
在每個表中,我們的表格結(jié)構(gòu)相同,只是其中數(shù)據(jù)不一樣,數(shù)據(jù)的行數(shù)也不同。
現(xiàn)在我們需要將它們合并在一起。
可以使用公式:
=VSTACK('1月'!A2:C5,'2月'!A2:C6)
如果工作表比較多,可以輸入如下的公式:
=VSTACK('*月'!A2:C100)
這里用*代表所有的月份,區(qū)域?qū)慉2:C100(因為各表中行數(shù)不同,所以可以寫一個最大行數(shù))。
回車后,公式變成:
這時,我們看到,公式變成了合并所有表格中的A2:C100區(qū)域。結(jié)果中多了很多全是0的行,這些是我們不需要的,可以通過FILTER函數(shù)去掉:
=LET(arr,VSTACK('1月:2月'!A2:C6),FILTER(arr,INDEX(arr,0,2)>0))
這個公式中的FILTER函數(shù)的用法具體請參見:FILTER函數(shù)詳解。
如果希望跟標題一起返回,可以使用公式:
=LET(arr,VSTACK('1月:2月'!A2:C6),data,FILTER(arr,INDEX(arr,0,2)>0),VSTACK('1月'!A1:C1,data))
注:VSTACK函數(shù)目前只在Office 365中的Excel中Beta頻道中可以使用。
Excel+Power Query+Power Pivot+Power BI
自定義函數(shù) 底部菜單:知識庫->自定義函數(shù)
面授培訓(xùn) 底部菜單:培訓(xùn)學習->面授培訓(xùn)
也可以在歷史文章中學習Excel,Power Query,Power Pivot,Power BI,Power Automate各種技巧。
聯(lián)系客服