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

Excel横排数据提取唯一值并按字母排序方法求助

提取横排唯一出版物编号并排序的解决方案

针对横排的重复出版物编号,以下是几种实现提取唯一值并横排输出(含排序)的方法:

方法一:Excel 365/2021(动态数组公式)

假设原数据位于A1:I1(A1为"Publications",B1至I1为编号),在任意空白单元格(如A3)输入以下公式,直接生成横排的带标题的排序后唯一值:

=HSTACK("Publications",SORT(UNIQUE(B1:I1)))
  • UNIQUE(B1:I1):提取横排区域内的所有唯一编号
  • SORT():对唯一编号按文本规则升序排序(符合字母/数字字符串排序需求)
  • HSTACK():将标题与排序后的唯一值横向拼接,输出横排结果

方法二:旧版Excel(无动态数组支持)

  1. 提取竖排唯一值:在空白单元格(如A3)输入数组公式,按Ctrl+Shift+Enter确认,向下拖动填充至出现空值:
=INDEX($B$1:$I$1,SMALL(IF(MATCH($B$1:$I$1,$B$1:$I$1,0)=COLUMN($B$1:$I$1)-COLUMN($B$1)+1,COLUMN($B$1:$I$1)-COLUMN($B$1)+1,""),ROW(A1)))
  1. 排序:选中提取出的竖排唯一值区域,使用Excel的「排序」功能按升序排列
  2. 转置为横排:复制排序后的竖排区域,右键选择「选择性粘贴」→勾选「转置」,再手动添加开头的"Publications"标题

方法三:VBA宏(适用于所有Excel版本)

按Alt+F11打开VBA编辑器,插入模块并粘贴以下代码,运行宏即可自动提取、排序并横排输出结果:

Sub ExtractUniqueSortedPublications()
    Dim sourceRange As Range
    Dim uniqueVals As Collection
    Dim cell As Range
    Dim i As Integer
    Dim outputRange As Range
    
    ' 可根据实际情况修改区域
    Set sourceRange = Range("B1:I1") ' 原编号所在横排区域
    Set outputRange = Range("A3") ' 结果输出起始单元格
    
    Set uniqueVals = New Collection
    ' 提取唯一值
    On Error Resume Next
    For Each cell In sourceRange
        If cell.Value <> "" Then
            uniqueVals.Add cell.Value, Key:=CStr(cell.Value)
        End If
    Next cell
    On Error GoTo 0
    
    ' 排序唯一值数组
    Dim sortedArr() As String
    ReDim sortedArr(1 To uniqueVals.Count)
    For i = 1 To uniqueVals.Count
        sortedArr(i) = uniqueVals(i)
    Next i
    Call BubbleSort(sortedArr)
    
    ' 输出标题与结果
    outputRange.Value = "Publications"
    For i = 1 To UBound(sortedArr)
        outputRange.Offset(0, i).Value = sortedArr(i)
    Next i
End Sub

Sub BubbleSort(arr() As String)
    Dim i As Integer, j As Integer
    Dim temp As String
    For i = LBound(arr) To UBound(arr) - 1
        For j = i + 1 To UBound(arr)
            If arr(i) > arr(j) Then
                temp = arr(i)
                arr(i) = arr(j)
                arr(j) = temp
            End If
        Next j
    Next i
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:15:37