You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用命名范围MySheets提取目标工作表A列的唯一值?

提取指定工作表A列唯一值的解决方案

针对你提到的已在Working工作表的AD3:AD25区域创建工作表名称列表,并通过名称管理器定义了命名范围MySheets,需要从这些工作表的A2到A列最后一行提取唯一值的需求,我整理了两种实用方案:

方案1:Excel 365/2021 动态数组公式

适合支持动态数组的Excel版本,直接输入公式即可自动溢出结果:

=UNIQUE(TOCOL(IFERROR(INDIRECT("'"&MySheets&"'!A2:INDEX('"&MySheets&"'!A:A,COUNTA('"&MySheets&"'!A:A))"),""),3))

公式说明:

  • INDIRECT("'"&MySheets&"'!A2:INDEX('"&MySheets&"'!A:A,COUNTA('"&MySheets&"'!A:A))"):动态引用每个目标工作表中A2到最后一行有数据的区域
  • IFERROR:处理空表或无效工作表名称导致的错误
  • TOCOL:将多个工作表的多维数据区域转换为单列
  • UNIQUE:最终提取所有唯一值

方案2:VBA宏(兼容旧版Excel)

如果你的Excel不支持动态数组,可以用VBA宏实现:

Sub ExtractUniqueValuesFromSheets()
    Dim ws As Worksheet
    Dim targetWs As Worksheet
    Dim sheetName As Variant
    Dim lastRow As Long
    Dim cell As Range
    Dim uniqueColl As New Collection
    
    ' 设定结果输出的目标工作表(这里用Working,可按需修改)
    Set targetWs = ThisWorkbook.Worksheets("Working")
    
    On Error Resume Next
    ' 遍历MySheets命名范围中的每个工作表名称
    For Each sheetName In ThisWorkbook.Names("MySheets").RefersToRange.Value
        If sheetName <> "" Then
            Set ws = ThisWorkbook.Worksheets(sheetName)
            ' 获取当前工作表A列最后一行的行号
            lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
            ' 遍历A2到最后一行的所有非空单元格
            For Each cell In ws.Range("A2:A" & lastRow)
                If cell.Value <> "" Then
                    ' 利用集合的Key唯一性自动去重
                    uniqueColl.Add cell.Value, Key:=CStr(cell.Value)
                End If
            Next cell
        End If
    Next sheetName
    On Error GoTo 0
    
    ' 将去重后的值输出到目标工作表的B列(从B2开始,可修改)
    Dim i As Integer
    i = 2
    For Each item In uniqueColl
        targetWs.Cells(i, "B").Value = item
        i = i + 1
    Next item
    
    MsgBox "唯一值提取完成!", vbInformation
End Sub

宏说明:

  • 通过Collection的键特性自动过滤重复值
  • 遍历MySheets指定的所有工作表,批量读取A列数据
  • 最终将结果输出到指定工作表的指定区域

内容的提问来源于stack exchange,提问作者Rahul Malhotra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:07:33