提示:其它语言是由 Google 机器翻译的。 你可以访问 English 版本。
登录
x
or
x
x
马上登记
x

or

如何基于另一列中的唯一值在一列中转置单元格?

假设您有一个包含两列的数据范围,现在想要根据另一列中的唯一值将一列中的单元格转置为水平行,以获得以下结果。 你有什么好的想法来解决Excel中的这个问题吗?

doc转置唯一值1

根据具有公式的唯一值将单元格转换为一列

使用VBA代码基于唯一值将单元格转换为一列

使用Kutools for Excel将基于唯一值的单元格转换为一列



使用以下数组公式,可以提取唯一值并将其相应的数据转换为水平行,请按照以下步骤操作:

1。 输入这个数组公式: = INDEX($ A $ 2:$ A $ 16,MATCH(0,COUNTIF($ D $ 1:$ D1,$ A $ 2:$ A $ 16),0)) 进入空白单元格,例如D2,然后按 Shift + Ctrl + Enter 键一起得到正确的结果,看截图:

doc转置唯一值2

注意:在上面的公式中, A2:A16 是要列出和唯一值的列 D1 是此公式单元格上方的单元格。

2。 然后将填充手柄向下拖动到单元格以提取所有唯一值,请参阅截图:

doc转置唯一值3

3。 然后继续输入这个公式到单元E2: =IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2, 1, 0), 0)), 0),并记得按下 Shift + Ctrl + Enter 键来得到结果,看截图:

doc转置唯一值4

注意:在上面的公式中: B2:B16 是要转置的列数据, A2:A16 是你想要转置基于和的值的列 D2 包含您在步骤1中提取的唯一值。

4. 然后将填充手柄拖到要列出转置数据的单元格的右侧,直到显示0,请参见截图:

doc转置唯一值5

5。 然后继续将填充手柄拖动到单元格范围以获取转置数据,如下面的屏幕截图所示:

doc转置唯一值6


可能这些公式很复杂,你可以在这里运行下面的VBA代码来得到你需要的结果。

1。 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到 模块 窗口。

VBA代码:根据另一列中的唯一值在一列中转置单元格:

Sub transposeunique()
'updateby Extendoffice 20151207
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

3. 然后按 F5 键运行此代码,并会弹出提示框提醒您选择要使用的数据范围,请参阅屏幕截图:

doc转置唯一值7

4。 然后点击 OK 按钮,弹出另一个提示框来提醒您选择一个单元格放置结果,请参阅截图:

doc转置唯一值8

6。 点击 OK 按钮,并且列B中的数据已根据列A中的唯一值进行转置,请参阅屏幕截图:

doc转置唯一值9


如果你有 Kutools for Excel,结合 先进的组合行 拆分单元格 实用程序,您可以快速完成此任务而无需任何公式或代码。

Kutools for Excel : 与超过300方便的Excel加载项,在60天免费试用没有限制.

安装Kutools for Excel后,请按如下操作:

1。 选择您要使用的数据范围。 (如果要保留原始数据,请首先将数据复制并粘贴到其他位置。)

2。 然后点击 Kutools > 内容 > 先进的组合行,看截图:

doc转置唯一值10

3。 在C基于列的联合行 对话框,请执行以下操作:

(1。)单击您想要转置数据的列名称,然后选择 首要的关键;

(2。)单击您想转置的另一列,然后单击 结合 然后选择一个分隔符来分隔组合的数据,如空格,逗号,分号。

doc转置唯一值11

4。 然后点击 Ok 按钮,B列中的数据已经在A列的一个单元格中组合在一起,参见截图:

doc转置唯一值12

5。 然后选择组合的单元格,然后单击 Kutools > 文本 > 拆分单元格,看截图:

doc转置唯一值13

6。 在 拆分单元格 对话框中选择 拆分为列 在下面 类型 选项,然后选择分隔您的组合数据的分隔符,请参阅屏幕截图:

doc转置唯一值14 14

7。 然后点击 Ok 按钮,然后选择一个单元格将拆分结果放入弹出的对话框中,参见截图:

doc转置唯一值15

8。 点击 OK,你会得到你需要的结果。 看截图:

doc转置唯一值16

立即下载并免费试用Kutools for Excel!


Kutools for Excel:比200方便的Excel加载项,可以在60天免费试用。 下载并免费试用现在!


Kutools for Excel - 最佳办公生产力工具提高80%的生产力

  • 重用: 快速插入 复杂的公式,图表 以及你以前用过的任何东西; 加密单元格 密码; 创建邮件列表 并发送电子邮件...
  • 超级方程式酒吧 (轻松编辑多行文字和公式); 阅读布局 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不丢失数据; 分裂细胞含量; 组合重复的行/列...防止重复的细胞; 比较范围...
  • 选择复制或唯一 行; 选择空行 (所有细胞都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择......
  • 精确复制 多个单元格而不更改公式参考; 自动创建参考 多张表; 插入项目符号,复选框等等......
  • 提取文本,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级过滤器 (将过滤方案保存并应用到其他工作表); 高级排序 按月/周/日,频率等; 特殊过滤器 用粗体,斜体......
  • 结合工作簿和工作表; 根据键列合并表; 将数据拆分为多个表格; 批量转换xls,xlsx和PDF...
  • 超过300强大的功能。 支持Office / Excel 2007-2019和365。 支持所有语言。 在您的企业或组织中轻松部署。 全功能60天免费试用。
kte tab 201905

Office选项卡为Office提供选项卡式界面,使您的工作更轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,Publisher,Access,Visio和Project。
  • 在同一窗口的新选项卡中打开并创建多个文档,而不是在新窗口中。
  • 通过50%提高您的工作效率,每天为您减少数百次鼠标点击!
官方底部
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.