如何在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 中从多个工作表创建唯一值列表,以突出显示特定数据集。

更新于:2023年7月12日

826 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告