如何在Excel中從多個工作表建立唯一值列表
如果您使用包含許多頁面的大型 Excel 工作簿處理資料,您經常會發現自己需要組合和分析來自其他工作表的資料。一個常見的任務是從多個工作表中刪除任何重複值並生成唯一值的列表。本文將為您提供分步說明和實用技巧,幫助您組合資料並從多個工作表中提取唯一值,無論您對 Excel 的熟悉程度如何。在結束時,您將掌握完成此任務所需的技能和資源,從而節省時間和精力,同時完成您的資料分析任務。所以讓我們開始吧,釋放 Excel 的潛力,從多個工作表生成完整的唯一值列表!
從多個工作表建立唯一值列表
這裡我們將首先建立一個 VBA 模組,然後執行它來完成任務。讓我們來看一個簡單的過程,學習如何在 Excel 中從多個工作表建立唯一值列表。
步驟 1
考慮任何 Excel 工作簿,其中您在多個工作表的 A 列中都有資料。
首先,右鍵單擊工作表名稱,然後選擇“檢視程式碼”以開啟 VBA 應用程式。
步驟 2
然後單擊“插入”,選擇“模組”,然後將下面的程式碼複製到文字框中。
插入 > 模組 > 複製。
示例
Sub SheelsUniqueValues() Dim xObjNewWS As Worksheet Dim xObjWS As Worksheet Dim xStrAddress As String Dim xIntRox As Long Dim xIntN As Long Dim xFNum As Integer Dim xMaxC, xColumn As Integer Dim xR As Range xStrName = "Unique value" Application.ScreenUpdating = False xMaxC = 0 Application.DisplayAlerts = False For Each xObjWS In Sheets If xObjWS.Name = xStrName Then xObjWS.Delete Exit For End If Next Application.DisplayAlerts = True For xFNum = 1 To Sheets.Count xColumn = Sheets(xFNum).Cells.Find(What:="*", after:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column If xMaxC < xColumn Then xMaxC = xColumn End If Next xFNum Application.DisplayAlerts = True Set xObjNewWS = Sheets.Add(after:=Sheets(Sheets.Count)) xObjNewWS.Name = xStrName For xColumn = 1 To xMaxC xIntN = 1 For xFNum = 1 To Sheets.Count - 1 Set xR = Sheets(xFNum).Columns(xColumn) If TypeName(Sheets(xFNum).Columns(xColumn).Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious)) <> "Nothing" Then xIntRox = xR.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row Sheets(xFNum).Range(Cells(1, xColumn).Address & ":" & Cells(xIntRox, xColumn).Address).Copy Cells(xIntN, xColumn).PasteSpecial xlValues xIntN = xIntRox + xIntN + 1 End If Next xFNum If xIntRox - 1 > 0 Then xIntRox = xIntN - 1 xStrAddress = Cells(1, xColumn).Address & ":" & Cells(xIntRox, xColumn).Address Range(xStrAddress).AdvancedFilter Action:=xlFilterInPlace, Unique:=True Range(xStrAddress).Copy Cells(1, xColumn + 1).PasteSpecial xlValues Range(xStrAddress).AdvancedFilter Action:=xlFilterInPlace, Unique:=False Columns(xColumn).Delete Range(xStrAddress).Sort key1:=Cells(1, xColumn), Header:=xlNo End If Next xColumn Application.CutCopyMode = False Application.ScreenUpdating = True End Sub
步驟 3
然後單擊 F5 完成任務。然後您將看到 A 列中的所有唯一值都將列出。
結論
在本教程中,我們使用了一個簡單的示例來演示如何在 Excel 中從多個工作表建立唯一值列表,以突出顯示特定資料集。
廣告