如何根據另一欄中的唯一值,將某一欄的儲存格轉置?
假設您有一組包含兩欄的資料,現在希望根據其中一欄的唯一值,將另一欄的儲存格轉置為橫向列,以取得如下所示的結果。您是否知道在 Excel 中有什麼好方法可以解決這個問題?

使用 Kutools for Excel 根據唯一值轉置某一欄的儲存格
使用公式根據唯一值轉置某一欄的儲存格
透過下列陣列公式,您可以提取唯一值並將對應資料轉置為橫向列,請依下列步驟操作:
1. 在空白儲存格(例如 D2)中輸入下列陣列公式:=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)),然後同時按下 Shift + Ctrl + Enter 鍵以取得正確結果,請參閱截圖:

注意:在上述公式中,A2:A16 是您要列出唯一值的欄位,而 D1 是此公式所在儲存格上方的儲存格。
2. 接著向下拖曳填滿控點至其他儲存格,即可提取所有唯一值,請參見截圖:

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 鍵以取得結果,詳情請參見截圖:

注意:在上述公式中,B2:B16 是您要轉置的欄位資料,A2:A16 是您用來作為轉置依據的欄位,而 D2 則包含您在步驟 1 中提取的唯一值。
4. 接著向右拖曳填滿控點至您要列出轉置資料的儲存格,直到出現 0 為止,詳情請參見截圖:

5. 接著向下拖曳填滿控點至所需儲存格範圍,即可獲得如下截圖所示的轉置資料:

使用 VBA 程式碼根據唯一值轉置某一欄的儲存格
這些公式可能稍顯複雜,以下提供一段 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 鍵執行此程式碼,系統將彈出提示方塊,提醒您選取要使用的資料區域,請參見截圖:

4. 然後點選確定按鈕,系統將再次彈出提示方塊,提醒您選取用於放置結果的儲存格,請參見截圖:

6. 點選確定按鈕後,B 欄資料將依據 A 欄的唯一值完成轉置,請參見截圖:

使用 Kutools for Excel 根據唯一值轉置某一欄的儲存格
若您已安裝 Kutools for Excel,只要結合高級合併行與分割儲存格功能,無需公式或程式碼,即可快速完成此任務!
安裝 Kutools for Excel 後,請依下列步驟操作:
1. 選取您要處理的資料範圍。(若想保留原始資料,請先複製貼上至其他位置。)
2. 接著點選 Kutools> 合併和拆分> 高級合併行,請參見截圖:

3. 在 合併行 Based on Column對話方塊中,請執行下列操作:
(1.) 點選您要作為轉置依據的欄位名稱,並選取主鍵;
(2.) 點選另一個您要轉置的欄位,點選合併,再選擇分隔符號(例如空格、逗號或分號),即可將資料合併並以所選符號分隔!

4. 點選確定按鈕後,B 欄中的資料便會根據 A 欄合併至單一儲存格中,請參見截圖:

5. 接著選取合併後的儲存格,再點選 Kutools> 合併和拆分> 分割儲存格,請參見截圖:

6. 在分割儲存格對話方塊中,於類型選項的分割至多列下方選擇分隔符號,請參見截圖:

7. 然後點選確定按鈕,在彈出的對話方塊中選取用於放置拆分結果的儲存格,請參見截圖:

8. 點選確定,即可立即取得所需結果!請參見截圖:

示範:使用 Kutools for Excel 根據唯一值轉置某一欄的儲存格
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用