Làm cách nào để chuyển các ô trong một cột dựa trên các giá trị duy nhất trong một cột khác?
Giả sử, bạn có một dải dữ liệu chứa hai cột, bây giờ, bạn muốn chuyển các ô trong một cột sang các hàng ngang dựa trên các giá trị duy nhất trong một cột khác để nhận được kết quả sau. Bạn có bất kỳ ý tưởng hay nào để giải quyết vấn đề này trong Excel?
Chuyển đổi ô trong một cột dựa trên các giá trị duy nhất có công thức
Chuyển đổi ô trong một cột dựa trên các giá trị duy nhất với mã VBA
Chuyển đổi các ô trong một cột dựa trên các giá trị duy nhất với Kutools cho Excel
Chuyển đổi ô trong một cột dựa trên các giá trị duy nhất có công thức
Với các công thức mảng sau, bạn có thể trích xuất các giá trị duy nhất và chuyển dữ liệu tương ứng của chúng thành các hàng ngang, vui lòng thực hiện như sau:
1. Nhập công thức mảng này: = INDEX ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) vào ô trống, ví dụ như D2, và nhấn Shift + Ctrl + Nhập các phím với nhau để có kết quả chính xác, xem ảnh chụp màn hình:
Chú thích: Trong công thức trên, A2: A16 là cột mà bạn muốn liệt kê các giá trị duy nhất từ đó và D1 là ô phía trên ô công thức này.
2. Sau đó, kéo chốt điền xuống các ô để trích xuất tất cả các giá trị duy nhất, xem ảnh chụp màn hình:
3. Và sau đó tiếp tục nhập công thức này vào ô 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), và nhớ nhấn Shift + Ctrl + Nhập phím để nhận kết quả, xem ảnh chụp màn hình:
Chú thích: Trong công thức trên: B2: B16 là dữ liệu cột mà bạn muốn chuyển đổi, A2: A16 là cột mà bạn muốn chuyển đổi các giá trị dựa trên và D2 chứa giá trị duy nhất mà bạn đã trích xuất ở Bước 1.
4. Sau đó kéo chốt điền sang bên phải của các ô mà bạn muốn liệt kê dữ liệu đã hoán vị cho đến khi hiển thị 0, xem ảnh chụp màn hình:
5. Và sau đó tiếp tục kéo chốt điều khiển điền xuống phạm vi ô để nhận dữ liệu chuyển vị như hình minh họa sau:
Chuyển đổi ô trong một cột dựa trên các giá trị duy nhất với mã VBA
Có thể là các công thức phức tạp để bạn hiểu, ở đây, bạn có thể chạy mã VBA sau để có được kết quả mong muốn mà bạn cần.
1. Giữ ALT + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun Cửa sổ.
Mã VBA: Chuyển đổi ô trong một cột dựa trên các giá trị duy nhất trong một cột khác:
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. Sau đó nhấn F5 để chạy mã này và một hộp nhắc sẽ bật ra để nhắc bạn chọn phạm vi dữ liệu mà bạn muốn sử dụng, xem ảnh chụp màn hình:
4. Và sau đó nhấp vào OK , một hộp nhắc khác sẽ bật ra để nhắc bạn chọn một ô để đặt kết quả, xem ảnh chụp màn hình:
6. Nhấp chuột OK và dữ liệu trong cột B đã được chuyển đổi dựa trên các giá trị duy nhất trong cột A, xem ảnh chụp màn hình:
Chuyển đổi các ô trong một cột dựa trên các giá trị duy nhất với Kutools cho Excel
Nếu bạn có Kutools cho Excel, kết hợp Các hàng kết hợp nâng cao và Chia ô tiện ích, bạn có thể nhanh chóng hoàn thành tác vụ này mà không cần bất kỳ công thức hoặc mã nào.
Kutools cho Excel : với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày. |
Sau khi cài đặt Kutools cho Excel, vui lòng làm như sau:
1. Chọn phạm vi dữ liệu mà bạn muốn sử dụng. (Nếu bạn muốn giữ dữ liệu gốc, trước tiên hãy sao chép và dán dữ liệu vào vị trí khác.)
2. Sau đó nhấn vào Kutools > Hợp nhất & Tách > Các hàng kết hợp nâng cao, xem ảnh chụp màn hình:
3. Trong Kết hợp các hàng dựa trên cột hộp thoại, vui lòng thực hiện các thao tác sau:
(1.) Nhấp vào tên cột mà bạn muốn chuyển dữ liệu dựa trên đó và chọn Khóa chính;
(2.) Nhấp vào cột khác mà bạn muốn chuyển đổi và nhấp vào Kết hợp sau đó chọn một dấu phân tách để phân tách dữ liệu được kết hợp, chẳng hạn như dấu cách, dấu phẩy, dấu chấm phẩy.
4. Sau đó nhấn vào Ok , dữ liệu trong cột B đã được kết hợp với nhau trong một ô dựa trên cột A, xem ảnh chụp màn hình:
5. Và sau đó chọn các ô được kết hợp và nhấp vào Kutools > Hợp nhất & Tách > Chia ô, xem ảnh chụp màn hình:
6. Trong Chia ô hộp thoại, chọn Chia thành các cột theo Kiểu và sau đó chọn dấu phân tách để phân tách dữ liệu kết hợp của bạn, xem ảnh chụp màn hình:
7. Sau đó nhấn vào Ok và chọn một ô để đặt kết quả phân tách trong hộp thoại hiện ra, xem ảnh chụp màn hình:
8. Nhấp chuột OK, và bạn sẽ nhận được kết quả như bạn cần. Xem ảnh chụp màn hình:
Tải xuống và dùng thử miễn phí Kutools cho Excel ngay!
Demo: Chuyển các ô trong một cột dựa trên các giá trị duy nhất với Kutools cho Excel
Các công cụ năng suất văn phòng tốt nhất
Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn
- Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
- Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
- Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
- Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
- Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
- Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
- Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
- Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
- Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.

Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều
- Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
- Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
- Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
















































