地 球 不 爆 炸 我 們 不 打 烊
· START ·
>>>上課啦:實際工作中,無論是銷售、生產(chǎn)或者財務(wù)等部門,都會面對Excel多工作表合并問題。如果是日報表或者是月報表,每天每月都要重復(fù)這些工作。本期小課堂我們分享借助動態(tài)數(shù)組VSTACK函數(shù)實現(xiàn)Excel多工作表合并
▼本期案例截圖
拋磚引玉:距離2024年除夕不到30天時間,為了在年前完成財務(wù)數(shù)據(jù)分析,小李從系統(tǒng)導(dǎo)出2023年01-12月報銷明細表數(shù)據(jù)進行匯總整合。如上圖所示
小試牛刀:我們在往期小課堂中分享了借助VBA、POWERQUERY和SQL等方法實現(xiàn)Excel多工作表合并。但是,操作起來都相對復(fù)雜!比如,代碼不明白的VBA方法、操作步驟多的POWERQUERY方法和原理不理解SQL方法等
下面,我們將借助“簡單粗暴”的動態(tài)數(shù)組方法
因為
12張報銷明細表內(nèi)的數(shù)據(jù)量有多有少,無法確定。比如:01月的數(shù)據(jù)量28條,02月的數(shù)據(jù)量30條,03月的數(shù)據(jù)量47條,04月的數(shù)據(jù)量38條,05月的數(shù)據(jù)量59條,06月的數(shù)據(jù)量65條,07月的數(shù)據(jù)量29條,08月的數(shù)據(jù)量22條,09月的數(shù)據(jù)量37條,10月的數(shù)據(jù)量44條,11月的數(shù)據(jù)量28條,12月的數(shù)據(jù)量45條
所以
為了保證報銷明細表內(nèi)的數(shù)據(jù)全部被合并,設(shè)定A2:F99單元格區(qū)域為合并區(qū)域(足夠覆蓋每張報銷明細表內(nèi)的數(shù)據(jù))
解答
在“合并”表內(nèi)的A2單元格編輯函數(shù)公式=VSTACK('01月:12月'!A2:F99),或者編輯函數(shù)公式=VSTACK('*'!A2:F99)。如下圖所示
▼操作示意圖
因為
VSTACK函數(shù)會按照12張報銷明細表內(nèi)包含空行的最大數(shù)據(jù)區(qū)域A2:F99進行合并
所以
“合并”表內(nèi)存在很多0值數(shù)據(jù)區(qū)域。如上圖所示
解答
為了規(guī)避“合并”表內(nèi)的0值數(shù)據(jù)區(qū)域,需借助FILTER函數(shù)。在“合并”表內(nèi)的A2單元格重新編輯函數(shù)公式=FILTER(VSTACK('01月:12月'!A2:F99),VSTACK('01月:12月'!A2:A99)<>""),或者重新編輯函數(shù)公式=FILTER(VSTACK('*'!A2:F99),VSTACK('*'!A2:A99)<>"")
☆☆注:
有關(guān)FILTER函數(shù)的知識點,我們在<第106期小課堂:
FILTER函數(shù)小課堂>中分享過,此處不再贅述!
若
如果合并12張報銷明細表內(nèi)科目名稱為“差旅費”的數(shù)據(jù)
則
在“合并”表內(nèi)的A2單元格編輯函數(shù)公式=FILTER(VSTACK('01月:12月'!A2:F99),(VSTACK('01月:12月'!A2:A99)<>"")*(VSTACK('01月:12月'!E2:E99)="差旅費")),或者編輯函數(shù)公式=FILTER(VSTACK('*'!A2:F99),(VSTACK('*'!A2:A99)<>"")*(VSTACK('*'!E2:E99)="差旅費"))
庖丁解牛:下面,我們解析函數(shù)公式=VSTACK('01月:12月'!A2:F99)和=VSTACK('*'!A2:F99)之間的區(qū)別
☆☆ =VSTACK('01月:12月'!A2:F99)所對應(yīng)的Excel多工作表合并動態(tài)數(shù)組模板公式為=VSTACK('開始工作表:結(jié)束工作表'!合并區(qū)域),適用于“合并”表在首尾兩端位置的情形。如下圖所示
▼示意圖
☆☆ =VSTACK('*'!A2:F99)所對應(yīng)的Excel多工作表合并動態(tài)數(shù)組模板公式為=VSTACK('*'!合并區(qū)域),適用于“合并”表在任意位置的情形。如下圖所示
▼示意圖
娓娓道來:下面,我們以“合并”表在“08月”表之后“09月”表之前為例
在“合并”表內(nèi)的A2單元格編輯函數(shù)公式=VSTACK('*'!A2:F99),回車后,發(fā)現(xiàn)函數(shù)公式自動轉(zhuǎn)換為=VSTACK('01月:08月'!A2:F99,'09月:12月'!A2:F99)。如下圖所示
▼操作示意圖
下課啦>>>:目前,用通配符“*”代表多個工作表對應(yīng)的數(shù)據(jù)區(qū)域,借助動態(tài)數(shù)組VSTACK函數(shù)實現(xiàn)Excel多工作表合并方法,即:=VSTACK('*'!合并區(qū)域)在國產(chǎn)WPS表格軟件中會提示報錯!?。∪缦聢D所示
▼WPS報錯提示框