Giúp áp công thức, vba tính tổng hàng giao trong tháng

  • Thread starter Thread starter rilie
  • Ngày gửi Ngày gửi
Liên hệ QC

rilie

Thành viên mới
Tham gia
7/6/17
Bài viết
12
Được thích
0
Giới tính
Nam
Nhờ Anh/Chị áp công thức tính tổng hàng đã giao trong tháng ( tháng thay đổi linh hoạt theo ô trên) vào vba hoặc code, theo dữ liệu xuất hàng sheet data.:p
 

File đính kèm

Nhờ Anh/Chị áp công thức tính tổng hàng đã giao trong tháng ( tháng thay đổi linh hoạt theo ô trên) vào vba hoặc code, theo dữ liệu xuất hàng sheet data.:p
Thử hàm này xem sao
Mã:
D3=SUMPRODUCT((MONTH(Data!$B$2:$B$10)=$D$1)*(RIGHT(Data!$C$2:$C$10,2)=B3)*Data!$F$2:$F$10)
 
Upvote 0

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Có cách nào sử dụng vba ko B..dữ liệu mình dùng thực tế lớn hơn nhiều nên sử dụng công thức không tiện lắm.
Cảm ơn !
Bạn chạy code này xem
Mã:
Sub TH_TG_LH()
Dim SArr As Variant
Dim Res As Variant
Dim i As Long, k As Integer
SArr = Sheet1.Range("a1").CurrentRegion
Res = Sheet2.Range("a2").CurrentRegion
k = Sheet2.Range("d1")
With CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(SArr)
        If Month(SArr(i, 2)) = k Then
            .Item(SArr(i, 3)) = .Item(SArr(i, 3)) + SArr(i, 6)
        Else
            .Item(SArr(i, 3)) = .Item(SArr(i, 3)) + 0
        End If
    Next i
    For i = 3 To UBound(Res)
        If .exists(Res(i, 1)) Then
            Res(i, 4) = .Item(Res(i, 1))
        Else
            Res(i, 4) = 0
        End If
    Next i
End With
With Sheet2.Range("a1")
.Resize(UBound(Res), UBound(Res, 2)) = Res
End With
End Sub
 
Upvote 0
Bạn chạy code này xem
Mã:
Sub TH_TG_LH()
Dim SArr As Variant
Dim Res As Variant
Dim i As Long, k As Integer
SArr = Sheet1.Range("a1").CurrentRegion
Res = Sheet2.Range("a2").CurrentRegion
k = Sheet2.Range("d1")
With CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(SArr)
        If Month(SArr(i, 2)) = k Then
            .Item(SArr(i, 3)) = .Item(SArr(i, 3)) + SArr(i, 6)
        Else
            .Item(SArr(i, 3)) = .Item(SArr(i, 3)) + 0
        End If
    Next i
    For i = 3 To UBound(Res)
        If .exists(Res(i, 1)) Then
            Res(i, 4) = .Item(Res(i, 1))
        Else
            Res(i, 4) = 0
        End If
    Next i
End With
With Sheet2.Range("a1")
.Resize(UBound(Res), UBound(Res, 2)) = Res
End With
End Sub
Anh ơi,thừa giấy A2 mà thiếu giấy A5 ;)
Mai mốt cắc cớ đòi tổng hợp theo tuần hoặc theo quý nữa ....thì
 

File đính kèm

Upvote 0
Nhờ Anh/Chị áp công thức tính tổng hàng đã giao trong tháng ( tháng thay đổi linh hoạt theo ô trên) vào vba hoặc code, theo dữ liệu xuất hàng sheet data.:p
Có cách nào sử dụng vba ko B..dữ liệu mình dùng thực tế lớn hơn nhiều nên sử dụng công thức không tiện lắm.
Cảm ơn !
Mới khoảng hơn tiếng đồng hồ thôi.
Ôi đời bể dâu...
 
Upvote 0
Voi và hai Bà Trưng là như vậy? Forum này miết làm mọi người mới/ hỏi lười đi - thế này CM 4.0 có thành hiện thực như các cụ mong muốn
Bạn nhận định chỗ này là chưa đúng "Forum này miết làm mọi người mới/ hỏi lười đi"
Chủ Topic không nhất quán, khi hỏi thì cũng nên suy nghĩ kỹ càng trước khi quyết định cần làm cái gì và nên cụ thể, rõ ràng.
- Lúc nhờ giúp hàm (bài 1).
- Lúc lại muốn cái khác không muốn dùng hàm (bài 3)
 
Upvote 0
Bạn hoặc bác nào có thể giải thích dùm khúc này được không? Mình chưa hiểu khúc này :)
Cảm ơn!
Mã:
With Sheet2.Range("a1")'Với range đang xét là a1 của sheet2'
.Resize(UBound(Res), UBound(Res, 2)) = Res
'Thay đổi kích thước của range("a1") thành UBound(Res) dòng, UBound(Res,2) cột
'Vùng mới được gán = mảng Res'
End With'Kết thúc làm việc với a1 sheet2
 
Upvote 0
Mã:
With Sheet2.Range("a1")'Với range đang xét là a1 của sheet2'
.Resize(UBound(Res), UBound(Res, 2)) = Res
'Thay đổi kích thước của range("a1") thành UBound(Res) dòng, UBound(Res,2) cột
'Vùng mới được gán = mảng Res'
End With'Kết thúc làm việc với a1 sheet2
Cảm ơn bạn!
 
Upvote 0
Bạn nhận định chỗ này là chưa đúng "Forum này miết làm mọi người mới/ hỏi lười đi"
Chủ Topic không nhất quán, khi hỏi thì cũng nên suy nghĩ kỹ càng trước khi quyết định cần làm cái gì và nên cụ thể, rõ ràng.
- Lúc nhờ giúp hàm (bài 1).
- Lúc lại muốn cái khác không muốn dùng hàm (bài 3)
Chiều người hỏi, đưa món ăn sẵn chỉ việc đưa vào miệng rồi ra kết quả đi - thì họ không lười đi mới lạ, sau gặp gì là đưa lên Forum là xong
 
Upvote 0
Chiều người hỏi, đưa món ăn sẵn chỉ việc đưa vào miệng rồi ra kết quả đi - thì họ không lười đi mới lạ, sau gặp gì là đưa lên Forum là xong
Ít nhất là họ cũng lười xoá bài. Nó còn đó cho người khác học hỏi.
Ở diễn đàn này thỉnh thoảng xảy ra chuyện "lấy xong giải đáp rồi thì quay lại xoá luôn các câu hỏi của mình".
 
Upvote 0
Rất cảm ơn mọi người đã nhiệt tình giúp đỡ.!!. Thực sự mình rất gà VBA nên chưa áp dụng được những góp ý của mọi người vào file mình đang sử dụng hiện tại.
Thanks!
 
Upvote 0
Web KT

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

Back
Top Bottom