پرادیپ نیاز دارد که تعداد عبارتها را در هر فرمول مشخص کند. به عنوان مثال، در فرمول =5+80*3/6 چهار عبارت وجود دارد. او فرمولی می خواهد که بتواند از آن استفاده کند و تعداد عبارت (4) را در فرمول به او بگوید.
هیچ تابع داخلی وجود ندارد که بتوانید در اکسل برای جمع آوری این اطلاعات از آن استفاده کنید. بنابراین، تمیزترین رویکرد ایجاد عملکرد خود است، مانند موارد زیر:
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
تابع فرمول موجود در سلول ارجاع شده را بررسی می کند تا ببیند چه تعداد از پنج عملگر ریاضی در آن وجود دارد. تعداد عبارتهای فرمول معمولاً یک عدد بیشتر از تعداد عملگرها است، زیرا هر عبارت با یک عملگر از هم جدا میشود.
برای استفاده از تابع، فرمول زیر را در یک سلول وارد کنید، با این فرض که می خواهید بدانید چند عبارت در فرمول سلول A1 وجود دارد:
=TermsInFormula(A1)
این تابع روی فرمول ها، اعداد و متنی که شبیه فرمول است کار می کند. با این حال، "/" در تاریخ ها را به عنوان یک عملگر در نظر نمی گیرد زیرا نمایش تاریخ بخشی از ویژگی Formula نیست که تابع بررسی می کند. (نمایش تاریخ ها بخشی از ویژگی Text یا Value است نه ویژگی Formula.)
قبلاً بیان کردم که تعداد عبارات یک فرمول به طور کلی یک عدد بیشتر از تعداد عملگرها است. کلمه عملی در اینجا "به طور کلی" است، زیرا همه فرمول ها به این سادگی نیستند. باید مطمئن شوید که انواع فرمول هایی را که با آنها کار می کنید به صورت بصری بررسی می کنید و مطمئن شوید که نتایج مورد انتظارتان را می بینید.