Cách Nào Trích lọc DL BÁN theo 2 điều kiện TÊN KHÁCH HÀNG + THÁNG ĐỐI CHIẾU.

Liên hệ QC

tuhue79

Thành viên mới
Tham gia
4/9/14
Bài viết
38
Được thích
1
Bên mình quản lý bán hàng bằng file bán hàng tổng hợp từ nhiều tháng. Làm sao hàng tháng mình có thể trích lọc dữ liệu cho từng khách riêng biệt theo 2 điều kiện tên khách hàng và tháng muốn lọc đối chiếu ra sheet mới. Các Pro lọc dữ liệu xin chỉ giáo giúp mình.
Mình có up file mẫu. DL thực tế ở bảng tổng tợp rất nhiều cột . Mình chỉ đưa VD đơn giản để biết cách dùng hàm.
Xin cảm ơn các Pro nhiều nhé.
 

File đính kèm

  • hoi-TrichXuatDL.xlsx
    11.8 KB · Đọc: 19
Bên mình quản lý bán hàng bằng file bán hàng tổng hợp từ nhiều tháng. Làm sao hàng tháng mình có thể trích lọc dữ liệu cho từng khách riêng biệt theo 2 điều kiện tên khách hàng và tháng muốn lọc đối chiếu ra sheet mới. Các Pro lọc dữ liệu xin chỉ giáo giúp mình.
Mình có up file mẫu. DL thực tế ở bảng tổng tợp rất nhiều cột . Mình chỉ đưa VD đơn giản để biết cách dùng hàm.
Xin cảm ơn các Pro nhiều nhé.
Sử dụng PivotTable đi bạn.
 
Tôi có cái hàm đúng ý bạn nhưng nó nó liệt kê tất cả các khách hàng. Vấn đề còn lại là lấy ra riêng chỉ 1 ông thôi.
 
Tôi có cái hàm đúng ý bạn nhưng nó nó liệt kê tất cả các khách hàng. Vấn đề còn lại là lấy ra riêng chỉ 1 ông thôi.
Dữ liệu lọc nó tự xổ ra bên dưới đó bạn. Mình lọc 1 ông cũng ok. Đưa thêm đk cho nó and thì báo khg được. Nên rối quá tìm các PRo giúp chiêu.
 
Bên mình quản lý bán hàng bằng file bán hàng tổng hợp từ nhiều tháng. Làm sao hàng tháng mình có thể trích lọc dữ liệu cho từng khách riêng biệt theo 2 điều kiện tên khách hàng và tháng muốn lọc đối chiếu ra sheet mới. Các Pro lọc dữ liệu xin chỉ giáo giúp mình.
Mình có up file mẫu. DL thực tế ở bảng tổng tợp rất nhiều cột . Mình chỉ đưa VD đơn giản để biết cách dùng hàm.
Xin cảm ơn các Pro nhiều nhé.
Thử thêm cột phụ nhé - Xem lại File
 

File đính kèm

  • hoi-TrichXuatDL.xlsx
    20.2 KB · Đọc: 14
Dữ liệu lọc nó tự xổ ra bên dưới đó bạn. Mình lọc 1 ông cũng ok. Đưa thêm đk cho nó and thì báo khg được. Nên rối quá tìm các PRo giúp chiêu.
Tôi tưởng cộng theo tháng nhưng đây là liệt kê các dòng trong tháng. Đây là code và file, thay giá trị mong muốn cho các biến KH và Thang.
Rich (BB code):
Sub LocKHTheoThang()
Dim arr, arrKQ, KH$
Dim i&, j&, k&, Thang&

KH = "KH2"
Thang = 1
arr = Sheet1.Range("G3:K" & Sheet1.Range("K" & Rows.Count).End(xlUp).Row)
ReDim arrKQ(1 To UBound(arr, 1), 1 To UBound(arr, 2))
For i = 1 To UBound(arr)
    If arr(i, 1) = KH And Month(arr(i, 2)) = Thang Then
        k = k + 1
        For j = 1 To UBound(arr, 2)
            arrKQ(k, j) = arr(i, j)
        Next
    End If
Next
Sheet2.Range("A12").Resize(k, UBound(arr, 2)) = arrKQ
End Sub
 

File đính kèm

  • hoi-TrichXuatDL.xlsm
    18.4 KB · Đọc: 14
Tôi tưởng cộng theo tháng nhưng đây là liệt kê các dòng trong tháng. Đây là code và file, thay giá trị mong muốn cho các biến KH và Thang.
Rich (BB code):
Sub LocKHTheoThang()
Dim arr, arrKQ, KH$
Dim i&, j&, k&, Thang&

KH = "KH2"
Thang = 1
arr = Sheet1.Range("G3:K" & Sheet1.Range("K" & Rows.Count).End(xlUp).Row)
ReDim arrKQ(1 To UBound(arr, 1), 1 To UBound(arr, 2))
For i = 1 To UBound(arr)
    If arr(i, 1) = KH And Month(arr(i, 2)) = Thang Then
        k = k + 1
        For j = 1 To UBound(arr, 2)
            arrKQ(k, j) = arr(i, j)
        Next
    End If
Next
Sheet2.Range("A12").Resize(k, UBound(arr, 2)) = arrKQ
End Sub
Ok, cảm ơn Pro nhiều nhé.
 
File dùng thêm cột phụ nhé
 

File đính kèm

  • hoi-TrichXuatDL.xlsx
    17.1 KB · Đọc: 7
File dùng thêm cột phụ nhé
Mình vừa học trên diễn đàn về mảng, bạn xem code mình ok ko nhé?
Mã:
Sub LOCDULIEU()
'Copy cong thuc tinh so du dau ky vao VBA
'Luu y neu cong thuc co dau " thi tang them "" vi VBA quy dinh nhu vay
Dim arr() ' manng data
Dim kq() ' mang ket qua
Dim lr As Long ' tim donng cuoi
Dim i As Long ' chay vong lap
Dim a As Long ' bien kich thuoc mang kq
Dim KH As String
Dim DK As Boolean
Dim DK1 As Boolean
Dim THANG As String

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

KH = Sheets("Doi_chieu").Range("J3").Value
THANG = Sheets("Doi_chieu").Range("J4").Value

With Sheets("Tong_hop")

lr = .Range("G" & Rows.Count).End(xlUp).Row + 1


'Gan Vung du lieu tu 10 den cuoi vao mang arr
arr = .Range("G3:K" & lr).Value
ReDim kq(1 To UBound(arr), 1 To 5) ' vi so quy trich xuat có 5 cot nen 1 to 5

For i = 1 To UBound(arr, 1)
DK = arr(i, 1) = KH ' tao dieu kien loc ket qua
DK1 = Month(arr(i, 2)) = THANG
If DK = True And DK1 = True Then ' neu dieu kien nay dung thi ta cho vao mang ket qua
a = a + 1
kq(a, 1) = arr(i, 1)
kq(a, 2) = arr(i, 2)
kq(a, 3) = arr(i, 3)
kq(a, 4) = arr(i, 4)
kq(a, 5) = arr(i, 5)


End If

Next i

End With

'Dan ra

With Sheets("Doi_chieu")

.Range("B6:F5000").ClearContents

If a > 0 Then .Range("B6").Resize(a, 5).Value = kq



End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
 

File đính kèm

  • hoi-TrichXuatDL.xlsm
    25.4 KB · Đọc: 11
Mình vừa học trên diễn đàn về mảng, bạn xem code mình ok ko nhé?
Mã:
Sub LOCDULIEU()
'Copy cong thuc tinh so du dau ky vao VBA
'Luu y neu cong thuc co dau " thi tang them "" vi VBA quy dinh nhu vay
Dim arr() ' manng data
Dim kq() ' mang ket qua
Dim lr As Long ' tim donng cuoi
Dim i As Long ' chay vong lap
Dim a As Long ' bien kich thuoc mang kq
Dim KH As String
Dim DK As Boolean
Dim DK1 As Boolean
Dim THANG As String

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

KH = Sheets("Doi_chieu").Range("J3").Value
THANG = Sheets("Doi_chieu").Range("J4").Value

With Sheets("Tong_hop")

lr = .Range("G" & Rows.Count).End(xlUp).Row + 1


'Gan Vung du lieu tu 10 den cuoi vao mang arr
arr = .Range("G3:K" & lr).Value
ReDim kq(1 To UBound(arr), 1 To 5) ' vi so quy trich xuat có 5 cot nen 1 to 5

For i = 1 To UBound(arr, 1)
DK = arr(i, 1) = KH ' tao dieu kien loc ket qua
DK1 = Month(arr(i, 2)) = THANG
If DK = True And DK1 = True Then ' neu dieu kien nay dung thi ta cho vao mang ket qua
a = a + 1
kq(a, 1) = arr(i, 1)
kq(a, 2) = arr(i, 2)
kq(a, 3) = arr(i, 3)
kq(a, 4) = arr(i, 4)
kq(a, 5) = arr(i, 5)


End If

Next i

End With

'Dan ra

With Sheets("Doi_chieu")

.Range("B6:F5000").ClearContents

If a > 0 Then .Range("B6").Resize(a, 5).Value = kq



End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Ok để mình thử luôn. Thanks Pro nhé.
 

File đính kèm

  • BANHANG-TEST.xlsx
    309.9 KB · Đọc: 7
Bạn adua29 giúp mình xem lỗi cột phụ. Mình đặt công thức thêm cột phụ mà không thấy ra kết quả giống bạn. Giúp mình với nha Pro. Mình Up luon file thực tế. Không biết bị vướng gì mà chưa lọc đc.
Thanks Pro.
Tại AY6 phải sửa lại công thức là thế này chứ nhỉ =IF(MONTH(D6)&YEAR(D6)=DoiChieu!$S$3&DoiChieu!$T$3;MAX('CHI TIẾT MUA BÁN'!$AY$5:AY5)+1;"")
 
Bạn adua29 giúp mình xem lỗi cột phụ. Mình đặt công thức thêm cột phụ mà không thấy ra kết quả giống bạn. Giúp mình với nha Pro. Mình Up luon file thực tế. Không biết bị vướng gì mà chưa lọc đc.
Thanks Pro.
Đây bạn nhé, có gì chưa phù hợp cứ trao đổi tiếp
 

File đính kèm

  • BANHANG-TEST.xlsx
    296.2 KB · Đọc: 12
Đây bạn nhé, có gì chưa phù hợp cứ trao đổi tiếp
Mình đã sửa lỗi cột phụ và đã loc được rồi nha bạn adua29. Cho mình hỏi thêm 2 ý này
Thứ nhất: =IFERROR(INDEX('CHI TIẾT MUA BÁN'!$AL$6:$AL$2000;MATCH(ROW(A1);'CHI TIẾT MUA BÁN'!$AY$6:$AY$2000;0));"")
-----> Row(A1) đó để làm gì, nếu thay đổi thành ô khác có ảnh hưởng gì không.
Thứ hai: Khi lọc ra , hiện tại bảng lọc nó hay bị các dòng trống bên dưới. Có cách nào mình canh cho nó hiện vừa đủ dòng không bạn.
Thanks sự nhiệt tình chỉ giúp của bạn nhé.
 

File đính kèm

  • BANHANG-TEST.xlsx
    323.9 KB · Đọc: 9
Mình đã sửa lỗi cột phụ và đã loc được rồi nha bạn adua29. Cho mình hỏi thêm 2 ý này
Thứ nhất: =IFERROR(INDEX('CHI TIẾT MUA BÁN'!$AL$6:$AL$2000;MATCH(ROW(A1);'CHI TIẾT MUA BÁN'!$AY$6:$AY$2000;0));"")
-----> Row(A1) đó để làm gì, nếu thay đổi thành ô khác có ảnh hưởng gì không.
Thứ hai: Khi lọc ra , hiện tại bảng lọc nó hay bị các dòng trống bên dưới. Có cách nào mình canh cho nó hiện vừa đủ dòng không bạn.
Thanks sự nhiệt tình chỉ giúp của bạn nhé.
Thứ nhất, Bạn gửi file không phải file mình đã gửi cho bạn.
Thứ hai, Công thức trên xác định lấy hàng nhập hay hàng bán, mình không lập công thức này, bạn tra nghĩa của Hàm Row thì sẽ hiểu nó để làm gì, cơ bản là lấy số thứ tự từ 1 đến n (số hàng đặt công thức) thôi.
Thứ ba, bạn xem file của mình (đã dồn dòng không để dòng trống) rồi trao đổi lại nhé.
 
Lần chỉnh sửa cuối:
Thanks bạn đã giải thích bên trên. Mình hiểu chỗ đó rồi.
Mình gởi lại file của bạn đây. Đối với các dòng trống mình có cách nào thu dọn luôn cho đẹp bảng không bạn.
 

File đính kèm

  • hoi-TrichXuatDL (1).xlsx
    14.7 KB · Đọc: 4
Mình đã sửa lỗi cột phụ và đã loc được rồi nha bạn adua29. Cho mình hỏi thêm 2 ý này
Thứ nhất: =IFERROR(INDEX('CHI TIẾT MUA BÁN'!$AL$6:$AL$2000;MATCH(ROW(A1);'CHI TIẾT MUA BÁN'!$AY$6:$AY$2000;0));"")
-----> Row(A1) đó để làm gì, nếu thay đổi thành ô khác có ảnh hưởng gì không.
Thứ hai: Khi lọc ra , hiện tại bảng lọc nó hay bị các dòng trống bên dưới. Có cách nào mình canh cho nó hiện vừa đủ dòng không bạn.
Thanks sự nhiệt tình chỉ giúp của bạn nhé.
Có phải ý định thế này không ???
 

File đính kèm

  • BANHANG-TEST.xlsx
    328.6 KB · Đọc: 20
Web KT
Back
Top Bottom