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

 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?

doc chuyển các giá trị duy nhất 1

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


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:

doc chuyển các giá trị duy nhất 2

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:

doc chuyển các giá trị duy nhất 3

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:

doc chuyển các giá trị duy nhất 4

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:

doc chuyển các giá trị duy nhất 5

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:

doc chuyển các giá trị duy nhất 6


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:

doc chuyển các giá trị duy nhất 7

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:

doc chuyển các giá trị duy nhất 8

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:

doc chuyển các giá trị duy nhất 9


Nếu bạn có Kutools cho Excel, kết hợp Các hàng kết hợp nâng caoChia ô 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.

doc chuyển các giá trị duy nhất 11

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:

doc chuyển các giá trị duy nhất 12

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:

doc chuyển các giá trị duy nhất 14 14

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:

doc chuyển các giá trị duy nhất 15

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:

doc chuyển các giá trị duy nhất 16

Tải xuống và dùng thử miễn phí Kutools cho Excel ngay!


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. Tải xuống và dùng thử miễn phí ngay!

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 kte 201905

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!
officetab dưới cùng
Nhận xét (56)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm thế nào tôi sẽ đi theo hướng ngược lại? Từ nhiều cột thành một cột duy nhất? Cảm ơn trước! Tim
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Điều này thật tuyệt vời. Tôi đã có một excel với khoảng 2000 giá trị duy nhất trong hàng A và không thể quản lý bài tập này nếu không có sự giúp đỡ của bạn. Rất rất cảm ơn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bản thân bước đầu tiên không thành công = INDEX ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) đưa ra lỗi Không có sẵn Giá trị
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi chỉ muốn làm điều ngược lại. Giống như tôi đã có kết quả cuối cùng, và tôi muốn đạt được bước đầu tiên.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang tìm kiếm cùng thứ đó
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có tìm thấy giải pháp nào cho tình huống ngược lại không? Thanks!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi cũng muốn làm điều ngược lại. Bất kỳ giải pháp bạn có gents?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, các bạn,
Để nhận được kết quả ngược lại dựa trên ví dụ của bài viết này, bạn có thể áp dụng mã VBA sau: (Lưu ý: Khi chọn phạm vi dữ liệu bạn muốn chuyển đổi, vui lòng loại trừ hàng tiêu đề)

Sub TransposeUnique_2 ()
Dim xLRow, xLCount As Long
Dim xRg theo phạm vi
Dim xOutRg dưới dạng phạm vi
Dim xObjRRg dưới dạng phạm vi
Làm mờ xTxt dưới dạng chuỗi
Dim xCount As Long
Dim xVRg theo phạm vi
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Đặt xRg = Application.InputBox ("vui lòng chọn dải dữ liệu:", "Kutools cho Excel", xTxt,,,,, 8)
Đặt xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange)
Nếu xRg không có gì thì thoát Sub
Nếu (xRg.Rows.count <2) Hoặc _
(xRg.Areas.count> 1) Sau đó
MsgBox "Lựa chọn không hợp lệ", "Kutools cho Excel"
Thoát Sub
Cuối Nếu
Đặt xOutRg = Application.InputBox ("vui lòng chọn phạm vi đầu ra (chỉ định một ô):", "Kutools cho Excel", xTxt,,,, 8)
Nếu xOutRg không có gì thì thoát Sub
Application.ScreenUpdating = Sai
xLCount = xRg.Columns.count
Đối với xLRow = 1 Đến xRg.Rows.count
Đặt xObjRRg = Range (xRg.Cells (xLRow, 2), xRg.Cells (xLRow, xLCount)). SpecialCells (xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset (, 1) .PasteSpecial Paste: = xlPasteAll, Operation: = xlNone, SkipBlanks: = False, Transpose: = True
Application.CutCopyMode = Sai
Phạm vi (Ô (xOutRg.Row, xOutRg.Column), Ô (xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)). Giá trị = xRg.Cells (xLRow, 1). Giá trị
Đặt xOutRg = xOutRg.Offset (RowOffset: = xObjRRg.count)
Sau
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cách thực hiện chuyển vị nếu cột B không có các giá trị duy nhất nhưng vẫn cần các giá trị đó
KTE 100
KTE 100
Giả sử rằng chúng là hai giao dịch khác nhau
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Didin ,

Bạn có thể cung cấp cho vấn đề của bạn rõ ràng hơn hoặc chi tiết hơn?
Bạn có thể chèn một ảnh chụp màn hình ví dụ cho sự cố của mình.
Cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào bạn,
Bạn có thể vui lòng giúp tôi với yêu cầu dưới đây.
Sản phẩm ----- đặt hàng
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
sản lượng dự kiến
Sản phẩm ----- đặt hàng ----- đặt hàng ------ đặt hàng
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi cũng cần như vậy. Tôi muốn hiển thị 100 hai lần nếu có trong dữ liệu
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có thể đề xuất một công thức cho điều đó
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn đã bao giờ nhận được phản hồi / giải quyết cho thử thách này chưa? Tôi có cùng một.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có cách nào để làm điều này ngược lại không? Tức là dữ liệu trong các hàng có độ dài khác nhau và do đó, sắp xếp nó thành hai cột? Xem tệp đính kèm.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tôi cũng muốn hoán vị các giá trị trùng lặp (tất cả các giá trị - duy nhất + trùng lặp) và không chỉ các giá trị duy nhất. Bạn có thể cung cấp cho công thức cho điều đó quá.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi cũng cần như vậy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn đã bao giờ nhận được phản hồi / giải quyết cho thử thách này chưa? Tôi có cùng một.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Với công thức bên dưới:

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

Làm cách nào để chuyển đổi dữ liệu bằng cách sử dụng các kết quả so khớp gần đúng? Giả sử, tôi muốn trích xuất tất cả các giá trị từ Cột B khớp với 9 ký tự / chữ số đầu tiên từ Cột A? Cột B có 11 ký tự trong khi A chỉ có 9. cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi cần phải làm hoàn toàn ngược lại với điều này. Tôi có nhiều cột được liên kết với một id hàng và tôi muốn dán chúng vào hai cột
ví dụ tôi có
hàng, giá trị, giá trị1, giá trị2, giá trị3, giá trị4, giá trị..225
100, Dolphin, 255, 9--, sarah, jameson, ...
179, Bộ định tuyến, lũ lụt, thợ nề, 89, mũi



Tôi muốn nó trông như thế này
100, cá heo
100, 255
100, 9--
100, sarah
100, jaemson
179, Bộ định tuyến
179, lũ lụt
179, thợ nề
179, 89
179, mũi
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Dave,
Để giải quyết vấn đề của bạn, vui lòng sử dụng mã VBA bên dưới: (Lưu ý: Khi bạn chọn phạm vi dữ liệu mà bạn muốn chuyển đổi, vui lòng loại trừ hàng tiêu đề.)

Sub TransposeUnique_2 ()
Dim xLRow, xLCount As Long
Dim xRg theo phạm vi
Dim xOutRg dưới dạng phạm vi
Dim xObjRRg dưới dạng phạm vi
Làm mờ xTxt dưới dạng chuỗi
Dim xCount As Long
Dim xVRg theo phạm vi
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Đặt xRg = Application.InputBox ("vui lòng chọn dải dữ liệu:", "Kutools cho Excel", xTxt,,,,, 8)
Đặt xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange)
Nếu xRg không có gì thì thoát Sub
Nếu (xRg.Rows.count <2) Hoặc _
(xRg.Areas.count> 1) Sau đó
MsgBox "Lựa chọn không hợp lệ", "Kutools cho Excel"
Thoát Sub
Cuối Nếu
Đặt xOutRg = Application.InputBox ("vui lòng chọn phạm vi đầu ra (chỉ định một ô):", "Kutools cho Excel", xTxt,,,, 8)
Nếu xOutRg không có gì thì thoát Sub
Application.ScreenUpdating = Sai
xLCount = xRg.Columns.count
Đối với xLRow = 1 Đến xRg.Rows.count
Đặt xObjRRg = Range (xRg.Cells (xLRow, 2), xRg.Cells (xLRow, xLCount)). SpecialCells (xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset (, 1) .PasteSpecial Paste: = xlPasteAll, Operation: = xlNone, SkipBlanks: = False, Transpose: = True
Application.CutCopyMode = Sai
Phạm vi (Ô (xOutRg.Row, xOutRg.Column), Ô (xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)). Giá trị = xRg.Cells (xLRow, 1). Giá trị
Đặt xOutRg = xOutRg.Offset (RowOffset: = xObjRRg.count)
Sau
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn, nó hoạt động hoàn hảo, bạn đã tiết kiệm cho tôi 2 ngày! :)
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Skyyang,
xin vui lòng chia sẻ mã cho 3 cột. Dưới đây là ví dụ:
Tôi muốn dữ liệu như: yogesh@gmail.com cộng đồng 1 chỉ xem cộng đồng 2 chỉ xem ...... goyal@gmail.com cộng đồng 1 xem chỉ cộng đồng 2 xem duy nhất ........

Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, ygoyal,

Để giải quyết vấn đề của bạn, vui lòng áp dụng mã dưới đây:

Sub TransposeUnique_2 ()

Dim xLRow, xLCount As Long

Dim xRg theo phạm vi

Dim xOutRg dưới dạng phạm vi

Dim xObjRRg dưới dạng phạm vi

Làm mờ xTxt dưới dạng chuỗi

Dim xCount As Long

Dim xVRg theo phạm vi

Làm mờ xC, xI, xI1, xI2 dưới dạng số nguyên

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Đặt xRg = Application.InputBox ("vui lòng chọn dải dữ liệu:", "Kutools cho Excel", xTxt,,,,, 8)

Đặt xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange)

Nếu xRg không có gì thì thoát Sub

Nếu (xRg.Rows.Count <2) Hoặc _

(xRg.Areas.Count> 1) Sau đó

MsgBox "Lựa chọn không hợp lệ", "Kutools cho Excel"

Thoát Sub

Cuối Nếu

Đặt xOutRg = Application.InputBox ("vui lòng chọn phạm vi đầu ra (chỉ định một ô):", "Kutools cho Excel", xTxt,,,, 8)

Nếu xOutRg không có gì thì thoát Sub

Application.ScreenUpdating = Sai

xLCount = xRg.Columns.Count

Đối với xLRow = 1 Đến xRg.Rows.Count

Đặt xObjRRg = Range (xRg.Cells (xLRow, 2), xRg.Cells (xLRow, xLCount)). SpecialCells (xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Nếu xC <> 0 Thì

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

Khác

xC = Int (xObjRRg.Count / 2)

Cuối Nếu

xI1 = 1

xI2 = 2

Đối với xI = 1 Đến xC

Phạm vi (xObjRRg.Item (xI1), xObjRRg.Item (xI2)). Sao chép

xOutRg.Offset (, 1) .PasteSpecial Paste: = xlPasteAll, Operation: = xlNone, SkipBlanks: = False, Transpose: = False

Application.CutCopyMode = Sai

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

Đặt xOutRg = xOutRg.Offset (RowOffset: = 1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Sau

Sau

Application.ScreenUpdating = True

End Sub



Hãy cố gắng, hy vọng nó có thể giúp bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào anh em, Mã đang hoạt động ngược lại. Vui lòng tham khảo ảnh chụp màn hình đính kèm về yêu cầu. Dữ liệu có sẵn theo hàng và muốn chuyển dữ liệu thành các cột.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, ygoyal,
Xin lỗi vì đã trả lời muộn, vui lòng áp dụng mã sau, bạn hãy thử nhé!

Sub transposeunique ()

'cập nhật bởi Extendoffice

Dim xLrow As Long

Dim i As Long

Dim xCrit dưới dạng chuỗi

Dim xCol làm bộ sưu tập mới

Dim xRg theo phạm vi

Dim xOutRg dưới dạng phạm vi

Làm mờ xTxt dưới dạng chuỗi

Dim xCount As Long

Dim xVRg theo phạm vi

Làm mờ xFRg, xSRg, xCRg Theo Phạm vi

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Đặt xRg = Application.InputBox ("vui lòng chọn dải dữ liệu (chỉ 3 cột):", "Kutools cho Excel", xTxt,,,, 8)

Đặt xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange)

Nếu xRg không có gì thì thoát Sub

If (xRg.Columns.Count <> 3) Hoặc _

(xRg.Areas.Count> 1) Sau đó

MsgBox "phạm vi được sử dụng chỉ là một khu vực có hai cột", "Kutools cho Excel"

Thoát Sub

Cuối Nếu

Đặt xOutRg = Application.InputBox ("vui lòng chọn phạm vi đầu ra (chỉ định một ô):", "Kutools cho Excel", xTxt,,,, 8)

Nếu xOutRg không có gì thì thoát Sub

Đặt xOutRg = xOutRg.Range (1)

xLRow = xRg.Rows.Count

Đối với i = 2 Đến xLRow

xCol.Thêm xRg.Cells (i, 1) .Value, xRg.Cells (i, 1) .Value

Sau

Application.ScreenUpdating = Sai

Application.ScreenUpdating = Sai

Đối với i = 1 Đến xCol.Count

xCrit = xCol.Item (i)

xOutRg.Offset (i, 0) = xCrit

Trường xRg.AutoFilter: = 1, Criteria1: = xCrit

Đặt xVRg = xRg.Range ("B2: B" & xLRow) .SpecialCells (xlCellTypeVosystem)

Nếu xVRg.Count> xCount thì xCount = xVRg.Count

Đặt xSRg = xRg.Range ("B2: B" & xLRow) .SpecialCells (xlCellTypeVosystem)

Đặt xCRg = xOutRg.Offset (i, 1)

Đối với mỗi xFRg Trong xSRg

xFRg.Copy

xCRg.PasteĐặc biệt

xRg.Range ("B1"). Sao chép

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

xFRg.Offset (0, 1) .Copy

Đặt xCRg = xCRg.Offset (0, 1)

xCRg.PasteĐặc biệt

xRg.Range ("c1"). Sao chép

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

Đặt xCRg = xCRg.Offset (0, 1)

Sau

Application.CutCopyMode = Sai

Sau

xRg.Item (1). Sao chép

xOutRg.PasteĐặc biệt

xRg.AutoFilter

Application.ScreenUpdating = True

End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Này anh em, tôi đã thử sử dụng mã này nhưng excel bị treo khi tôi chạy mã này và không thể thấy đầu ra từ mã trên. xin vui lòng đề nghị những gì phải làm trong trường hợp này.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Mã hoạt động tốt trong sổ làm việc của tôi, bạn sử dụng phiên bản Excel nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Excel 2016
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Mã này cũng hoạt động tốt trong Excel 2016 của tôi, trước tiên hãy thử với một số dữ liệu dải ô smalll.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Đã thử nghiệm trên 160 bản ghi nhưng vẫn có bản sao ở đó.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Skyyang, Bạn thích điều này, có cơ hội nào để bạn có thể làm cho nó hoạt động được với bốn cột không? một lần nữa chỉ sử dụng hai đầu tiên làm bộ so sánh, hoặc tốt hơn vẫn là khả năng chọn số lượng cột trước khi chọn chúng? Tôi đã xem qua kịch bản của bạn, không có manh mối về cách đạt được điều này ...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Skyyang, Bạn thích điều này, có cơ hội nào để bạn có thể làm cho nó hoạt động được với bốn cột không? một lần nữa chỉ sử dụng hai đầu tiên làm bộ so sánh, hoặc tốt hơn vẫn là khả năng chọn số lượng cột trước khi chọn chúng? Tôi đã xem qua kịch bản của bạn, không có manh mối về cách đạt được điều này ...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bro, làm ơn giúp đỡ trong này.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào anh em, vẫn đang đợi sự giúp đỡ của anh
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tương tự như Dave, tôi cần phải làm điều hoàn toàn ngược lại với điều này. Bảng 2 để chuyển sang Bảng 1. Đầu vào Bảng 2, Bảng đầu ra 1.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
= INDEX ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) đã giúp tôi chuyển các giá trị duy nhất của một cột thành một cột mới NHƯNG ... có cách nào để quảng cáo trong hàm sắp xếp để cột mới được tạo được chuyển vị theo thứ tự tăng dần không?


Cảm ơn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cần phải đưa ra cùng một giá trị nhưng đối với các cột được xác định trước sẽ được chọn sẽ là ($ A, $ B) và cần cột đầu ra Vị trí trên $ D $ 1.
Nếu ai có ý tưởng đó sẽ là một sự giúp đỡ tuyệt vời !!!!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, chúng tôi có thể thêm từng hàng và cung cấp đầu ra trong một cột, với chức năng ở trên.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Vì vậy, tôi đang làm việc cho một công ty. Chúng tôi có các cột thông tin như Họ, tên, cấp bậc, mục, số điện thoại, địa chỉ. Có cách nào tôi có thể sử dụng một công thức tương tự để chuyển toàn bộ hàng thông tin thành một cột theo tên không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
= INDEX ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) đã giúp tôi chuyển các giá trị duy nhất của cột A thành một cột mới NHƯNG ... có cách nào để chuyển đổi tất cả các giá trị trong cột B như được đưa ra bên dưới không:

Ngày đặt hàng sản phẩm Ngày đặt hàng Sản phẩm Đặt hàng Đơn hàng Đặt hàng Đơn hàng Đặt hàng
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
BOT 150 3/5/2019
BOT 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
BOT 150 3/8/2019
KTE 150 3/8/2019
COD 150 3/8/2019
BOT 100 3/9/2019
BOT 200 3/10/2019
COD 100 3/10/2019
KTO 200 3/10/2019
COD 150 3/11/2019
KTE 100 3/11/2019
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Macro không hoạt động. Nó vừa sao chép nội dung trong ô A1.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có tập dữ liệu trong Cột A (ID duy nhất) - E. Mỗi hàng có dữ liệu dựa trên ID #, có nhiều hàng cho mỗi ID # nhưng tôi muốn một hàng cho mỗi ID # với tất cả dữ liệu khác trong các cột ( nó sẽ có độ dài tối thiểu là 5 cột và tối đa là 25 cột tùy thuộc vào số lượng mỗi ID duy nhất có). Tôi đã tìm thấy một mã nhưng nó chỉ hoạt động cho hai cột. Tôi đã phải nối bốn cột (không bao gồm ID) rồi phân tách sau khi chạy macro (rất nhiều công việc). Đối với 15,000 hàng dữ liệu, điều này tốn thêm thời gian. Có macro cột vô tận sẽ hoạt động không? Cảm ơn mọi người trước vì sự giúp đỡ của bạn!
MÃ ID MÃ ST # NGÀY
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có tập dữ liệu có nhiều ID trong cột A và có dữ liệu được kết nối trong cột B. Tôi đã sử dụng công thức trên và sửa đổi một chút để tôi chuyển các ô trong cột B thành một hàng dựa trên ID duy nhất được gắn với nó trong cột A. Công thức được sử dụng để xác định các ID duy nhất là: = INDEX ($ A $ 2: $ A $ 13409, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 13409), 0)). Công thức được sử dụng để thực hiện chuyển đổi là: = 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"). Cả hai được đưa ra trong bài báo, chỉ có một chút thay đổi.

Vấn đề là tập dữ liệu của tôi trong cột B có các bản sao, đôi khi xuất hiện cái khác và tôi cần tất cả các giá trị trong cột được hiển thị trong các hàng.

Hình ảnh đính kèm là những gì tôi muốn bảng hiển thị (đây là kích thước mẫu nhỏ, tập dữ liệu thực có hơn 13,000 mục nhập). Những gì đang xảy ra bây giờ là khi một giá trị lặp lại gặp phải, nó sẽ không tính giá trị đó.
tức là Hàng 9 cho ID 11980 bây giờ chỉ hiển thị 0 -31.79 -0.19 -0.74 N / AN / A .... khi những gì tôi cần nó hiển thị thay thế là 0 0 -31.79 -0.19 -0.74 0 0 N / AN / A. ...

Có cách nào để giải quyết vấn đề này và giải quyết nó không?

Cảm ơn bạn trước!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn đã bao giờ nhận được phản hồi / giải quyết cho thử thách này chưa? Tôi có cùng một.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có một tập dữ liệu có 3 cột được trình bày bên dưới:



Cột A Cột B Cột C



Quốc gia 1 Năm 1 Giá trị1

Quốc gia 1 Năm 2 Giá trị2

Quốc gia 1 Năm 3 Giá trị 3,



Quốc gia 2 Năm 1 Giá trị1

Quốc gia 2 Năm 3 Giá trị 3,

...........



Tôi cần kết hợp 3 cột này trong một bảng như sau:

Năm 1 Năm 2 Năm 3 ................................. NămX



Country1 Value1 Value2 Value3

Country2 Value1 #Missing Value3

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

CountryX Valuex ..................





Vấn đề tôi đang gặp phải là đối với một số dữ liệu trong cột A, tôi không có giá trị cho mỗi năm, chỉ cho một số. (Ví dụ: quốc gia 2 thiếu giá trị cho Năm 2)





Có cách nào để giải quyết vấn đề này và giải quyết nó không?



Cảm ơn bạn trước!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
bạn có thể vui lòng chia sẻ mã nếu có 2 cột được sao chép thay vì 1. dưới đây là ví dụ.
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL