VBA tìm giá trị theo điều kiện (5 người xem)

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

  • Tôi tuân thủ nội quy khi đăng bài

    eagle12

    Thành viên mới
    Tham gia
    18/12/13
    Bài viết
    26
    Được thích
    5
    Chào các bác, xin nhờ anh chị về code VBA lấy giá trị theo điều kiện thay cho hàm sumifs cho bảng như sau ah

    VD em có bảng dữ liệu sắp xếp "B3:Exxx",
    Bảng báo cáo xoay sang chiều ngang với 2 dải điều kiên là cột H4:Hxxx và hàng I3:Uxxx

    Em đang sử dụng hàm sumifs để lấy được số tiền của từng mã theo ngày

    Xin nhờ anh chị code VBA lấy giá trị đổ vào từ ô I4:U thay cho hàm sumifs

    1762411255538.png
     

    File đính kèm

    Trong khi chờ VBA Code, tham khảo kết quả M Code:
    Mã:
    let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date Text", type date}, {"Mã", type text}, {"So tien", Currency.Type}}),
        #"Grouped Rows" = Table.Group(#"Changed Type", {"Date Text", "Mã"}, {{"Count", each List.Sum([So tien]), Currency.Type }}),
        #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Grouped Rows", {{"Date Text", type text}}, "vi-VN"), List.Distinct(Table.TransformColumnTypes(#"Grouped Rows", {{"Date Text", type text}}, "vi-VN")[#"Date Text"]), "Date Text", "Count", List.Sum)
    in
        #"Pivoted Column"
     

    File đính kèm

    • Untitled.png
      Untitled.png
      378.7 KB · Đọc: 3
    Upvote 0
    Một trong những phương thức rùa bò:
    PHP:
    Sub TongHopMa_Ngay()
     Dim Dg As Long, Cot As Integer, Rws As Long
     Dim WF As Object, CSDL As Range, Cls As Range
     Dim Tmr As Double
     
     Tmr = Time()
     Rws = [C3].CurrentRegion.Rows.Count
     Set WF = Application.WorksheetFunction
     Set CSDL = [C3].Resize(Rws, 3)
     [I20].Value = [C3].Value:          [J20].Value = [D3].Value
     For Each Cls In Range([I3], [I3].End(xlToRight))
        [I21].Value = Cls.Value
        For Dg = 4 To 17
            [j21].Value = Cells(Dg, "H").Value
            Cells(Dg, Cls.Column).Value = WF.DSum(CSDL, [E3], [I20:J21])
        Next Dg
     Next Cls
     MsgBox Timer() - Tmr
    End Sub
     
    Upvote 0

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

    Back
    Top Bottom