Lọc dữ liệu không dùng VLOOKUP (1 người xem)

  • Thread starter Thread starter USB1394
  • Ngày gửi Ngày gửi

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

USB1394

Thành viên hoạt động
Tham gia
20/12/08
Bài viết
173
Được thích
12
Nghề nghiệp
Lính triều đình
Mình có 2 bảng dữ liệu cần trích lọc ra bảng 3 . Nhưng do dữ liệu trong bảng 1 nhiều (khoảng 40.000 dòng) nên mình không thể dùng hàm VLOOKUP được . Mình có gởi file mẫu , mong các Bạn giúp đỡ , xin cám ơn+-+-+-++-+-+-++-+-+-+
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có 2 bảng dữ liệu cần trích lọc ra bảng 3 . Nhưng do dữ liệu trong bảng 1 nhiều (khoảng 40.000 dòng) nên mình không thể dùng hàm VLOOKUP được . Mình có gởi file mẫu , mong các Bạn giúp đỡ , xin cám ơn+-+-+-++-+-+-++-+-+-+
Tại sao lại không khả thi với Vlookup nhỉ! Bạn sợ dung lượng file sẽ quá lớn à! Nếu vậy bạn có thể dùng vlookup, sau đó paste value vì đơn vị của 1 sản phầm thì đâu có thay đổi được. Nếu có thêm dòng thì làm tương tự cho những dòng thêm vào.
 
Tại sao lại không khả thi với Vlookup nhỉ! Bạn sợ dung lượng file sẽ quá lớn à! Nếu vậy bạn có thể dùng vlookup, sau đó paste value vì đơn vị của 1 sản phầm thì đâu có thay đổi được. Nếu có thêm dòng thì làm tương tự cho những dòng thêm vào.
Mình thấy cách dùng hàm VLOOKUP sẽ chậm mà nếu dữ liệu nhiều (khoảng 40.000 dòng) thì sẽ lâu . Mình thấy bên Access có cách tạo truy vấn để lọc lấy nội dung cần xử lý . Không biết Excel có làm được không Bạn
 
Mình thấy cách dùng hàm VLOOKUP sẽ chậm mà nếu dữ liệu nhiều (khoảng 40.000 dòng) thì sẽ lâu . Mình thấy bên Access có cách tạo truy vấn để lọc lấy nội dung cần xử lý . Không biết Excel có làm được không Bạn

Up file thật lên mình thử xem nào -->
 
Mình ví dụ thế này nhé . CSDL có rất nhiều bảng con liên kết với nhau . Việc trích lọc dữ liệu bằng VLOOKUP sẽ duyệt từng dòng mà thực tế yêu cầu trích lọc rất đa dạng (có nhiều field) ,số dòng duyệt cũng nhiều vì thế mình cần tham khảo : hướng và phương pháp thực hiện trước khi mình xây dựng CSDL . Vì thế mình gởi file ví dụ lên ,mong bạn cùng mọi người giúp đỡ ,xin cám ơn
 
Mình ví dụ thế này nhé . CSDL có rất nhiều bảng con liên kết với nhau . Việc trích lọc dữ liệu bằng VLOOKUP sẽ duyệt từng dòng mà thực tế yêu cầu trích lọc rất đa dạng (có nhiều field) ,số dòng duyệt cũng nhiều vì thế mình cần tham khảo : hướng và phương pháp thực hiện trước khi mình xây dựng CSDL . Vì thế mình gởi file ví dụ lên ,mong bạn cùng mọi người giúp đỡ ,xin cám ơn

Bạn thích chơi kiểu " ví dụ " thì mình cũng ví dụ 2 cách làm cho bạn :
* Đưa toàn bộ dữ liệu dưới dạng mảng , rồi xử lý trên mảng :
* Thích kiểu truy vấn giống SQL thì tham khảo code dưới thử xem :
[GPECODE=vb]
Sub NMH()
Dim cnn As Object, rst As Object
Dim SQL As String
Set cnn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.recordset")
With cnn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.FullName & _
";Extended Properties=""Excel 12.0;HDR=No;IMEX=1;"";"


.Open
End With
SQL = "SELECT T1.f1,T1.f2,T2.f2 " & _
"FROM [Sheet1$B5:D12] T1 " & _
"INNER JOIN [Sheet1$I5:J12] T2 ON T1.f3 = T2.f1"
rst.Open SQL, cnn, 3, 3, 1
[B29:D100].ClearContents: [B29].CopyFromRecordset rst
rst.Close: Set rst = Nothing
cnn.Close: Set cnn = Nothing
End Sub
[/GPECODE]
 
Lần chỉnh sửa cuối:
Mình ví dụ thế này nhé . CSDL có rất nhiều bảng con liên kết với nhau . Việc trích lọc dữ liệu bằng VLOOKUP sẽ duyệt từng dòng mà thực tế yêu cầu trích lọc rất đa dạng (có nhiều field) ,số dòng duyệt cũng nhiều vì thế mình cần tham khảo : hướng và phương pháp thực hiện trước khi mình xây dựng CSDL . Vì thế mình gởi file ví dụ lên ,mong bạn cùng mọi người giúp đỡ ,xin cám ơn
Dữ liệu quá nhiều, liên kết nhiều bảng.... thì nên dùng VBA hoặc ADO xử nó.
Tặng "đồng hương" 1 code VBA nè:
 

File đính kèm

@USB1394:Mình dùng INDEX để giải quyết file mẫu của bạn, bạn xem file đính kèm nhé (phần công thức tô vàng trong file mẫu) !
 

File đính kèm

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

Back
Top Bottom