[ Hỏi] Sẵp xếp dữ liệu theo 1 tham chiếu giống nhau (1 người xem)

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

huunghia37

Thành viên mới
Tham gia
22/10/15
Bài viết
5
Được thích
0
Mình có vấn đề cần sự giúp đỡ như sau :
Các bạn xem file và mình muốn bằng cách nào có thể tìm số ở cột B trùng cột D và sắp xếp lại cột A và C cho nó ngang hàng thông qua B & D giống nhau .

Vidu:
dòng 5: Cột A (Trần Thị Thọ ) - Cột B : 5521583248972
dòng 23: Cột C ( Tran Van Tuc) - Cột D: 5521583248972

Kết quả mong muốn : Cột A (Trần Thị Thọ ) ngang hàng Cột C ( Tran Van Tuc)

File của mình dữ liệu lên > 10.000 dòng nên mong bạn nào có cách tối ưu giúp mình với , mình cũng đang cần gấp .
Cảm ơn đã đọc bài nhé !
 

File đính kèm

1./ Chạy macro này:
PHP:
Option Explicit
Sub XepDS()
 Dim Arr(), dArr()
 Dim Rws As Long, J As Long, W As Long
 
 Rws = [b2].CurrentRegion.Rows.Count
 Arr() = [A1].Resize(Rws, 2).Value
 dArr() = [A1].Resize(Rws, 4).Value
 For J = 1 To UBound(Arr())
    For W = 1 To UBound(dArr())
        If Arr(J, 2) = dArr(W, 4) Then
            dArr(W, 1) = Arr(J, 1)
            dArr(W, 2) = Arr(J, 2)
           Exit For
        End If
    Next W
 Next J
 [f1].Resize(Rws, 4) = dArr()   '<=|'
End Sub

2./ Kiểm tra số liệu ở bảng mới có;

3./ Sửa lại câu lệnh gần cuối (có đánh dấu) khi công đoạn kiểm tra là 'Đạt'.
 
Chỉnh sửa lần cuối bởi điều hành viên:
1./ Chạy macro này:
PHP:
Option Explicit
Sub XepDS()
 Dim Arr(), dArr()
 Dim Rws As Long, J As Long, W As Long
 
 Rws = [b2].CurrentRegion.Rows.Count
 Arr() = [A1].Resize(Rws, 2).Value
 dArr() = [A1].Resize(Rws, 4).Value
 For J = 1 To UBound(Arr())
    For W = 1 To UBound(dArr())
        If Arr(J, 2) = dArr(W, 4) Then
            dArr(W, 1) = Arr(J, 1)
            dArr(W, 2) = Arr(J, 2)
           Exit For
        End If
    Next W
 Next J
 [f1].Resize(Rws, 4) = dArr()   '<=|'
End Sub

2./ Kiểm tra số liệu ở bảng mới có;

3./ Sửa lại câu lệnh gần cuối (có đánh dấu) khi công đoạn kiểm tra là 'Đạt'.

Mình không biết sử dụng macro giờ làm sao đây , có cách nào khác không bạn ?
 
Mình không biết sử dụng macro giờ làm sao đây , có cách nào khác không bạn ?

(1) Ai biết đâu nà, thấy trong file của bạn có sẵn 1 con macro đồ sộ rồi mà!

(2) Với vạn dòng dữ liệu thì quên công thức đi; Tìm xem có fương thức nào đó trong excel mà áp dụng thôi.

(3) Lần sau nêu rõ iêu cầu hơn câu này nha:
[thongbao]Các bạn xem file và mình muốn bằng cách nào có thể tìm số ở cột B trùng cột D và sắp xếp lại cột A và C cho nó ngang hàng thông qua B & D giống nhau .[/thongbao]
 
(1) Ai biết đâu nà, thấy trong file của bạn có sẵn 1 con macro đồ sộ rồi mà!

(2) Với vạn dòng dữ liệu thì quên công thức đi; Tìm xem có fương thức nào đó trong excel mà áp dụng thôi.

(3) Lần sau nêu rõ iêu cầu hơn câu này nha:
[thongbao]Các bạn xem file và mình muốn bằng cách nào có thể tìm số ở cột B trùng cột D và sắp xếp lại cột A và C cho nó ngang hàng thông qua B & D giống nhau .[/thongbao]
- Cái file vô tình nó có thôi chứ mình k biết là nó có gì trong đó luôn mà !
- MÌnh cũng nêu rõ yêu cầu rồi mà , tức là mình không biết cách nào để làm ra đc kết quả như vậy
 
Bạn ạ, không ai giúp bạn đâu, code trên kia chạy cũng sai
 
bạn biết ai có thể làm đc yêu cầu đó giới thiệu giúp với , mình thuê họ luôn cũng đc , chứ công việc mình gấp quá

Của bạn đây.
Tôi mạn phép mượn code ở bài số #2 thôi.
p/s: Nếu đúng yêu cầu của bạn thì... Tôi làm trước lấy công sau được chứ? há há --=0--=0
 

File đính kèm

Bạn này "ác" nha, thấy người khác sai mà không chịu chỉ rõ cho người ta sửa!

[ThongBao]Bạn ạ, không ai . . .đâu, code trên kia chạy cũng sai[/Thongbao]
 
Mình có vấn đề cần sự giúp đỡ như sau :
Các bạn xem file và mình muốn bằng cách nào có thể tìm số ở cột B trùng cột D và sắp xếp lại cột A và C cho nó ngang hàng thông qua B & D giống nhau .

Vidu:
dòng 5: Cột A (Trần Thị Thọ ) - Cột B : 5521583248972
dòng 23: Cột C ( Tran Van Tuc) - Cột D: 5521583248972

Kết quả mong muốn : Cột A (Trần Thị Thọ ) ngang hàng Cột C ( Tran Van Tuc)

File của mình dữ liệu lên > 10.000 dòng nên mong bạn nào có cách tối ưu giúp mình với , mình cũng đang cần gấp .
Cảm ơn đã đọc bài nhé !
Vui lòng bấm nút "Run" để chạy thủ tục tìm kiếm
Tôi dựa vào file của bạn, do cái office của tôi nó hết hạng, nên chỉ dò tìm tối đa 60000 dong thôi, vậy nên nếu bạn muốn tăng số dòng lên thì nhờ ai biết cái này thay đổi những số màu đỏ ở code dưới đây là được.
Mã:
Private Sub CommandButton1_Click()
Dim ArB(), ArD(), ArSX()
Dim rB As Long, rD As Long, i As Long, k As Long, m As Long
[f1].Resize(60000, 3).ClearContents
rB = [b[COLOR=#ff0000]60000[/COLOR]].End(xlUp).Row
rD = [d[COLOR=#ff0000]60000[/COLOR]].End(xlUp).Row
ArB = Range("a1:b" & rB).Value
ArD = Range("c1:d" & rD).Value
ReDim ArSX(1 To UBound(ArB, 1), 1 To 3)
For i = 1 To UBound(ArB, 1)
    For m = 1 To UBound(ArD, 1)
        If ArB(i, 2) = ArD(m, 2) Then
            k = k + 1
            ArSX(k, 1) = ArB(i, 2)
            ArSX(k, 2) = ArB(i, 1)
            ArSX(k, 3) = ArD(m, 1)
        If ArB(i, 2) = ArD(m, 2) Then Exit For
        End If
    Next m
Next i
If k > 0 Then [f1].Resize(k, 3).Value = ArSX
            
End Sub
 

File đính kèm

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

Back
Top Bottom