Lọc những hóa đơn từ 20tr của cùng 1 công ty trong 1 ngày

Liên hệ QC

mjnlove

Thành viên mới
Tham gia
22/5/08
Bài viết
29
Được thích
3
Xin chào các ACE gpe.
E mới học exel. E có 1 thắc mắc nho nhỏ như thế này, mong các ACE chỉ giúp.
Tình hình là e có 1 tờ khai thuế GTGT theo từng năm, ở đây là năm 2012
Bao gồm các chỉ tiêu ký hiệu, số hóa đơn, ngày tháng, tên công ty, mặt hàng, doanh số bán chưa thuế, VAT..
E muốn lọc ra tất cả những hóa đơn có giá trị từ 20tr (doanh số bán chưa thuế + VAT = từ 20tr trở lên) để tính hóa đơn đủ điều kiện khấu trừ, tính luôn cả những hóa đơn mua nhiều lần trong cùng 1 ngày, với điều kiện của cùng 1 công ty thì phải dùng hàm hay công thức gì?
Mong các ACE chỉ giúp cho e 1 công thức chung, để e có thể áp dụng cho những file sau này nữa ạ. E xin chân thành cám ơn.
 

File đính kèm

Xin chào các ACE gpe.
E mới học exel. E có 1 thắc mắc nho nhỏ như thế này, mong các ACE chỉ giúp.
Tình hình là e có 1 tờ khai thuế GTGT theo từng năm, ở đây là năm 2012
Bao gồm các chỉ tiêu ký hiệu, số hóa đơn, ngày tháng, tên công ty, mặt hàng, doanh số bán chưa thuế, VAT..
E muốn lọc ra tất cả những hóa đơn có giá trị từ 20tr (doanh số bán chưa thuế + VAT = từ 20tr trở lên) để tính hóa đơn đủ điều kiện khấu trừ, tính luôn cả những hóa đơn mua nhiều lần trong cùng 1 ngày, với điều kiện của cùng 1 công ty thì phải dùng hàm hay công thức gì?
Mong các ACE chỉ giúp cho e 1 công thức chung, để e có thể áp dụng cho những file sau này nữa ạ. E xin chân thành cám ơn.
Cái này chắc fải làm =VBA, chứ cthức sợ hơi bị ẹ
Bạn tham khảo
Ðề tài: SHARE: File báo cáo thuế hàng Tháng - Quý để ADD vào chương trình HTKK 3.2.1 trở lên
 
Xin chào các ACE gpe.
E mới học exel. E có 1 thắc mắc nho nhỏ như thế này, mong các ACE chỉ giúp.
Tình hình là e có 1 tờ khai thuế GTGT theo từng năm, ở đây là năm 2012
Bao gồm các chỉ tiêu ký hiệu, số hóa đơn, ngày tháng, tên công ty, mặt hàng, doanh số bán chưa thuế, VAT..
E muốn lọc ra tất cả những hóa đơn có giá trị từ 20tr (doanh số bán chưa thuế + VAT = từ 20tr trở lên) để tính hóa đơn đủ điều kiện khấu trừ, tính luôn cả những hóa đơn mua nhiều lần trong cùng 1 ngày, với điều kiện của cùng 1 công ty thì phải dùng hàm hay công thức gì?
Mong các ACE chỉ giúp cho e 1 công thức chung, để e có thể áp dụng cho những file sau này nữa ạ. E xin chân thành cám ơn.

Bài này mà làm bằng Hàm và công thức Excel chắc "oải luôn".
Thử VBA xem:

-------------
Oái!
Trong file của bạn có 1 Sub TrichLoc giống 99% với Sub trong File tôi vừa gởi trong bài này????????????
PHP:
' Trich loc HD tren 20 trieu
Sub TrichLoc()
Dim rng(), Arr(), i As Long, K As Long, Dic As Object, Tem As Variant, Ma As String
Set Dic = CreateObject("Scripting.Dictionary")
    rng = Range([B18], [B65000].End(xlUp)).Resize(, 14).Value
ReDim Arr(1 To UBound(rng, 1), 1 To 5) ' sua 4 thanh 5
    For i = 1 To UBound(rng, 1)
            Tem = rng(i, 1)
        If Tem <> "" Then
            If Tem <> 2 And Tem <> 5 Then
                Ma = rng(i, 6) & rng(i, 8)
                If Not Dic.exists(Ma) Then
                    Dic.Add Ma, rng(i, 14)
                Else
                    Dic.Item(Ma) = Dic.Item(Ma) + rng(i, 14)
                End If
            End If
        End If
    Next i
    For i = 1 To UBound(rng, 1)
        If rng(i, 1) <> 2 And rng(i, 1) <> 5 Then
            Ma = rng(i, 6) & rng(i, 8)
            If Dic.Item(Ma) >= 20000000 Then
                K = K + 1
                Arr(K, 1) = rng(i, 5): Arr(K, 2) = rng(i, 6)
                
                Arr(K, 3) = rng(i, 7): Arr(K, 4) = rng(i, 8): Arr(K, 5) = rng(i, 14)
                
            End If
        End If
    Next i
    [S18:W10000].ClearContents
    If K Then [S18].Resize(K, 5).Value = Arr
Set Dic = Nothing
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Bài này mà làm bằng Hàm và công thức Excel chắc "oải luôn".
Thử VBA xem:

-------------
Oái!

Trong file của bạn có 1 Sub TrichLoc giống 99% với Sub trong File tôi vừa gởi trong bài này????????????
PHP:
' Trich loc HD tren 20 trieu
Sub TrichLoc()
Dim rng(), Arr(), i As Long, K As Long, Dic As Object, Tem As Variant, Ma As String
Set Dic = CreateObject("Scripting.Dictionary")
    rng = Range([B18], [B65000].End(xlUp)).Resize(, 14).Value
ReDim Arr(1 To UBound(rng, 1), 1 To 5) ' sua 4 thanh 5
    For i = 1 To UBound(rng, 1)
            Tem = rng(i, 1)
        If Tem <> "" Then
            If Tem <> 2 And Tem <> 5 Then
                Ma = rng(i, 6) & rng(i, 8)
                If Not Dic.exists(Ma) Then
                    Dic.Add Ma, rng(i, 14)
                Else
                    Dic.Item(Ma) = Dic.Item(Ma) + rng(i, 14)
                End If
            End If
        End If
    Next i
    For i = 1 To UBound(rng, 1)
        If rng(i, 1) <> 2 And rng(i, 1) <> 5 Then
            Ma = rng(i, 6) & rng(i, 8)
            If Dic.Item(Ma) >= 20000000 Then
                K = K + 1
                Arr(K, 1) = rng(i, 5): Arr(K, 2) = rng(i, 6)
                
                Arr(K, 3) = rng(i, 7): Arr(K, 4) = rng(i, 8): Arr(K, 5) = rng(i, 14)
                
            End If
        End If
    Next i
    [S18:W10000].ClearContents
    If K Then [S18].Resize(K, 5).Value = Arr
Set Dic = Nothing
End Sub
Thì nó là của Thầy mà!
 
Hoàn toàn làm được mà không cần VBA, bạn làm như sau:
1/Bạn bỏ chế đo AutoFilter, xoá hết các tổng tháng trong dữ liệu đi vì nó vô bổ và gây khó khăn cho sử lý dữ liệu đi ta được bảng dữ liệu là A4:M800 (Với tiêu đề cột là số thứ tự cột)

2/Ban thêm cột phụ bằng cách gõ vào M4 tiêu đề cột phụ là 12

3/ Tại M5 bạn nhập công thức sau rồi Fill đến M800:

=IF(SUMPRODUCT(--($E$5:$E$800=E5),--($G$5:$G$800=G5),$L$5:$L$800)>20000000,I5+K5,"")

4/Chọn M4:M800 rồi chọn AutoFilter--->None Blank

Đó là bảng kê bạn yêu cầu

(Bạn đặt câu hỏi không rõ ràng: Đây là yêu cầu lọc các Hoá đơn có giá trị trên 20Tr hay các hoá đơn của 1 nhà cung cấp trong cùng ngày có tổng trên 20Tr để chứng minh đã thanh toán qua Ngân hàng mới đủ điều kiện khấu trừ thuế
Hi, mình cung dân kế nên chuyện từng làm mà)
 
Lần chỉnh sửa cuối:
Mình gửi file có cả lọc bằng công thức luôn (Không dùng Filter)
 

File đính kèm

Hoàn toàn làm được mà không cần VBA, bạn làm như sau:
1/Bạn bỏ chế đo AutoFilter, xoá hết các tổng tháng trong dữ liệu đi vì nó vô bổ và gây khó khăn cho sử lý dữ liệu đi ta được bảng dữ liệu là A4:M800 (Với tiêu đề cột là số thứ tự cột)

2/Ban thêm cột phụ bằng cách gõ vào M4 tiêu đề cột phụ là 12

3/ Tại M5 bạn nhập công thức sau rồi Fill đến M800:

=IF(SUMPRODUCT(--($E$5:$E$800=E5),--($G$5:$G$800=G5),$L$5:$L$800)>20000000,I5+K5,"")

4/Chọn M4:M800 rồi chọn AutoFilter--->None Blank

Đó là bảng kê bạn yêu cầu

(Bạn đặt câu hỏi không rõ ràng: Đây là yêu cầu lọc các Hoá đơn có giá trị trên 20Tr hay các hoá đơn của 1 nhà cung cấp trong cùng ngày có tổng trên 20Tr để chứng minh đã thanh toán qua Ngân hàng mới đủ điều kiện khấu trừ thuế
Hi, mình cung dân kế nên chuyện từng làm mà)

cám ơn bạn nhiều nha. chúc bạn buổi tối vui vẻ :D
 
Bài này mà làm bằng Hàm và công thức Excel chắc "oải luôn".
Thử VBA xem:

-------------
Oái!

Trong file của bạn có 1 Sub TrichLoc giống 99% với Sub trong File tôi vừa gởi trong bài này????????????
PHP:
' Trich loc HD tren 20 trieu
Sub TrichLoc()
Dim rng(), Arr(), i As Long, K As Long, Dic As Object, Tem As Variant, Ma As String
Set Dic = CreateObject("Scripting.Dictionary")
    rng = Range([B18], [B65000].End(xlUp)).Resize(, 14).Value
ReDim Arr(1 To UBound(rng, 1), 1 To 5) ' sua 4 thanh 5
    For i = 1 To UBound(rng, 1)
            Tem = rng(i, 1)
        If Tem <> "" Then
            If Tem <> 2 And Tem <> 5 Then
                Ma = rng(i, 6) & rng(i, 8)
                If Not Dic.exists(Ma) Then
                    Dic.Add Ma, rng(i, 14)
                Else
                    Dic.Item(Ma) = Dic.Item(Ma) + rng(i, 14)
                End If
            End If
        End If
    Next i
    For i = 1 To UBound(rng, 1)
        If rng(i, 1) <> 2 And rng(i, 1) <> 5 Then
            Ma = rng(i, 6) & rng(i, 8)
            If Dic.Item(Ma) >= 20000000 Then
                K = K + 1
                Arr(K, 1) = rng(i, 5): Arr(K, 2) = rng(i, 6)
                
                Arr(K, 3) = rng(i, 7): Arr(K, 4) = rng(i, 8): Arr(K, 5) = rng(i, 14)
                
            End If
        End If
    Next i
    [S18:W10000].ClearContents
    If K Then [S18].Resize(K, 5).Value = Arr
Set Dic = Nothing
End Sub


E cám ơn a Ba nhiều ạ.. Bài nào cũng thấy a nhiệt tình hết trơn :D}}}}}}}}}} Cho e hỏi có áp dụng công thức trên cho các file khác được không, vì e hay phải tính những hóa đơn kiểu này lắm ạ !$@!!
 
Thực sự mình không thích cách trao đổi của bạn, bạn nói không chính xác chỗ nào? Bạn phải minh chứng điều mình nói chứ !
Nếu mình là cán bộ thuế thì mình còn phạt bạn về truy hoàn thuế đã khấu trừ và phạt chậm nộp thuế nữa đấy vì cách làm "ma giáo" của bạn.
Trong ngày, bạn có mua nhiều hoá đơn của 1 đơn vị mỗi HD dưới 20 tr nhưng tổng các HD trên 20 tr. Bạn lợi dụng Luật cho phép chậm kê khai đầu vào nên chia ra kê thành nhiều tháng. Nếu kiểm tra 1 tháng thì đúng nhưng nếu kiểm tra nhiều tháng thì không đúng và bạn bị thổi còi ngay.

Đùa vậy thôi, bạn kiểm tra cột ngày tháng đi, nó sai từ đấy bạn ạ. Chỉ có bạn mới khắc phục được.

File mình gửi kèm, bạn cứ chọn 1 ô nào đó trên cột M mà <>0 sẽ thông báo và tô màu cho bạn địa chỉ từng dòng HD đó.

P/s: File của bạn không cho lưu Macro, mình thì dùng Ex2003 nên không lưu được.
Vậy bạn mở file ra và chép vào vùng Code của Sheet1 đoạn mã sau:

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Tm, i, Tg, Dc, eR
Application.EnableEvents = False
If Not Intersect(Target, [M5:M800]) Is Nothing Then
Range("A5:M800").Interior.ColorIndex = xlNone
Tm = [A5:M800]
eR = Target.Row
With Target
For i = 1 To UBound(Tm, 1)
If Tm(i, 5) = .Offset(, -8) And Tm(i, 7) = .Offset(, -6) Then
Tg = Tg + Tm(i, 9) + Tm(i, 11)
Dc = Dc & IIf(Dc = "", "", ",") & "A" & i + 4 & ":M" & i + 4
End If
Next
End With
If Dc <> "" And Tg > 20000000 Then
Range(Dc).Interior.ColorIndex = 4
MsgBox "Kiem tra cac dong sau : " & Chr(13) & _
Replace(Dc, ",", Chr(13)), , "THONG BAO"
End If
End If
Application.EnableEvents = True
End Sub

Mình lưu được file dưới dang Ex2003 nên gửi bổ xung.
 

File đính kèm

Lần chỉnh sửa cuối:
Thực sự mình không thích cách trao đổi của bạn, bạn nói không chính xác chỗ nào? Bạn phải minh chứng điều mình nói chứ !
Nếu mình là cán bộ thuế thì mình còn phạt bạn về truy hoàn thuế đã khấu trừ và phạt chậm nộp thuế nữa đấy vì cách làm "ma giáo" của bạn.
Trong ngày, bạn có mua nhiều hoá đơn của 1 đơn vị mỗi HD dưới 20 tr nhưng tổng các HD trên 20 tr. Bạn lợi dụng Luật cho phép chậm kê khai đầu vào nên chia ra kê thành nhiều tháng. Nếu kiểm tra 1 tháng thì đúng nhưng nếu kiểm tra nhiều tháng thì không đúng và bạn bị thổi còi ngay.

Đùa vậy thôi, bạn kiểm tra cột ngày tháng đi, nó sai từ đấy bạn ạ. Chỉ có bạn mới khắc phục được.

File mình gửi kèm, bạn cứ chọn 1 ô nào đó trên cột M mà <>0 sẽ thông báo và tô màu cho bạn địa chỉ từng dòng HD đó.

P/s: File của bạn không cho lưu Macro, mình thì dùng Ex2003 nên không lưu được.
Vậy bạn mở file ra và chép vào vùng Code của Sheet1 đoạn mã sau:

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Tm, i, Tg, Dc, eR
Application.EnableEvents = False
If Not Intersect(Target, [M5:M800]) Is Nothing Then
Range("A5:M800").Interior.ColorIndex = xlNone
Tm = [A5:M800]
eR = Target.Row
With Target
For i = 1 To UBound(Tm, 1)
If Tm(i, 5) = .Offset(, -8) And Tm(i, 7) = .Offset(, -6) Then
Tg = Tg + Tm(i, 9) + Tm(i, 11)
Dc = Dc & IIf(Dc = "", "", ",") & "A" & i + 4 & ":M" & i + 4
End If
Next
End With
If Dc <> "" And Tg > 20000000 Then
Range(Dc).Interior.ColorIndex = 4
MsgBox "Kiem tra cac dong sau : " & Chr(13) & _
Replace(Dc, ",", Chr(13)), , "THONG BAO"
End If
End If
Application.EnableEvents = True
End Sub

Mình lưu được file dưới dang Ex2003 nên gửi bổ xung.

cám ơn bạn nhiều nha :D Mình mới làm nên còn nhiều thứ chưa biết quá.. có gì xin nhờ bạn chỉ giáo thêm hen ^^
 
ACE hướng dẫn chi tiết thêm cho mình với, mình thực hiện nhưng chưa được. :((
 
Công thức Sheet 1 rất hay. nhưng sheet HD 20 triệu không nhảy như ý. mình copy bảng kê thả vào thì lại nhảy những hóa đơn khác. không phải 20 triệu. giúp mình với
 
Thực sự mình không thích cách trao đổi của bạn, bạn nói không chính xác chỗ nào? Bạn phải minh chứng điều mình nói chứ !
Nếu mình là cán bộ thuế thì mình còn phạt bạn về truy hoàn thuế đã khấu trừ và phạt chậm nộp thuế nữa đấy vì cách làm "ma giáo" của bạn.
Trong ngày, bạn có mua nhiều hoá đơn của 1 đơn vị mỗi HD dưới 20 tr nhưng tổng các HD trên 20 tr. Bạn lợi dụng Luật cho phép chậm kê khai đầu vào nên chia ra kê thành nhiều tháng. Nếu kiểm tra 1 tháng thì đúng nhưng nếu kiểm tra nhiều tháng thì không đúng và bạn bị thổi còi ngay.

Đùa vậy thôi, bạn kiểm tra cột ngày tháng đi, nó sai từ đấy bạn ạ. Chỉ có bạn mới khắc phục được.

File mình gửi kèm, bạn cứ chọn 1 ô nào đó trên cột M mà <>0 sẽ thông báo và tô màu cho bạn địa chỉ từng dòng HD đó.

P/s: File của bạn không cho lưu Macro, mình thì dùng Ex2003 nên không lưu được.
Vậy bạn mở file ra và chép vào vùng Code của Sheet1 đoạn mã sau:

Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Tm, i, Tg, Dc, eR
Application.EnableEvents = False
If Not Intersect(Target, [M5:M800]) Is Nothing Then
Range("A5:M800").Interior.ColorIndex = xlNone
Tm = [A5:M800]
eR = Target.Row
With Target
For i = 1 To UBound(Tm, 1)
If Tm(i, 5) = .Offset(, -8) And Tm(i, 7) = .Offset(, -6) Then
Tg = Tg + Tm(i, 9) + Tm(i, 11)
Dc = Dc & IIf(Dc = "", "", ",") & "A" & i + 4 & ":M" & i + 4
End If
Next
End With
If Dc <> "" And Tg > 20000000 Then
Range(Dc).Interior.ColorIndex = 4
MsgBox "Kiem tra cac dong sau : " & Chr(13) & _
Replace(Dc, ",", Chr(13)), , "THONG BAO"
End If
End If
Application.EnableEvents = True
End Sub

Mình lưu được file dưới dang Ex2003 nên gửi bổ xung.
file này sheet HĐ 20 tr của bạn lấy công thức bị sai nên khi lấy hóa đơn từ sheet 1 qua nó bị nhảy dòng hóa đơn đó bạn, =IF($K2>0,OFFSET(Sheet1!C$3,MATCH($K2,Sheet1!$M$5:$M$800,0),0),"") phải thành =IF($K2>0,OFFSET(Sheet1!C$4,MATCH($K2,Sheet1!$M$5:$M$800,0),0),"")
 
Web KT

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

Back
Top Bottom