Joseph có một trang tính chứa danh sách các giá trị. Một số trong những giá trị đó là trên 0 và những giá trị khác ở dưới. Anh ta có thể sử dụng hàm SUM để tính tổng các giá trị, nhưng anh ta thực sự muốn tính tổng giá trị tuyệt đối của mỗi mục trong danh sách. Vì vậy, tổng của ba giá trị -33, 14, -5 sẽ là 52 thay vì -24.

Không có hàm nội tại nào bạn có thể sử dụng để tạo tổng mong muốn, nhưng bạn có thể tạo công thức để thực hiện tác vụ. Một phương pháp là sử dụng hàm SUMIF, theo cách sau:

=SUMIF(A1:A10,">0")-SUMIF(A1:A10,"<0")

SUMIF đầu tiên tính tất cả các giá trị lớn hơn 0 và giá trị thứ hai tính tất cả những giá trị nhỏ hơn 0. Do đó, với bốn giá trị -33, 14, -5, 42, SUMIF đầu tiên sẽ dẫn đến tổng là 56 (14 + 42) và giá trị thứ hai sẽ dẫn đến tổng là -38 (-33 + -5). Khi bạn trừ tổng thứ hai với tổng đầu tiên (56 – -38), bạn nhận được câu trả lời cuối cùng là 94, là tổng của tất cả các giá trị tuyệt đối.

Một cách tiếp cận khác là sử dụng hàm SUMPRODUCT. Công thức sau sẽ cho kết quả mong muốn:

=SUMPRODUCT(ABS(A1:A10))

Hàm thường được sử dụng để nhân các phần tử khác nhau của mảng với nhau, rồi tính tổng các tích đó. Vì chỉ có một mảng (A1: A10) được cung cấp, không có phép nhân nào được thực hiện, nhưng tổng các giá trị tuyệt đối mong muốn được trả về.

Bạn cũng có thể nhận được kết quả mong muốn bằng cách sử dụng công thức mảng, một tính năng tiện lợi nhưng hiếm khi được sử dụng của Excel. Giả sử các giá trị của bạn nằm trong khoảng A1: A10, hãy nhập công thức này:

=SUM(ABS(A1:A10))

Đừng nhấn Enter; thay vào đó hãy nhấn Ctrl + Shift + Enter, cho biết đây là công thức mảng. Nếu công thức được nhập chính xác, bạn sẽ thấy dấu ngoặc nhọn xung quanh công thức trong thanh Công thức:

{=SUM(ABS(A1:A50))}

Những gì công thức làm là tạo bên trong cột trung gian (là một mảng giá trị) là các giá trị tuyệt đối riêng lẻ của A1: A10. Sau đó, nó tính tổng mảng này và hiển thị kết quả.

Cuối cùng, nếu muốn, bạn có thể tạo hàm do người dùng xác định của riêng mình (một macro) sẽ trả về tổng các giá trị tuyệt đối trong một phạm vi.

Sau đây là một macro sẽ thực hiện nhiệm vụ này:

Function SumAbs(Rng As Range) As Double     Result = 0     On Error GoTo Done     For Each element In Rng         Result = Result + Abs(element)

Next element Done:

SumAbs = Result End Function

Bạn có thể sử dụng hàm bằng cách nhập một công thức đơn giản vào trang tính của mình:

=SumAbs(A1:A10)

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (2913) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: