3

Скажем, ячейка А1 имеет формулу А2 + А3

и B1 имеет формулу B2 + B2

и C1 имеет формулу A1 + B1

Мне нужен простой и быстрый способ создать формулу для C1 в сплющенном состоянии ..

т.е. (A2 + A3) + (B1 + B2)

Хотя приведенный выше пример тривиален, я пытаюсь упростить формулу, которая касается около 40 ячеек (и около 70 звонков через сторонний плагин).

Любая помощь приветствуется!

2 ответа2

0

Если у вас нет Excel 2013, вы можете подделать функцию FORMULATEXT с помощью короткой функции в Visual Basic. Я использовал вопрос, на который ссылается douglaslps, чтобы вернуть его как значение, а не просто строку. (Очень аккуратный ответ.) В ячейке C1 вы бы использовали формулу:

=CombineFormulas(A1:B1,"+")

и вы бы поместили эту функцию в модули книги где-нибудь:

Option Explicit
Public Function CombineFormulas(RangeToCombine As Range, Operator As String)
    'Input:  Range of cells and an operator to use when combining their formulas
    'Output: String of the combined formulas
    Dim cell As Range
    Dim s As String
    s = "="
    For Each cell In RangeToCombine.Cells
        If Len(s) > 1 Then s = s & Operator
        s = s & "(" & Mid(cell.Formula, 2, Len(cell.Formula)) & ")"
    Next
    Application.Volatile
    CombineFormulas = Evaluate(s)
End Function
0

Если все, что вам нужно, это увидеть формулу в ячейке C1, вы можете попробовать это:

= CONCATENATE("= (";SUBSTITUTE(FORMULATEXT(A1);"=";"");") + (";SUBSTITUTE(FORMULATEXT(B1);"=";"");")

Он работает на Excel-2013 но я не смог протестировать на Excel-2007 .

Если вам нужно выполнить эту формулу, вы можете проверить этот ответ о том, как преобразовать эту строку в реальную формулу:

https://stackoverflow.com/questions/4471884/turn-a-string-formula-into-a-real-formula

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .