2.8.13. Hàm SUBTOTAL()
và hàm SUMPRODUCT()
Tổng hợp: phamnhukhang (GPE)
Hàm SUBTOTAL()
Tác giả: Trần Thanh Phong (ttphong2007 - GPE)
Hàm SUBTOTAL là một hàm rất linh hoạt nhưng cũng là một trong các
hàm hơi khó sử dụng của Excel. Điều khó hiểu thứ nhất chính là cái
tên của nó, vì nó thực sự làm được nhiều thứ hơn ý nghĩa của tên hàm.
Đối số thứ nhất của hàm bắt buộc bạn phải nhớ con số đại diện cho
phép tính cần thực hiện trên tập số liệu (trong Excel 2007 có tính
năng AutoComplete giúp chúng ta khỏi nhớ các con số này). Hàm
SUBTOTAL được Microsoft nâng cấp kể từ phiên bản Excel 2003 với sự
gia tăng các tuỳ chọn cho đối số thứ nhất của hàm, tuy nhiên điều
này dẫn đến sự không tương thích với các phiên bản cũ nếu chúng ta
sử dụng các tính năng mới bổ sung này.
Đối số đầu tiên của của hàm SUBTOTAL xác định hàm thực sự nào sẽ
được sử dụng khi tính toán (xem trong danh sách bên dưới). Ví dụ nếu
đối số là 1 thì hàm SUBTOTAL hoạt động giống nhưng hàm AVERAGE, nếu
đối số thứ nhất là 9 thì hàm hàm SUBTOTAL hoạt động giống nhưng hàm
SUM.
SUBTOTAL là hàm tính toán cho một nhóm con trong một danh sách hoặc
bảng dữ liệu tuỳ theo phép tính mà bạn chọn lựa trong đối số thứ
nhất.
Cú
pháp:
= SUBTOTAL(function_num,
ref1,
ref2,...)
Function_num:
Các con số từ 1 đến 11 (hay 101 đến 111) qui định hàm nào sẽ được
dùng để tính toán trong SUBTOTAL
Bảng tra các hàm sử dụng của SUBTOTAL trong Excel 2003/ 2007
Giá trị của đối số thứ nhất (function_num) |
Hàm tính toán thực sự |
Tính toán bao gồm cả các giá trị ẩn |
Không tính toán các giá trị ẩn |
1 |
101 |
AVERAGE |
2 |
102 |
COUNT |
3 |
103 |
COUNTA |
4 |
104 |
MAX |
5 |
105 |
MIN |
6 |
106 |
PRODUCT |
7 |
107 |
STDEV |
8 |
108 |
STDEVP |
9 |
109 |
SUM |
10 |
110 |
VAR |
11 |
111 |
VARP |
Bảng tra các hàm sử dụng của SUBTOTAL trong Excel 2000/
2002 (XP)
Không tính toán các giá trị ẩn
(function_num) |
Hàm
tính toán thực sự |
1 |
AVERAGE |
2 |
COUNT |
3 |
COUNTA |
4 |
MAX |
5 |
MIN |
6 |
PRODUCT |
7 |
STDEV |
8 |
STDEVP |
9 |
SUM |
10 |
VAR |
11 |
VARP |
Lưu
ý:
Excel 2000/XP (2002) đối số function_num chỉ nhận giá trị từ 1 đến
11 và Excel và mặc định là không tính toán các giá trị ẩn. Trong
khi đó Excel 2003/2007 thì có 2 nhóm function_num mà khi dùng các
giá trị từ 1 đến 11 lại là tính toán bao gồm các giá trị ẩn, do
vậy gây ra tình trạng dễ nhầm lẫn khi sử dụng giữa các phiên bản
Excel.
Ref1,
ref2:
Các vùng địa chỉ tham chiếu mà bạn muốn thực hiện phép tính trên đó.
Trong Excel 2007, bạn có thể dùng đến 254
ref
(với Excel 2003 trở vế trước thì con số này chỉ là 29)
Ghi chú:
-
Nếu có hàm
SUBTOTAL khác đặt lồng trong các đối số
ref1,
ref2,…
thì các hàm lồng này sẽ bị bỏ qua không được tính, nhằm tránh
trường hợp tính toán 2 lần.
Ví dụ:

SUBTOTAL(9, {120, 10, 150, 23})
= 303
= 120 + 10 + 150 + 23
SUBTOTAL(1, {120, 10, 150, 23})
=
75.75
=
(120 + 10 + 150 + 23) / 4
Sử dụng
tính năng chèn hàm Subtotal
Tính năng Data | Outline | Subtotal từ thanh thực đơn giúp chúng
ta chèn hàm Subtotal vào bảng số liệu một cách tự động và các phép
tính có thể tính cho các nhóm dữ liệu khác nhau. Để sử dụng chức
năng này trước tiên tập số liệu phải được sắp xếp theo thứ tự tại
các cột dữ liệu (Field) mà ta cần nhóm lại khi tính toán.
Ví
dụ: Cho tập số liệu như hình dưới hãy tính Tổng (2 cột Sales và
Contacts) cho từng tháng và tổng cho từng khu vực (Lưu ý tập số
liệu bên dưới đã được sắp xếp các cột Month và Region trước khi
thực hiện lệnh SubTotal).

Để
thực hiện yêu cầu trên, ta để ô hiện hành trong vùng dữ liệu cần
tính và chọn thanh Ribbon | Data | Outline | SubTotal (Excel 2007,
Excel cũ thì chọn Data | Subtotals…). Hộp thoại Subtotal xuất hiện
như hình dưới.

Các
tuỳ chọn trong hộp thoại Subtotal:
-
At
Each Change In:
Liệt kê tất cả các tên cột hay trường (Field) của vùng (hay bảng)
số liệu tính toán.
-
Use
Function:
Chọn hàm để tính từ danh sách 11 hàm (Hàm Sum được mặc định.)
-
Add
Subtotal To:
Liệt kê tất cả các trường của vùng (hay bảng) số liệu tính toán.
Đánh dấu kiểm kế bên tên trường để chọn các trường cần thực hiện
phép tính.
-
Replace Current Subtotals:
Nếu được chọn, Excel sẽ xoá bỏ các lệnh subtotal trước đó và thay
thế bằng lệnh subtotals hiện hành.
-
Page Break between Groups:
Nếu được chọn, Excel sẽ chèn các dấu ngắt trang sau mỗi nhóm tính
subtotal.
-
Summary below Data:
Nếu được chọn, Excel sẽ đặt các kết quả tính subtotals bên dưới
mỗi nhóm số liệu (mặc định), ngược lại thì Excel sẽ đặt kết quả
tính subtotals bên trên mỗi nhóm số liệu.
-
Remove All:
Nếu chọn nút này thì Excel sẽ xoá bỏ tất cả các lệnh subtotal
trong vùng số liệu.
Sau
khi thiết lập và nhấp nút OK, Excel sẽ phân tích vùng số liệu và
chèn các hàm subtotal để tính toán theo qui định ở trên và tạo ra
outline cho vùng dữ liệu. Hình bên dưới minh hoạ kết quả dùng lệnh
subtotals với việc chọn Add Subtotal To cho 2 trường
Month và Region.

Lưu
ý:
Nếu dùng subtotals cho một vùng dữ liệu đã áp dụng lệnh Filter,
thì hàm subtotal có thể sẽ không cho kết qảu đúng khi ta bỏ lệnh
Filter.
Bảng kết quả trên được thực hiện bằng 2 lệnh subtotal, lưu ý khi
ra lệnh subtotal thứ hai bạn nhớ bỏ tuỳ chọn Replace Current
Subtotals trong hộp thoại Subtotal.
Các
hàm SUBTOTAL dùng trong lệnh Subtotal cũng chính là hàm Subtotal
của Excel tuy nhiên khi thực hiện lệnh Subtotal thì Excel tạo giúp
chúng ta Outline một cách tự động. Chẳng hạn như công thức
Subtotal tại ô E9 (Tổng doanh số của tháng một) là như sau:
=SUBTOTAL(9,E2:E7)
Mặc
dù công thức này có vùng tham chiếu chứa 2 ô có sử dụng hàm
SUBTOTAL (tại ô E4 và E8) mà kết quả không hề sai, vì các ô chứa
công thức này sẽ bị loại ra trong quá trình tính toán của hàm
Subtotal tại ô E9 (xem lại bài viết về hàm Subtotal phần ghi chú).
Chúng ta có thể dùng các nút điều kiển Outline (bên trái cửa sổ
bảng tính) để điều chỉnh các mức độ trình bày kết quả tính toán,
ví dụ như hình dưới chúng ta xem kết quả trình bày mở mức Outline
3.

Hàm SUMPRODUCT()
Tác giả: Bùi Nguyễn Triệu Tường (BNTT - GPE),
Sum = Tổng / Product = Tích
SUMPRODUCT = Tổng của tích (các mảng dữ liệu)
Cú pháp:
= SUMPRODUCT(array1,
array2,
...)
array1,
array2,
... : Có thể dùng từ 2 tới 255 mảng (với Excel 2003 trở về trước thì
con số này chỉ là 30) và các mảng này phải cùng kích thước với nhau
Lưu ý:
-
Nếu các mảng không cùng kích thước, SUMPRODUCT sẽ báo lỗi
#VALUE!
-
Bất kỳ một phần tử nào trong mảng không phải là dữ liệu kiểu số,
sẽ được SUMPRODUCT coi như bằng 0 (zero)
Ví dụ:

SUMPRODUCT(A1:B3, C1:D3)
= 156
Cách tính: 156 = (3*2)+(4*7)+(8*6)+(6*7)+(1*5)+(9*3)
Nếu dùng SUM() với công thức mảng, sẽ cho kết quả tương đương:
{SUM(A1:B3 * C1:D3)} = SUMPRODUCT(A1:B3, C1:D3) = 156
Top
|