Đây là bảng tính mà bạn gửi lên. Tôi để ở đây để vừa nhìn vừa nói nhé.Công thức bạn muốn hỏi có phải là công thức của ô C6, ở trên thanh formulas không ?=SUMPRODUCT(SUMIF(INDIRECT($G$1:$G$4&"!A8:A100"),A6,INDIRECT($G$1:$G$4&"!C8:C100")))
Dịch nôm na ra thì nó có nghĩa như sau:
Để tìm tổng số Nợ của tài khoản ở ô A6 (342), thì đi dò trong khối cell A8:A100 của các Sheet có tên trùng với tên trong khối cell G1:G4 (Thang1, Thang2, Thang3, Thang4), nếu thấy có tài khoản giống như ở A6, thì cộng hết số tiền nằm cùng hàng (với tài khoản giống như ở A6) trong khối cell C8:C100 trong các Sheet có tên trùng với tên trong khối cell G1:G4.
Để coi A8:A100 và C8:C100 là cái gì, xem hình sau đây, nó là Sheet Thang1 (3 Sheet còn lại y chang như vậy):Có lẽ bạn đã hiểu SUMIF() làm cái gì. Xin bỏ qua.
Cái hay của hàm này là dùng SUMPRODUCT kẹp bên ngoài của SUMIF, có tác dụng cộng hết những gì SUMIF tìm được ở mỗi Sheet.
Nếu không dùng SUMPRODUCT mà chỉ lấy phần trong của nó (từ chỗ SUMIF trở đi), và nhấn Ctrl-Shift-Enter để tạo công thức mãng, thì cái bạn nhận được chỉ là kết quả của cái SUMIF tìm được ở Sheet đầu tiên mà thôi (trong trường hợp này thì nó chỉ tìm ở Sheet Thang1, rồi dừng lại).
Bạn muốn hỏi về INDIRECT() phải không?
Trong trường hợp cụ thể này, INDIRECT không dùng tham số a1, nghĩa là dùng kiểu tham chiếu A1.
Tôi giải thích một cái thôi, còn cái thứ hai thì bạn tự suy ra nhé:
INDIRECT($G$1:$G$4&"!A8:A100")
Vì nằm trong hàm SUMPRODUCT, nên công thức trên sẽ chạy như một công thức mãng, nó sẽ lần lượt thay thế cái nó tìm được ở khối cell G1:G4 với
(dấu & có tác dụng ghép lại) cái ở trong cặp ngoặc kép
(!A8:A100), cụ thể là:
INDIRECT($G$1:$G$4&"!A8:A100") khi chạy sẽ giống như chạy 4 hàm đơn:
- INDIRECT($G$1&"!A8:A100") = Thang1!A8:A100
- INDIRECT($G$2&"!A8:A100") = Thang2!A8:A100
- INDIRECT($G$3&"!A8:A100") = Thang3!A8:A100
- INDIRECT($G$4&"!A8:A100") = Thang4!A8:A100
Cái dấu chấm than (!) là ký hiệu để Excel biết rằng A8:A100 nằm trong Sheet nào.
Hay nói cách khác:
INDIRECT($G$1:$G$4&"!A8:A100") = {Thang1!A8:A100; Thang2!A8:A100; Thang3!A8:A100; Thang4!A8:A100}
Sau đó công thức sẽ dùng cái INDIRECT đã thay thế này làm tham số cho SUMIF đi tìm tiếp.
Tới đây thì bạn hiểu rồi chứ ?
[/COLOR]