-
1 # ExcelVBAHome
-
2 # 玩轉職場office
寫過多篇文章講多表彙總的問題,也涉及多表查詢的問題,現在全部貼上過來,針對你的情況選擇一種:
文章一:職場人士看過來,彙總各工作表資料不求人Excel版本:2013
在職場中,我們經常會碰到分專案儲存到各工作表中,但彙總各工作表資料時就比較麻煩,笨辦法就是在彙總表中一個個引用各專案的彙總資料,如果專案工作表多了,這麼操作還是費時費力的。其實我們用INDIRECT函式可以實現對各工作表資料的快速彙總。
具體看GIF演示
文章二:Excel多工作表彙總,這個功能讓你快速達成Excel多工作表如何彙總,這是職場中經常碰到的問題之一。有多種方法可以達到這個效果,今天給大家帶來一個簡單的操作——合併計算。
合併計算在哪?
在【資料】選項卡,【資料工具】功能區。
1、 標題一致的多表彙總
分表如下:
各工作表標題一致的情況下,首先將游標定位在彙總表格的左上角單元格,然後再進行操作。游標定位在“引用位置”的文字框中選擇各工作表的表格範圍,然後點選“新增”。“首行”或“首列”根據情況選擇,本例中即要首行的標題,也要首列的員工編號,所以都選擇。
最終完成效果如下:
2、標題不一致的多表彙總
如我們要將4個月的明細彙總到一個工作表中,各工作表除員工編號標題外,其它標題不同。
操作方法一致,最終效果如下:
文章三:用VLOOKUP函式從多個工作表查詢資料有群友在群裡問如何在多個工作表中查詢資料,當時我太忙,沒仔細考慮,只是建議用VLOOKUP+INDIRECT應該能解決。等忙完後自己仔細考慮了一下,這兩個函式結合其它函式是可以解決這個問題的,現在將我解決的思路寫出來供大家思考。
=VLOOKUP(A2,LOOKUP(1,0/COUNTIF(INDIRECT({"河北區";"北京區";"天津區"}&"!A:A"),A2),INDIRECT({"河北區";"北京區";"天津區"}&"!A:B")),2,0)
模擬了一些資料,查詢表中的姓名在三個工作表中的任意一個,需要得到每位員工對應的銷售額。
VLOOKUP函式的用法不再解釋,它由四個引數組成:
VLOOKUP(要查詢的資料,在哪個區域查詢,返回區域第幾列,精確匹配或模糊匹配)
這四個引數中,我們可以解決三個,公式是在查詢表的B2單元格中輸入的。
VLOOKUP(A2,在哪個區域查詢,2,0)
在哪個區域查詢,這個我們是不確定的,有可能是在“=河北區!A:B”,也有可能是在“=北京區!A:B”,還有可能是在“=天津區!A:B”。因為是在三個工作表中,我們不確定這名員工到底在哪個工作表。所以我們需要來確定他在哪個工作表中。
因為姓名都在各工作表中第一列,所以要查詢的姓名在三個區域中,分別為“=河北區!A:A”、 “=北京區!A:A”、 “=天津區!A:A”。
如果查詢員工有沒有在某一個工作表中,我們可以用COUNTIF來查詢,如果結果等於1,代表這個工作表中有這名員工,如果等於0則代表這個工作表中沒有這名員工。但現在我們需要在三個工作表中查詢,可以用INDIRECT函式來引用。
所以可以編輯公式:COUNTIF(INDIRECT({"河北區";"北京區";"天津區"}&"!A:A"),A2),它返回由1和0組成的陣列,如{1;0;0},這個結果代表員工在河北區。
我們知道1在什麼位置就是哪個工作表,但是EXCEL不知道,所以我們得讓它知道1所以位置對應的工作表。
此時我們用到LOOKUP(1,0/陣列或公式結果為陣列,返回結果的區域或陣列)這種經典的用法,公式如下:
LOOKUP(1,0/COUNTIF(INDIRECT({"河北區";"北京區";"天津區"}&"!A:A"),A2),INDIRECT({"河北區";"北京區";"天津區"}&"!A:B"))
這樣就能得到姓名所在的區域,例如 “河北區!A:B”。
這樣的話,就是VLOOKUP的基礎用法了:VLOOKUP(A2, 河北區!A:B,2,0)
我們要注意的是公式是陣列公式,要用CTRL+SHIFT+ENTER鍵結束輸入。
本例中公式可以作為多表查詢的一個通用公式,其實我們透過姓名來返回數值型資料,還可以用SUMIF+INDIRECT,本例還可以用陣列公式,公式不再解釋。
=SUM(SUMIF(INDIRECT({"河北區";"北京區";"天津區"}&"!A:A"),A2,INDIRECT({"河北區";"北京區";"天津區"}&"!B:B")))
文章四:學會Excel多表彙總,還能學會一個神奇的小技巧多表彙總一直是職場人士問的最多的EXCEL問題之一,我也向大家介紹過幾種多表彙總的方法,這幾天在操作多表彙總時碰到一個有意思的小技巧:編輯好公式後我們可以隨意指定彙總的工作表而不用重新編輯公式。
先來說一下這個多表彙總的方式,用SUM函式來求和,具體來看GIF:
這種彙總方法要求列各個工作表列標題是一致的,最左側的員工編號排序必須也是一致的才可以,各個分表的員工編號數量到是可有多有少。
下面神奇的小技巧來了
首先我們增加兩個工作表,表名分別為"開始"和"結束",分別放在各分表前面和後面,重新編輯前面演示的公式。
然後我們移動"開始"、"結束"兩個工作表的位置,我們會發現彙總的資料總是在兩個表中間的工作表,其它工作表是不參與計算的。
是不是一個神奇的小技巧?
-
3 # 蓉城斌哥
經常做資料處理的表哥、表姐們都身有體會,對資料彙總是很平常的事,那在EXCEL中怎麼樣進行分類彙總呢?在彙總之前要先對關鍵欄位進行一下排序,下面我們以一張工資表中的部門進行彙總來操作。
工具/原料EXCEL2013方法/步驟開啟一張工資表,選中工作表中的資料,標題就不要選了,在【資料】選項卡中的【排序】。
在排序對話方塊中設定【主要關鍵字】為【部門】,次序【升序】,升序是從小到大,降序是從大到小,漢字是以拼音的第一個字母排的,A---Z是升序,Z--A是降序。
排序完成後,就可以進行彙總了,【資料】-【分類彙總】。
在彈出的對話方塊中【分類欄位】選(部門),彙總方式這裡選擇求和,【彙總項】就可以根據自己的需要去選擇了。
確定之後各部門就彙總出來了。
回覆列表
這個問題可考慮下面三種情況
情況一:表格結構和彙總“商品名稱”順序都一致
解決方案:使用函式公式完成
具體方法,如下動圖演示:
重點:在“總銷售額”表單中的"B2"單元格中,輸入公式【=SUM(華北區:華南區!B2)】
情況二:表格結構一致,但彙總“商品名稱”順序不一致
解決方案:使用【合併計算】完成
具體方法,如下動圖演示:
情況三:表格結構和彙總關鍵字都不一致
需要合併的工作簿和儲存彙總資料的活動工作簿,二者需要在同一資料夾下
解決方案:使用VBA完成
具體方法,如下程式碼:
Sub CombineWbs()
Dim bt As Range, r As Long, c As Long
r = 1
c = 7
Dim wt As Worksheet
Set wt = ThisWorkbook.Worksheets(1)
wt.Rows(r + 1 & ":1048576").ClearContents
Application.ScreenUpdating = False
Dim FileName As String, sht As Worksheet, wb As Workbook, WbN As String
Dim Erow As Long, fn As String, arr As Variant, Num As Long
FileName = Dir(ThisWorkbook.Path & "*.xlsx")
Num = 0
Do While FileName <> ""
If FileName <> ThisWorkbook.Name Then
Erow = wt.Range("A1").CurrentRegion.Rows.Count + 1
fn = ThisWorkbook.Path & "" & FileName
Set wb = GetObject(fn)
Set sht = wb.Worksheets(1)
Num = Num + 1
arr = sht.Range(sht.Cells(r + 1, "A"), sht.Cells(1048576, "B").End(xlUp).Offset(0, 7))
wt.Cells(Erow, "A").Resize(UBound(arr, 1), UBound(arr, 2)) = arr
WbN = WbN & Chr(13) & wb.Name
wb.Close False
End If
FileName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "共合併了" & Num & "個工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"
End Sub