Функция Excel для поиска «глубины» строкового выражения?

У меня есть алгоритм в Python, который в основном помогает найти «глубину» функции как таковой:

f(a) has a depth of 1 f(g(h(a,b,c),d)),e) has a depth of 3 

Псевдо алгоритм таков:

 Run through all the characters from left to right create a variable "depth" for each open parenthesis increment depth for each closing parenthesis decrement depth At the end, the depth of the expression was the max value taken by the variable depth. 

Мне было интересно, можно ли достичь такой логики в Excel без использования VBA.

Попробуйте следующее UDF ()

 Public Function Depth(r As Range) As Long Dim v As String, CH As String Depth = 0 v = r.Text kount = 0 For i = 1 To Len(v) CH = Mid(v, i, 1) If CH = "(" Then kount = kount + 1 If CH = ")" Then kount = kount - 1 Depth = Application.WorksheetFunction.Max(kount, Depth) Next i End Function 

Пользовательские функции (UDF) очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте содержимое и закройте окно VBE

Если вы сохраните книгу, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003 года, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить UDF:

  1. вывести окно VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы использовать UDF из Excel:

= Глубина (А1)

Чтобы узнать больше о макросах в целом, см.

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

и для специфики UDF, см.

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Для этого необходимо активировать макросы!

введите описание изображения здесь

  • C # Алгоритм (большие данные) для поиска повторяющихся строк в нескольких столбцах и листах в Excel
  • Быстрое преобразование Фурье с использованием VBA в Excel
  • Алгоритм Excel GoalSeek
  • Объяснение алгоритма, который получает заголовок столбца excel
  • Как определить наилучшую структуру данных / реализацию для моего набора данных?
  • VBA Excel - функция, которая возвращает либо число, либо строку
  • Как разрешить «невозможные выведенные границы» в AMPL?
  • Придумайте структуру данных для работы с гигантскими данными в матричной форме (подумайте об этом как о превосходном листе)
  • Суммирование диагоналей и получение максимального значения среди них
  • Укажите количество различных значений в выбранном (большом) диапазоне в VBA?
  • Алгоритм вырезания в Excel VBA для минимизации потерь при заказе материалов
  • Давайте будем гением компьютера.