Pradeep có nhu cầu tìm ra số hạng trong bất kỳ công thức nhất định nào. Ví dụ, trong công thức = 5 + 80 * 3/6 có bốn số hạng. Anh ta muốn một công thức mà anh ta có thể sử dụng để cho anh ta biết số hạng (4) trong công thức.

Không có hàm tích hợp nào bạn có thể sử dụng trong Excel để thu thập thông tin này. Do đó, cách tiếp cận rõ ràng nhất sẽ là tạo một hàm của riêng bạn, chẳng hạn như sau:

Function TermsInFormula(TheCell As Range)

Dim sFormula As String     Dim vOps As Variant     Dim iCount As Integer     Dim J As Integer     Dim AWF As WorksheetFunction

Application.Volatile     vOps = Array("+", "-", "*", "/", "^")



Set AWF = Application.WorksheetFunction     sFormula = TheCell.Formula     iCount = 1     For J = LBound(vOps) To UBound(vOps)

iCount = iCount + Len(sFormula) _           - Len(AWF.Substitute(sFormula, vOps(J), ""))

Next

TermsInFormula = iCount     Set AWF = Nothing End Function

Hàm kiểm tra công thức trong ô được tham chiếu để xem nó chứa bao nhiêu trong số năm toán tử toán học. Số lượng các thuật ngữ trong công thức thường nhiều hơn một số các toán tử, vì mỗi số hạng được phân tách bằng một toán tử.

Để sử dụng hàm, bạn sẽ nhập công thức sau vào một ô, giả sử rằng bạn muốn biết có bao nhiêu số hạng trong công thức trong ô A1:

=TermsInFormula(A1)

Hàm sẽ hoạt động trên các công thức, số và văn bản giống như một công thức. Tuy nhiên, nó sẽ không coi “/” trong ngày tháng như một toán tử vì hiển thị ngày không phải là một phần của thuộc tính Công thức mà hàm kiểm tra. (Việc hiển thị ngày là một phần của thuộc tính Văn bản hoặc Giá trị, không phải thuộc tính Công thức.)

Trước đó, tôi đã nói rằng số thuật ngữ trong một công thức thường nhiều hơn một số so với số toán tử. Từ hoạt động ở đây là “nói chung”, vì không phải tất cả các công thức đều đơn giản. Bạn sẽ muốn đảm bảo rằng bạn kiểm tra trực quan các loại công thức mà bạn đang làm việc và đảm bảo rằng bạn đang thấy kết quả như mong đợi.

_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 (9458) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: