Note: The other languages of the website are Google-translated. Back to English

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

假设您有一个包含两列的数据范围,现在,您想根据另一列中的唯一值将一列中的单元格转置为水平行,以获得以下结果。 您有什么好主意可以解决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 + 输入 键在一起以获得正确的结果,请参见屏幕截图:

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 + 输入 键以获取结果,请参见屏幕截图:

doc转置唯一值4

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

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

doc转置唯一值5

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

doc转置唯一值6


公式可能会让您难以理解,在这里,您可以运行下面的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

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

doc转置唯一值7

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

doc转置唯一值8

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

doc转置唯一值9


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

Kutools for Excel : 带有300多个便捷的Excel加载项,可以在30天内免费试用.

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

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

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

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

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

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

doc转置唯一值11

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

doc转置唯一值12

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

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

doc转置唯一值14 14

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

doc转置唯一值15

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

doc转置唯一值16

立即下载和免费试用Excel的Kutools!


Kutools for Excel:具有300多个方便的Excel加载项,可以在30天内免费试用,没有任何限制。 立即下载并免费试用!

最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

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

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (56)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
我将如何走向相反的方向? 从多列变成单列? 提前致谢! 蒂姆
该评论由网站上的主持人最小化
这太棒了。 我在 A 行中有大约 2000 个唯一值的 Excel,如果没有你的帮助,我无法完成这个练习。 非常感谢。
该评论由网站上的主持人最小化
第一步本身失败 =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) 给出 Value Not Available 错误
该评论由网站上的主持人最小化
我只想做相反的事情。 就像我已经有了最终结果,我想迈出第一步。
该评论由网站上的主持人最小化
我正在寻找同样的东西
该评论由网站上的主持人最小化
您是否为相反的情况找到任何解决方案? 谢谢!
该评论由网站上的主持人最小化
我也想做相反的事情。 大佬们有什么解决办法吗?
该评论由网站上的主持人最小化
大家好,
要根据本文的示例得到相反的结果,您可以应用以下 VBA 代码:(注意:选择要转置的数据范围时,请排除标题行)

转置Unique_2()
暗淡 xLrow,xLCount As Long
将 xRg 调暗为范围
将 xOutRg 调暗为范围
将 xObjRRg 调暗为范围
将 xTxt 调暗为字符串
调暗 xCount 一样长
将 xVRg 调暗为范围
出错时继续下一步
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("请选择数据范围:", "Kutools for Excel", xTxt, , , , , 8)
设置 xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
如果 xRg 什么都不是,则退出 Sub
如果 (xRg.Rows.count < 2) 或 _
(xRg.Areas.count > 1) 然后
MsgBox "无效选​​择", , "Kutools for Excel"
退出小组
结束如果
Set xOutRg = Application.InputBox("请选择输出范围(指定一个单元格):", "Kutools for Excel", xTxt, , , , , 8)
如果 xOutRg 为空,则退出 Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
对于 xLRow = 1 到 xRg.Rows.count
设置 xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial 粘贴:=xlPasteAll,操作:=xlNone,SkipBlanks:=False,Transpose:=True
Application.CutCopyMode = False
范围(单元格(xOutRg.Row,xOutRg.Column),单元格(xOutRg.Row + xObjRRg.count - 1,xOutRg.Column)).Value = xRg.Cells(xLRow,1).Value
设置 xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
下一页
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
如果 B 列没有唯一值但仍需要这些值,如何进行转置
肯尼亚泰铢 100
肯尼亚泰铢 100
假设它们是两个不同的事务
该评论由网站上的主持人最小化
你好,迪丁,

你能更清楚或更详细地说明你的问题吗?
您可以为您的问题插入示例屏幕截图。
谢谢!
该评论由网站上的主持人最小化
您好,
你能帮我解决以下要求吗?
产品-----订购
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
预期产出
产品 ----- 订单 ----- 订单 ------ 订单
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







该评论由网站上的主持人最小化
我也需要同样的。 如果数据中有,我想显示 100 两次
该评论由网站上的主持人最小化
你能建议一个公式吗
该评论由网站上的主持人最小化
你有没有得到这个挑战的回应/解决方案? 我有同样的。
该评论由网站上的主持人最小化
有没有办法反过来做呢? 即不同长度的行中的数据,因此将其分类为两列? 见附件。
该评论由网站上的主持人最小化
我也想转置重复值(所有值 - 唯一 + 重复),而不仅仅是唯一值。 你也能给出这个公式吗?
该评论由网站上的主持人最小化
我需要同样的
该评论由网站上的主持人最小化
你有没有得到这个挑战的回应/解决方案? 我有同样的。
该评论由网站上的主持人最小化
使用以下公式:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

如何使用近似匹配转置数据? 说,我想从 B 列中提取与 A 列前 9 个字符/数字匹配的所有值? B 列有 11 个字符,而 A 只有 9 个字符。谢谢!
该评论由网站上的主持人最小化
我需要做与此完全相反的事情。 我有很多与行 ID 关联的列,我想将它们粘贴到两列中
例如我有
行ID,值,值1,值2,值3,值4,值..225
100, 海豚, 255, 9--, 莎拉, 詹姆森, ....
179,路由器,洪水,杰森,89,鼻子



我希望它看起来像这样
100、海豚
100,255
100, 9——
100,莎拉
100、杰米森
179,路由器
179,洪水
179,杰森
179,89
179,鼻子
该评论由网站上的主持人最小化
你好,戴夫,
要解决您的问题,请使用以下 VBA 代码:(注意:当您选择要转置的数据范围时,请排除标题行。)

转置Unique_2()
暗淡 xLrow,xLCount As Long
将 xRg 调暗为范围
将 xOutRg 调暗为范围
将 xObjRRg 调暗为范围
将 xTxt 调暗为字符串
调暗 xCount 一样长
将 xVRg 调暗为范围
出错时继续下一步
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("请选择数据范围:", "Kutools for Excel", xTxt, , , , , 8)
设置 xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
如果 xRg 什么都不是,则退出 Sub
如果 (xRg.Rows.count < 2) 或 _
(xRg.Areas.count > 1) 然后
MsgBox "无效选​​择", , "Kutools for Excel"
退出小组
结束如果
Set xOutRg = Application.InputBox("请选择输出范围(指定一个单元格):", "Kutools for Excel", xTxt, , , , , 8)
如果 xOutRg 为空,则退出 Sub
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
对于 xLRow = 1 到 xRg.Rows.count
设置 xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial 粘贴:=xlPasteAll,操作:=xlNone,SkipBlanks:=False,Transpose:=True
Application.CutCopyMode = False
范围(单元格(xOutRg.Row,xOutRg.Column),单元格(xOutRg.Row + xObjRRg.count - 1,xOutRg.Column)).Value = xRg.Cells(xLRow,1).Value
设置 xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
下一页
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
谢谢,它工作得很好,你救了我 2 天! :)
该评论由网站上的主持人最小化
你好天阳,
请分享 3 列的代码。 下面是示例:
我想要这样的数据: yogesh@gmail.com 社区 1 仅查看社区 2 仅查看...... goyal@gmail.com 社区 1 仅查看社区 2 仅查看......

查看附件 (1 / 5)
该评论由网站上的主持人最小化
你好,ygoyal,

要解决您的问题,请应用以下代码:

转置Unique_2()

暗淡 xLrow,xLCount As Long

将 xRg 调暗为范围

将 xOutRg 调暗为范围

将 xObjRRg 调暗为范围

将 xTxt 调暗为字符串

调暗 xCount 一样长

将 xVRg 调暗为范围

将 xC、xI、xI1、xI2 调暗为整数

出错时继续下一步

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("请选择数据范围:", "Kutools for Excel", xTxt, , , , , 8)

设置 xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

如果 xRg 什么都不是,则退出 Sub

如果 (xRg.Rows.Count < 2) 或 _

(xRg.Areas.Count > 1) 然后

MsgBox "无效选​​择", , "Kutools for Excel"

退出小组

结束如果

Set xOutRg = Application.InputBox("请选择输出范围(指定一个单元格):", "Kutools for Excel", xTxt, , , , , 8)

如果 xOutRg 为空,则退出 Sub

Application.ScreenUpdating = False

xLCount = xRg.Columns.Count

对于 xLRow = 1 到 xRg.Rows.Count

设置 xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

出错时继续下一步

xC = (xObjRRg.Count Mod 2)

如果 xC <> 0 那么

xC = Int(xObjRRg.Count / 2) + 1

其他

xC = Int(xObjRRg.Count / 2)

结束如果

xI1 = 1

xI2 = 2

对于 xI = 1 到 xC

范围(xObjRRg.Item(xI1),xObjRRg.Item(xI2))。复制

xOutRg.Offset(, 1).PasteSpecial 粘贴:=xlPasteAll,操作:=xlNone,SkipBlanks:=False,Transpose:=False

Application.CutCopyMode = False

xOutRg.Value = xRg.Cells(xLRow, 1).Value

设置 xOutRg = xOutRg.Offset(RowOffset:=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

下一页

下一页

Application.ScreenUpdating =真

END SUB



请尝试,希望对您有所帮助!
该评论由网站上的主持人最小化
你好兄弟,代码是相反的。 请参阅随附的要求屏幕截图。可用的数据是逐行的,并且想要转置列中的数据。
查看附件 (1 / 5)
该评论由网站上的主持人最小化
嗨,ygoyal,
抱歉回复晚了,请申请以下代码,请尝试!

子转置唯一()

'更新 Extendoffice

暗淡 xLrow 只要

朦胧我

将 xCrit 调暗为字符串

Dim xCol 作为新系列

将 xRg 调暗为范围

将 xOutRg 调暗为范围

将 xTxt 调暗为字符串

调暗 xCount 一样长

将 xVRg 调暗为范围

将 xFRg、xSRg、xCRg 调暗为范围

出错时继续下一步

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("请选择数据范围(只有3列):", "Kutools for Excel", xTxt, , , , , 8)

设置 xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

如果 xRg 什么都不是,则退出 Sub

如果 (xRg.Columns.Count <> 3) 或 _

(xRg.Areas.Count > 1) 然后

MsgBox "使用的范围只有一个区域有两列", , "Kutools for Excel"

退出小组

结束如果

Set xOutRg = Application.InputBox("请选择输出范围(指定一个单元格):", "Kutools for Excel", xTxt, , , , , 8)

如果 xOutRg 为空,则退出 Sub

设置 xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

对于 i = 2 到 xLRow

xCol.Add xRg.Cells(i, 1).Value,xRg.Cells(i, 1).Value

下一页

Application.ScreenUpdating = False

Application.ScreenUpdating = False

对于 i = 1 到 xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = x暴击

xRg.AutoFilter 字段:=1, Criteria1:=xCrit

设置 xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

如果 xVRg.Count > xCount 则 xCount = xVRg.Count

设置 xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)

设置 xCRg = xOutRg.Offset(i, 1)

对于 xSRg 中的每个 xFRg

xFRg.复制

xCRg.PasteSpecial

xRg.Range("B1").复制

xCRg.Offset(-(i), 0).PasteSpecial

xFRg.Offset(0, 1).复制

设置 xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpecial

xRg.Range("c1").复制

xCRg.Offset(-(i), 0).PasteSpecial

设置 xCRg = xCRg.Offset(0, 1)

下一页

Application.CutCopyMode = False

下一页

xRg.Item(1).复制

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating =真

END SUB
该评论由网站上的主持人最小化
嘿兄弟,我尝试使用此代码,但是当我运行此代码时 excel 挂起,并且看不到上述代码的输出。 请建议在这种情况下该怎么做。
该评论由网站上的主持人最小化
嗨,
该代码在我的工作簿中运行良好,您使用哪个 Excel 版本?
该评论由网站上的主持人最小化
MS Excel 2016
该评论由网站上的主持人最小化
该代码在我的 Excel 2016 中也可以正常工作,请先尝试使用一些小范围数据。
该评论由网站上的主持人最小化
已经对 160 条记录进行了测试,但仍然存在重复记录。
该评论由网站上的主持人最小化
嗨 Skyyang,喜欢这个,你有没有机会让它为四列工作? 再次仅使用前两个作为比较器,还是在选择列数之前更好地选择它们? 我看了你的脚本,不知道如何实现这一点......
该评论由网站上的主持人最小化
嗨 Skyyang,喜欢这个,你有没有机会让它为四列工作? 再次仅使用前两个作为比较器,还是在选择列数之前更好地选择它们? 我看了你的脚本,不知道如何实现这一点......
该评论由网站上的主持人最小化
兄弟,请帮忙。
该评论由网站上的主持人最小化
兄弟你好,还在等你的帮助
查看附件 (1 / 5)
该评论由网站上的主持人最小化
你好
查看附件 (1 / 5)
该评论由网站上的主持人最小化
和戴夫一样,我需要做与此完全相反的事情。 将表 2 转置为表 1。输入表 2,输出表 1。
该评论由网站上的主持人最小化
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) 帮助我将列的唯一值转换为新的列但是...有没有办法在排序函数中进行广告,以便创建的新列按升序转置?


谢谢!
该评论由网站上的主持人最小化
需要获得相同的输出,但要选择的预定义列将是 ($A,$B),并且需要输出列 Position on $D$1。
如果有人有想法,那将是一个很大的帮助!!!!
该评论由网站上的主持人最小化
嗨,我们可以添加每一行并在一列中给出输出,具有上述功能。
该评论由网站上的主持人最小化
所以我在一家公司工作。 我们有诸如姓氏、名字、等级、部门、电话号码、地址等信息的列。 有没有办法可以使用类似的公式将整行信息按名称转换为列?
该评论由网站上的主持人最小化
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) 帮助我将 A 列的唯一值转换为新的列但是...有没有办法让 B 列中的所有值被转置,如下所示:

产品订购日期 产品订购 订购 订购 订购 订购 订购
KTE 100 3 年 3 月 2019 日 KTE 100 100 100 200 100 150 100
KTO 150 3 年 3 月 2019 日 KTO 150 100 200 100 150 200
KTE 100 3 年 4 月 2019 日 BOT 150 100 200 150 100 200
KTO 100 3 年 4 月 2019 日 COD 200 150 100 150
KTO 200 3 年 5 月 2019 日
KTE 100 3 年 5 月 2019 日
机器人 150 3 年 5 月 2019 日
机器人 100 3 年 6 月 2019 日
KTO 100 3 年 6 月 2019 日
KTE 200 3 年 6 月 2019 日
BOT 200 3 年 7 月 2019 日
COD 200 3 年 7 月 2019 日
KTE 100 3 年 7 月 2019 日
KTO 150 3 年 7 月 2019 日
机器人 150 3 年 8 月 2019 日
KTE 150 3 年 8 月 2019 日
COD 150 3 年 8 月 2019 日
机器人 100 3 年 9 月 2019 日
机器人 200 3 年 10 月 2019 日
COD 100 3 年 10 月 2019 日
KTO 200 3 年 10 月 2019 日
COD 150 3 年 11 月 2019 日
KTE 100 3 年 11 月 2019 日
该评论由网站上的主持人最小化
宏不起作用。 它只是复制了单元格 A1 中的内容。
该评论由网站上的主持人最小化
我在 A 列(唯一 ID)-E 中有一个数据集。每一行都有基于 ID# 的数据,每个 ID# 有多行,但我希望每个 ID# 有一行,所有其他数据都在列中(根据每个唯一 ID 的数量,最短为 5 列,最长为 25 列)。 我找到了一个代码,但它只适用于两列。 我必须连接四列(不包括 ID),然后在运行宏后分隔(大量工作)。 对于 15,000 行数据,这非常耗时。 是否有一个无穷无尽的列宏可以工作? 提前感谢大家的帮助!
ID 代码 ST 代码# 日期
该评论由网站上的主持人最小化
我有一个数据集,它在 A 列中有多个 ID,并且在 B 列中连接了数据。我使用了上面的公式并对其进行了一些修改,以便我根据唯一 ID 将 B 列中的单元格转换为一行在 A 列中与之相关联。用于识别唯一 ID 的公式为: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0))。 用于进行转置的公式是: =IFERROR(INDEX($B$2:$B$13409, MATCH(0, IF($A$2:$A$13409<>$D2, 1, 0)+COUNTIF($D2: D2,$B$2:$B$13409), 0)), "N/A")。 两者都在文章中给出,只是略有改动。

问题是我在 B 列中的数据集有重复项,有时会一个接一个地出现,我需要将列中的所有值都显示在行中。

所附图像是我希望表格显示的内容(这是一个小样本,真正的数据集有超过 13,000 个条目)。 现在发生的是当遇到重复值时,它不会计算它。
即 ID 9 的第 11980 行现在只显示 0 -31.79 -0.19 -0.74 N/AN/A .... 而我需要它显示的是 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A 。 ...

有没有办法解决这个问题并解决它?

预先感谢您!
该评论由网站上的主持人最小化
你有没有得到这个挑战的回应/解决方案? 我有同样的。
该评论由网站上的主持人最小化
我有一个数据集,其中包含以下 3 列:



A 列 B 列 C 列



国家 1 年 1 值 1

国家 1 年 2 值 2

国家 1 年 3 值 3,



国家 2 年 1 值 1

国家 2 年 3 值 3,

...........



我需要将这 3 列组合在一个表格中,如下所示:

第 1 年 第 2 年 第 3 年 .................... 第 X 年



国家 1 价值 1 价值 2 价值 3

国家 2 值 1 #缺失值 3

.....
.....
.....

CountryX 价值 .....................





我面临的问题是,对于 A 列中的某些数据,我没有仅针对某些年份的值。(例如,国家 2 缺少第 2 年的值)





有没有办法解决这个问题并解决它?



预先感谢您!
该评论由网站上的主持人最小化
如果要复制 2 列而不是 1 列,您能否分享代码。下面是示例。
查看附件 (1 / 5)
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护