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 for Applications 窗口。

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


如果你有 Excel的Kutools,結合 高級合併行分裂細胞 實用程序,您無需任何公式或代碼即可快速完成此任務。

Excel的Kutools : 帶有300多個便捷的Excel加載項,可以在30天內免費試用.

安裝後 Excel的Kutools,請執行以下操作:

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!


Excel的Kutools:具有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 = True
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 = True
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 = True

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 = True

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保護