Mandy tự hỏi liệu có cách nào để tính tổng một dải dữ liệu và chỉ đưa vào tổng những ô chứa công thức hay không. Theo nhu cầu của Mandy, nếu một ô chứa một giá trị rõ ràng và không phải là một công thức, thì nó không nên được đưa vào tổng.

Có nhiều cách bạn có thể làm để đạt được kết quả mong muốn, nhưng tôi sẽ chỉ tập trung vào một vài cách trong số đó.

Trước tiên, nếu bạn chỉ cần xác định tổng một lần duy nhất và nó không xuất hiện trong chính trang tính, thì bạn có thể làm theo các bước sau:

  1. Chọn các ô mà bạn muốn tính tổng.

  2. Nhấn F5. Excel sẽ hiển thị hộp thoại Đi tới.

  3. Nhấp vào nút Đặc biệt. Excel sẽ hiển thị hộp thoại Đi đến Đặc biệt.

  4. Chọn nút radio Công thức.

  5. Nhấp vào OK. Excel sửa đổi các ô đã chọn để chỉ những ô chứa công thức được chọn.

Tại thời điểm này, bạn có thể nhìn vào thanh trạng thái (cuối cửa sổ Excel) và xem tổng các ô đã chọn — những ô chứa công thức.

Nếu bạn thích cách tiếp cận dựa trên công thức, một trong những yếu tố quan trọng ở đây là phiên bản Excel bạn đang sử dụng. Microsoft đã giới thiệu hàm ISFORMULA với phiên bản Excel 2013, vì vậy nếu bạn đang sử dụng phiên bản đó (hoặc mới hơn), việc xác định tổng bạn muốn khá dễ dàng.

Chỉ cần sử dụng công thức này:

=SUMPRODUCT(A1:A5,--ISFORMULA(A1:A5))

Công thức này giả định rằng phạm vi dữ liệu bạn muốn tính tổng là A1: A5. Dấu “kép” trước hàm ISFORMULA được sử dụng để chuyển đổi các giá trị TRUE và FALSE (do ISFORMULA trả về) thành 1 hoặc 0.

Nếu bạn thích sử dụng công thức mảng, bạn có thể sử dụng công thức sau:

=SUM(IF(ISFORMULA(A1:A6),A1:A6))

Chỉ cần nhớ nhập bằng Ctrl + Shift + Enter và bạn sẽ nhận được kết quả thích hợp.

Nếu bạn đang sử dụng phiên bản Excel cũ hơn Excel 2010, thì các công thức này sẽ không hoạt động. Thay vào đó, bạn sẽ cần dựa vào một hàm do người dùng xác định để thực hiện thủ thuật:

Function SumFormulas(ByVal r As Range)

Dim c As Range     Dim s As Double

s = 0     For Each c In r.Cells              If c.HasFormula And IsNumeric(c) Then             s = s + c.Value         End If     Next c     SumFormulas = s End Function

Lưu ý rằng mã kiểm tra để đảm bảo rằng ô có chứa công thức (sử dụng thuộc tính HasFormula) và kiểm tra để đảm bảo rằng nó là số (sử dụng hàm IsNumeric). Cả hai đều cần thiết vì có thể có một công thức dựa trên văn bản trong một ô và bạn không muốn cố gắng đưa kết quả của một công thức như vậy vào tổng của mình.

Để sử dụng hàm, bạn chỉ cần sử dụng như sau trong một ô trang tính, giả sử bạn muốn tính tổng phạm vi A1: C7:

=SumFormulas(A1:C7)

Cách tiếp cận dựa trên macro cũng sẽ hoạt động trong các phiên bản Excel ngoài Excel 2010, nếu vì lý do nào đó bạn không muốn dựa vào hàm ISFORMULA. (Ví dụ: nếu bạn phải đảm bảo khả năng tương thích với các phiên bản Excel cũ hơn.)

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

Mẹo này (13595) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.