Извлечение формул в функции конкатенации Excel

Извлечение формул в функции конкатенации Excel

Я хочу проанализировать оператор конкатенации Excel, чтобы найти результат вложенного выражения. Например: =CONCAT("=1-2-3+7*8")должно возвращать 52, и =CONCAT("=AVERAGE(A1,A2)")должно возвращать среднее значение двух полей. Есть ли какая-либо функция или какой-либо другой способ сделать это в Excel?

решение1

Попробуйте следующую пользовательскую функцию:

Public Function raghav(rng As Range) As Variant
    Dim s As String

    s = Mid(rng(1).Formula, 2)
    arr = Split(s, Chr(34))
    For Each a In arr
        If Left(a, 1) = "=" Then
            raghav = Evaluate(a)
            Exit Function
        End If
    Next a
End Function

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

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

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

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

КудалятьУДФ:

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

КиспользоватьUDF из Excel:

=raghav(A1)

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

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

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

Связанный контент