如何根据另一列中的唯一值转置一列中的单元格?

网友投稿 185 2024-01-21

 如何根据另一列中的唯一值转置一列中的单元格?

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

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

使用VBA代码根据唯一值将单元格转置为一列

根据唯一值转置一列中的单元格 Kutools for Excel

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

使用以下数组公式,您可以提取唯一值并将其对应的数据转置为水平行,请执行以下操作:

1。 输入此数组公式: = INDEX($ A $ 2:$ A $ 16,MATCH(0,COUNTIF($ D $ 1:$ D1,$ A $ 2:$ A $ 16),0)) 放入一个空白单元格(例如D2),然后按 Shift + Ctrl + 输入 键在一起以获得正确的结果,请参见屏幕截图:

备注:在以上公式中, A2:A16 是您要列出其唯一值的列,并且 D1 是此公式单元格上方的单元格。

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

3。 然后继续将此公式输入到单元格E2中: =IFERROR(INDEX($B:$B, MATCH(0, COUNTIF($D2:D2,$B:$B)+IF($A:$A<>$D2, 1, 0), 0)), 0),并记得按 Shift + Ctrl + 输入 键以获取结果,请参见屏幕截图:

备注:在上式中: B2:B16 是您要转置的列数据, A2:A16 是您要基于其转置值的列,并且 D2 包含您在步骤1中提取的唯一值。

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

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

使用VBA代码根据唯一值将单元格转置为一列

公式可能会让您难以理解,在这里,您可以运行下面的VBA代码以获取所需的所需结果。

1。 按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

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

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

Sub transposeunique() updateby Extendoffice 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
Copy

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

如何根据另一列中的唯一值转置一列中的单元格?

4。 然后点击 OK 按钮,将弹出另一个提示框,提醒您选择要放入结果的单元格,请参见屏幕截图:

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

根据唯一值转置一列中的单元格 Kutools for Excel

如果你有 Kutools for Excel,结合 高级组合行分裂细胞 实用程序,您无需任何公式或代码即可快速完成此任务。

Kutools for Excel : 带有300多个便捷的Excel加载项,可以在30天内免费试用.
前往下载30天免费试用购买贝宝/ MyCommerce

安装后 Kutools for Excel,请执行以下操作:

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

2。 然后点击 Kutools > 合并与拆分 > 高级组合行,请参见屏幕截图:

3。 在 根据列合并行 对话框,请执行以下操作:

(1.)单击要转置数据所基于的列名称,然后选择 首要的关键;

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

4。 然后点击 Ok 按钮,B列中的数据已基于A列合并到一个单元格中,请参见屏幕截图:

5。 然后选择组合的单元格,然后单击 Kutools > 合并与拆分 > 分裂细胞,请参见屏幕截图:

6。 在 分裂细胞 对话框中选择 拆分为列 在下面 Type 选项,然后选择用于分隔组合数据的分隔符,请参见屏幕截图:

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

8。 点击 OK,您将根据需要获得结果。 看截图:

下载并免费试用 Kutools for Excel 现在 !

演示:根据唯一值转置一列中的单元格 Kutools for Excel
Kutools for Excel:具有300多个方便的Excel加载项,可以在30天内免费试用,没有任何限制。 立即下载并免费试用!

最佳办公生产力工具

将小时转化为分钟 Kutools for Excel!

准备好增强您的 Excel 任务了吗? 利用的力量 Kutools for Excel - 您终极的节省时间的工具。 简化复杂的任务并像专业人士一样浏览数据。 以闪电般的速度体验 Excel!

为什么需要 Kutools for Excel

🛠️  超过 300 项强大功能: Kutools 包含 300 多项高级功能,可简化您在 1500 多种场景中的工作。

📈  卓越的数据处理能力:合并单元格、删除重复项并执行高级数据转换 - 所有这些都不费吹灰之力!

⏱️  高效的批量操作:当你可以聪明地工作时,为什么还要付出额外的努力呢? 轻松批量导入、导出、组合和调整数据。

📊  定制的图表和报告:访问各种附加图表并生成富有洞察力的报告。

🗄️  强大的导航窗格:通过强大的列管理器、工作表管理器和自定义收藏夹获得优势。

📝  七种类型的下拉列表:通过各种功能和类型的下拉列表使数据输入变得轻而易举。

🎓  用户友好:对于初学者来说轻而易举,对于专家来说是一个强大的工具。

立即下载,与 Excel 一起穿越时空!

阅读更多 免费下载... 采购... 
Office Tab 为 Office 带来选项卡式界面,让您的工作更轻松
在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。 每天将您的工作效率提高50%,并减少数百次鼠标单击!
阅读更多 免费下载... 采购... 

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何在Excel中转​​置和链接值?
下一篇:在Excel中粘贴数据时如何转置列和行?
相关文章