Chuyển dữ liệu từ bảng ngang thành bảng dọc (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Excel my love_1

Thành viên thường trực
Tham gia
12/11/19
Bài viết
330
Được thích
183
Nhờ mọi người chuyển giúp dữ liệu ở bảng gốc (các học viên mà ở cột môn học có đánh số hoặc đánh dấu x ) đang dàn ngang, chuyển thành dạng danh sách (dọc)
Em đã làm ví dụ 1 vài học viên đầu, mong mọi giúp đỡ công thức cho các bạn còn lại
xin cảm ơn mọi người
 

File đính kèm

Lần chỉnh sửa cuối:
Chính đạo
Mã:
K3=IF(COUNTIF(K$2:K2,K2)<COUNTA(INDEX($E$3:$H$24,MATCH(K2,$A$3:$A$24,),)),K2,INDEX($A$3:$A$24,IFERROR(MATCH(K2,$A$3:$A$24,0),0)+1))
Mã:
O3=INDEX($E$2:$H$2,SMALL(IF(OFFSET($E$2:$H$2,MATCH(K3,$A$3:$A$24,0),)="x",COLUMN($E$2:$H$2)-4),COUNTIF(K$3:K3,K3)))
Tà đạo
Mã:
K3=INDEX($A$3:$A$24,SMALL(IF($E$3:$H$24="x",ROW($E$3:$H$24)-2,""),ROW(A1)))
Mã:
O3=INDEX($E$2:$H$2,MOD(SMALL(IF($E$3:$H$24="x",ROW($A$3:$A$24)*10+COLUMN($E$2:$H$2)-4),ROW(A1)),10))
 
Chính đạo
Mã:
K3=IF(COUNTIF(K$2:K2,K2)<COUNTA(INDEX($E$3:$H$24,MATCH(K2,$A$3:$A$24,),)),K2,INDEX($A$3:$A$24,IFERROR(MATCH(K2,$A$3:$A$24,0),0)+1))
Mã:
O3=INDEX($E$2:$H$2,SMALL(IF(OFFSET($E$2:$H$2,MATCH(K3,$A$3:$A$24,0),)="x",COLUMN($E$2:$H$2)-4),COUNTIF(K$3:K3,K3)))
Tà đạo
Mã:
K3=INDEX($A$3:$A$24,SMALL(IF($E$3:$H$24="x",ROW($E$3:$H$24)-2,""),ROW(A1)))
Mã:
O3=INDEX($E$2:$H$2,MOD(SMALL(IF($E$3:$H$24="x",ROW($A$3:$A$24)*10+COLUMN($E$2:$H$2)-4),ROW(A1)),10))
Cảm ơn anh, mong anh sửa lại công thức giúp ạ
em vừa up lại file ở phần các môn học có cả số và đánh dấu "x" ạ
 
Không ra anh à.
Vì Ý em là trong vùng dữ liệu tra cứu nó có "x" và có cả số ạ
Anh xem file em up lại ạ
Cảm ơn anh
Thử với VBA xem sao.
PHP:
Option Explicit

Public Sub Gpe()
Dim sArr(), dArr(), I As Long, J As Long, K As Long, n As Long, R As Long
With Sheet1
    sArr = .Range("A2", .Range("A100000").End(xlUp)).Resize(, 8).Value
    R = UBound(sArr)
    ReDim dArr(1 To R * 4, 1 To 5)
    If R > 1 Then
        For I = 2 To R
            For J = 5 To 8
                If sArr(I, J) <> Empty Then
                    K = K + 1
                    For n = 1 To 4
                        dArr(K, n) = sArr(I, n)
                    Next n
                    dArr(K, 5) = sArr(1, J)
                End If
            Next J
        Next I
    End If
    .Range("K3").Resize(100000, 5).ClearContents
    If K Then .Range("K3").Resize(K, 5) = dArr
End With
End Sub
 
Các công thức là công thức mảng.
Tôi rất dị ứng với các phản hồi "không được", "không ra" và không có gì thêm. Nếu không đúng thì hãy gửi file bạn đã nhập công thức nhưng kết quả không đúng.
 
Các công thức là công thức mảng.
Tôi rất dị ứng với các phản hồi "không được", "không ra" và không có gì thêm. Nếu không đúng thì hãy gửi file bạn đã nhập công thức nhưng kết quả không đúng.
Em gửi lại file đã lắp công thức với điều kiện "<>x"
Vì trong bản dữ liệu vừa có "x" vừa có số nên
trong bảng kết quả, những học viên nào mà có số thì ra lỗi #NUM!
Mong anh xem lại giúp ạ
Cảm ơn anh
Bài đã được tự động gộp:

Thử với VBA xem sao.
PHP:
Option Explicit

Public Sub Gpe()
Dim sArr(), dArr(), I As Long, J As Long, K As Long, n As Long, R As Long
With Sheet1
    sArr = .Range("A2", .Range("A100000").End(xlUp)).Resize(, 8).Value
    R = UBound(sArr)
    ReDim dArr(1 To R * 4, 1 To 5)
    If R > 1 Then
        For I = 2 To R
            For J = 5 To 8
                If sArr(I, J) <> Empty Then
                    K = K + 1
                    For n = 1 To 4
                        dArr(K, n) = sArr(I, n)
                    Next n
                    dArr(K, 5) = sArr(1, J)
                End If
            Next J
        Next I
    End If
    .Range("K3").Resize(100000, 5).ClearContents
    If K Then .Range("K3").Resize(K, 5) = dArr
End With
End Sub
Cảm ơn anh nhiều ạ, điều kiện <> Empty là tổng quát cho "x" và số đúng không ạ
Bài đã được tự động gộp:

Vậy đâu ra được bảng kết quả mong muốn của bạn đã làm.

Phải là cột E:H trong 1 dòng có "x' HOẶC có số chứ.
Vâng đúng là vậy ạ
 

File đính kèm

Em gửi lại file đã lắp công thức với điều kiện "<>x"
Vì trong bản dữ liệu vừa có "x" vừa có số nên
trong bảng kết quả, những học viên nào mà có số thì ra lỗi #NUM!
Mong anh xem lại giúp ạ
Bạn cố gắng đọc kỹ lại bài #4 nha. Có mấy chữ thôi.
 
Web KT

Bài viết mới nhất

Back
Top Bottom