Прадипу необходимо вычислить количество членов в любой данной формуле. Например, в формуле = 5 + 80 * 3/6 четыре члена. Ему нужна формула, которую он мог бы использовать, чтобы определить количество членов (4) в формуле.

В Excel нет встроенной функции, которую можно было бы использовать для сбора этой информации. Таким образом, наиболее четким подходом было бы создание вашей собственной функции, например следующей:

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.)

Ранее я заявлял, что количество членов в формуле обычно на единицу больше, чем количество операторов. Ключевое слово здесь — «в целом», поскольку не все формулы настолько просты. Убедитесь, что вы визуально изучили типы формул, с которыми вы работаете, и убедитесь, что видите ожидаемые результаты.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (9458) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Number_of_Terms_in_a_Formula [Количество терминов в формуле].