Nhặt dữ liệu từ 1 bảng sang bảng khác có điều kiện (1 người xem)

Liên hệ QC

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

tombkaiser

Thành viên mới
Tham gia
25/6/10
Bài viết
3
Được thích
0
Chào các anh chị,
tôi đang gặp 1 trường hợp cần "nhặt" dữ liệu lộn xộn từ 1 bảng này sang 1 bảng khác có thứ tự xác định
dữ liệu tương đối lớn, nên tôi không thể nhặt thủ công được.
tôi gửi file đính kèm chi tiết hơn.
rất mong các anh chị giúp đỡ hoặc chỉ hướng giải quyết
cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Chào các anh chị,
tôi đang gặp 1 trường hợp cần "nhặt" dữ liệu lộn xộn từ 1 bảng này sang 1 bảng khác có thứ tự xác định
dữ liệu tương đối lớn, nên tôi không thể nhặt thủ công được.
tôi gửi file đính kèm chi tiết hơn.
rất mong các anh chị giúp đỡ hoặc chỉ hướng giải quyết
cảm ơn.
sửa lại tiêu đề. bỏ chữ help sẽ có người giúp. tôi có xem qua file. nếu chỉ sắp xếp từ bảng 1 sáng bảng 2 theo abc thì không phải là không làm được.
 
Bạn thử với code này xem sao

PHP:
Sub Nhat_So_Lieu()

Dim i, j, k, l, cRow As Integer
Dim SL As String
Dim SArr, Target, Result

SArr = Sheet1.Range("A3:C4").Value
Target = Range("E2:I4").Value

For i = 1 To UBound(SArr, 1)
    For j = 1 To UBound(SArr, 2)
        SL = Left(SArr(i, j), 1)
            If SL = "A" Then
                cRow = 2
                Target(i + 1, cRow) = SArr(i, j)
            ElseIf SL = "B" Then
                cRow = 3
                Target(i + 1, cRow) = SArr(i, j)
            ElseIf SL = "C" Then
                cRow = 4
                Target(i + 1, cRow) = SArr(i, j)
            ElseIf SL = "D" Then
                cRow = 5
                Target(i + 1, cRow) = SArr(i, j)
            End If
        
    Next
Next
Range("M2").Resize(UBound(Target, 1), UBound(Target, 2)).Value = Target
End Sub
 
Bạn thử với code này xem sao

PHP:
Sub Nhat_So_Lieu()

Dim i, j, k, l, cRow As Integer
Dim SL As String
Dim SArr, Target, Result

SArr = Sheet1.Range("A3:C4").Value
Target = Range("E2:I4").Value

For i = 1 To UBound(SArr, 1)
    For j = 1 To UBound(SArr, 2)
        SL = Left(SArr(i, j), 1)
            If SL = "A" Then
                cRow = 2
                Target(i + 1, cRow) = SArr(i, j)
            ElseIf SL = "B" Then
                cRow = 3
                Target(i + 1, cRow) = SArr(i, j)
            ElseIf SL = "C" Then
                cRow = 4
                Target(i + 1, cRow) = SArr(i, j)
            ElseIf SL = "D" Then
                cRow = 5
                Target(i + 1, cRow) = SArr(i, j)
            End If
       
    Next
Next
Range("M2").Resize(UBound(Target, 1), UBound(Target, 2)).Value = Target
End Sub

Tôi không rành về VBA lắm, nhưng sau khi copy code của bạn và ALT+F8 thì tôi không thấy lệnh chạy, thử step info thì thấy bôi vàng vài chỗ. anh có thể giúp tôi rõ hơn ko ?
 
Chào các anh chị,
tôi đang gặp 1 trường hợp cần "nhặt" dữ liệu lộn xộn từ 1 bảng này sang 1 bảng khác có thứ tự xác định
dữ liệu tương đối lớn, nên tôi không thể nhặt thủ công được.
tôi gửi file đính kèm chi tiết hơn.
rất mong các anh chị giúp đỡ hoặc chỉ hướng giải quyết
cảm ơn.
Dùng công thức này cho F3
Mã:
=IFERROR(OFFSET($A$2,ROWS(E$2:E3)-1,MATCH(F$2&"*",OFFSET($A$2,ROWS(E$2:E3)-1,,,3),0)-1),"")
 
tôi đang gặp 1 trường hợp cần "nhặt" dữ liệu lộn xộn từ 1 bảng này sang 1 bảng khác có thứ tự xác định
Dùng thử công thức này tại F3:

=IFERROR(LOOKUP(2,1/(LEFT($B3:$C3,LEN(F$2))=F$2),$B3:$C3),"")

Sao chép qua phải và xuống dưới.

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

Hoặc thử:

=IFERROR(INDEX($B3:$C3,MATCH(F2&"*",$B3:$C3,0)),"")
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom