Tính tổng số tiền các sheet theo điều kiện

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Em cảm ơn.

Em muốn tính tổng số tiền phụ cấp của các sheet mà những người có tổng trên 10 triệu. Em cộng kiểu từng sheet với nhau lâu quá. Anh/chị xem có công thức giúp em với ạ. Em cảm ơn.

Bạn thử công thức tại D7

D7=IF(SUMPRODUCT(SUMIF(INDIRECT("'"&$I$2:$I$5&"'!B:B"),B7,INDIRECT("'"&$I$2:$I$5&"'!D:D")))>=10^6,SUMPRODUCT(SUMIF(INDIRECT("'"&$I$2:$I$5&"'!B:B"),B7,INDIRECT("'"&$I$2:$I$5&"'!D:D"))),0)

www.giaiphapexcel.com/diendan/threads/t%C3%ADnh-t%E1%BB%95ng-s%E1%BB%91-ti%E1%BB%81n-c%C3%A1c-sheet-theo-%C4%91i%E1%BB%81u-ki%E1%BB%87n.165389/

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 4 ▥ 0
Quảng cáo

Bạn nên đọc

4 Responses

  1. hands says:

    Bạn thử công thức tại D7

    D7=IF(SUMPRODUCT(SUMIF(INDIRECT("'"&$I$2:$I$5&"'!B:B"),B7,INDIRECT("'"&$I$2:$I$5&"'!D:D")))>=10^6,SUMPRODUCT(SUMIF(INDIRECT("'"&$I$2:$I$5&"'!B:B"),B7,INDIRECT("'"&$I$2:$I$5&"'!D:D"))),0)

    Kết quả đúng rồi, cảm ơn bạn. Nhưng lại thêm cột phụ à bạn. Nếu nhiều file tên sheet ghi khác nhau thì lại phải nhập tay cột phụ. Mà dưới 10 triệu là 0 mà bạn. Bạn để >=10^6 nên dưới 10 triệu nó vẫn giữ nguyên.

    Nếu bạn không muốn cột phụ thì tạo Name là dc mà, đưa tên các Sheet vào Name thì không cần cột phụ nữa.

  2. hands says:

    Nếu bạn không muốn cột phụ thì tạo Name là dc mà, đưa tên các Sheet vào Name thì không cần cột phụ nữa.

    Bạn chỉnh lại

    D7=IF(SUMPRODUCT(SUMIF(INDIRECT("'"&Name&"'!B:B"),B7,INDIRECT("'"&Name&"'!D:D")))>=10^7,SUMPRODUCT(SUMIF(INDIRECT("'"&Name&"'!B:B"),B7,INDIRECT("'"&Name&"'!D:D"))),0)

    Bạn xem chi tiết trong file

  3. hands says:

    Nếu bạn không muốn cột phụ thì tạo Name là dc mà, đưa tên các Sheet vào Name thì không cần cột phụ nữa.

    Không dùng cột phụ thì đây:

    =TEXT(SUMPRODUCT(SUMIF(INDIRECT("'T"&TEXT(ROW($A$9:$A$12),"00")&"-2022"&"'!B7:B30"),B7,INDIRECT("'T"&TEXT(ROW($A$9:$A$12),"00")&"-2022"&"'!D7"))),"[<10000000];0,000")

    Nhưng hàm vẫn dài nhỉ.

    Thêm 1 mảng này rồi bạn : "'T"&TEXT(ROW($A$9:$A$12),"00")&"-2022"

    Tiêu chí của chủ bài là "hàm ngắn thôi" mà.

  4. hands says:

    Nếu bạn không muốn cột phụ thì tạo Name là dc mà, đưa tên các Sheet vào Name thì không cần cột phụ nữa.

    Cell D7

    =LET(X,$F$2:$F$20,Y,FILTER(X,X<>0),KQ,SUMPRODUCT(SUMIF(INDIRECT("'"&Y&"'!B7:B1000"),$B7,INDIRECT("'"&Y&"'!D7:D1000"))),IF(KQ>10^7,KQ,""))

    Cột phụ F :
    F1 Sheet Cần Tính
    F2 T09-2022
    F3 T10-2022
    F4 T11-2022
    F5 T12-2022

    Mình thấy trường hợp này nên xài cột phụ, để lỡ có muốn tính một hoặc vài tháng cố định thôi thì chỉ cần thêm/bớt tên Sheet ở cột phụ thôi chứ không cần phải sửa lại công thức.

    Ngắn và nhanh vô địch luôn:
    D7
    =ngan(B7)

    Điều kiện: Code này sẽ lùng tìm tên tại ô B7 trong cột B trong tất cả các sheet (ngoại trừ sheet TONG), nếu tìm thấy thì cộng dồn cột D. Sau đó nếu >10tr thì lấy.
    Cách dùng:
    Alt-F11 mở VBA editor, Insert/Module, copy code này vô. Lưu file dạng .xlsm

    Option Explicit
    Function ngan(ByRef cell As Range) As Double
    Dim f, ws As Worksheet
    For Each ws In Sheets
    If ws.Name <> "TONG" Then
    Set f = ws.Columns("B").Find(cell)
    If Not f Is Nothing Then ngan = ngan + f.Offset(, 2)
    End If
    Next
    If ngan < 10000000 Then ngan = 0 Else ngan = ngan
    End Function

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm