lọc dữ liệu hai điều kiện

Liên hệ QC

blackmen204

Thành viên mới
Tham gia
7/9/08
Bài viết
1
Được thích
0
chào anh chị,
em là thành viên mới của diến đàn.
xin anh chị giúp em cách lọc dữ liệu hai điều kiện này nha:
bảng 1: danh sách khách hàng cầm cố chứng khoán.
bảng 2: danh sách khách bán chứng khoán đã cầm cố.
yêu cầu: lọc dữ liệu từ bảng 2 vào bảng 1.
em gửi file ví dụ đính kèm cho cụ thể.
rất mong anh chị giúp em.
 

File đính kèm

Gỏi đến bạn macro & vài điều cần lưu ý

(1) Những điều cần lưu ý, đó là:

* Ví dụ của bạn đưa ra thiếu đặc trưng; Việc này sẽ làm cho bạn chậm nhận được kết quả hộ trợ từ các NICKs trong cộng đồng. Những điểm thiếu đó như sau:
+ Các mệnh giá bạn đưa ra có nhiều giống nhau là không nên; Chúng cần khác nhau để dễ dàng kiểm soát kết quả của macro
+ Bạn chưa có dòng dữ liệu nào có cùng mã chứng khoán, nhưng khác nhau về tên cỗ phiếu
+ Bạn chưa có dòng dữ liệu nào có cùng mã chứng khoán, nhưng khác hoàn toàn về tên cỗ phiếu

* Đặc tên các sheets có hai cái sai:
+ Không nên lạm dụng khoảng trống trong nớ;
+ Không nên dùng tiếng Việt chổ ni;
+ Không nên quá dài, nhưng chả tăng thêm thông tin.

(Nếu cần, bạn xem trong file đính kèm)

(2) Macro đây, xin mời:
PHP:
Option Explicit
Sub CopyFor2()
 Dim Sh As Worksheet:            Dim MyAdd As String
 Dim Clls As Range, Rng As Range, sRng As Range, cRng As Range
 
 Sheets("CCo").Select:           Set Clls = Selection
 If Not Intersect(Clls, Columns("D:D")) Is Nothing Then
   Set Sh = Sheets("GToa")
   Set Rng = Sh.Range(Sh.[A3], Sh.[A3].End(xlDown))
   Set sRng = Rng.Find(Clls.Offset(, -3).Value, , xlFormulas, xlWhole)
   If sRng Is Nothing Then
      Clls.Value = "???"
   Else
      MyAdd = sRng.Address
      Do
         If cRng Is Nothing Then
            Set cRng = sRng
         Else
            Set cRng = Union(cRng, sRng)
         End If
         Set sRng = Rng.FindNext(sRng)
      Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
      If cRng.Cells.Count = 1 Then
         If cRng.Offset(, 1).Value = Clls.Offset(, -2).Value Then _
            Clls.Value = cRng.Offset(, 2).Value
      ElseIf cRng.Cells.Count > 1 Then
         Set sRng = cRng.Offset(, 1).Find(Clls.Offset(, -2).Value, , , xlWhole)
         If sRng Is Nothing Then
            Clls.Value = "??"
         Else
            Clls.Value = sRng.Offset(, 1).Value
         End If
      End If
   End If
 End If
End Sub
 

File đính kèm

chào anh chị,
em là thành viên mới của diến đàn.
xin anh chị giúp em cách lọc dữ liệu hai điều kiện này nha:
bảng 1: danh sách khách hàng cầm cố chứng khoán.
bảng 2: danh sách khách bán chứng khoán đã cầm cố.
yêu cầu: lọc dữ liệu từ bảng 2 vào bảng 1.
em gửi file ví dụ đính kèm cho cụ thể.
rất mong anh chị giúp em.
Bạn dùng hàm sumproduuct nhé.
Mã:
=SUMPRODUCT(('giải tỏa'!$B$4:$B$6=B3)*('giải tỏa'!$A$4:$A$6=A3)*('giải tỏa'!$C$4:$C$6))
 
Bạn dùng hàm sumproduuct nhé.
Mã:
=SUMPRODUCT(([COLOR=red]'giải tỏa'[/COLOR]!$B$4:$B$6=B3)*([COLOR=red]'giải tỏa'[/COLOR]!$A$4:$A$6=A3)*([COLOR=red]'giải tỏa'[/COLOR]!$C$4:$C$6))
Cho em hỏi chút về công thức trên,
Giả sử mình không tham chiếu trực tiếp các tên sheet mà mình tham chiếu qua 1 ô nào đó, nhờ anh kiểm tra giùm công thức sau sai chổ nào mà nó không ra nhé
Mã:
=SUMPRODUCT((INDIRECT("'"&E4&"'!$B$4:$B$6=B4"))*((INDIRECT("'"&E4&"'!$A$4:$A$6=A4")*((INDIRECT("'"&E4&"'!$C$4:$C$6"))))))
cám ơn anh nhiều
 

File đính kèm

Cho em hỏi chút về công thức trên,
Giả sử mình không tham chiếu trực tiếp các tên sheet mà mình tham chiếu qua 1 ô nào đó, nhờ anh kiểm tra giùm công thức sau sai chổ nào mà nó không ra nhé
Mã:
=SUMPRODUCT((INDIRECT("'"&E4&"'!$B$4:$B$6=B4"))*((INDIRECT("'"&E4&"'!$A$4:$A$6=A4")*((INDIRECT("'"&E4&"'!$C$4:$C$6"))))))
cám ơn anh nhiều
Phải vầy mới đúng chứ:
=SUMPRODUCT((INDIRECT("'"&E4&"'!$B$4:$B$6")=B4)*(INDIRECT("'"&E4&"'!$A$4:$A$6")=A4)*(INDIRECT("'"&E4&"'!$C$4:$C$6")))
Sai tại các vị trí "đóng ngoặc"
 
Cho em hỏi chút về công thức trên,
Giả sử mình không tham chiếu trực tiếp các tên sheet mà mình tham chiếu qua 1 ô nào đó, nhờ anh kiểm tra giùm công thức sau sai chổ nào mà nó không ra nhé
Mã:
=SUMPRODUCT((INDIRECT("'"&E4&"'!$B$4:$B$6=B4"))*((INDIRECT("'"&E4&"'!$A$4:$A$6=A4")*((INDIRECT("'"&E4&"'!$C$4:$C$6"))))))
cám ơn anh nhiều

Bạn so sánh hai công thức này xem nhé
CT đúng:
Mã:
=SUMPRODUCT((INDIRECT("'"&E4&"'!B4:B6")=B4)*(INDIRECT("'"&E4&"'!A4:A6")=A4)*(INDIRECT("'"&E4&"'!C4:C6")))
CT sai:
Mã:
=SUMPRODUCT((INDIRECT("'"&E4&"'!$B$4:$B$6"=B4))*((INDIRECT("'"&E4&"'!$A$4:$A$6"=A4)*((INDIRECT("'"&E4&"'!$C$4:$C$6"))))))
Chủ yếu là các dấu " và )
 
Web KT

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

Back
Top Bottom