3

Например, если ячейка A1 содержит функцию =SUM(B1:B6) есть ли способ, которым я мог бы использовать формулу, подобную SUBSTITUTE(A1,"SUM","COUNT") чтобы вернуть формулу =COUNT(B1:B6)?

В качестве альтернативы, есть ли формула, которая будет возвращать то, что было введено - то есть return =SUM(B1:B6) в виде строки вместо значения?

2 ответа2

2

Существует FORMULATEXT который доступен с версии 2013.

Таким образом, вы можете использовать оба
FORMULATEXT(A1)
а также
SUBSTITUTE(FORMULATEXT(A1),"SUM","COUNT")
Во-вторых, формула будет приведена в виде текста, вы не можете ее оценить.

Для версий до 2010 вы можете сделать это только с VBA.

2

Это действительно дополнение к ответу Мате Юхаса, а не полное решение вопроса. Ответ - единственный способ включить изображение, и этот подход может быть ограничен в зависимости от того, с какими версиями Excel он будет работать.

Я упомянул функцию «ОЦЕНИТЬ» в комментариях к вопросу и ответу Мате. У меня нет доступа к Excel 2013 (и я не знаю, в какой степени Мате мог это проверить). Я провел быстрый тест на Excel 2007, который, к сожалению, не поддерживает функцию FORMULATEXT. Поэтому я не мог применить это непосредственно к этому ответу. Однако, вот природа того, как это будет использоваться; это должно быть адаптировано к фактическому решению.

Скриншот

Ячейка A1 содержит оригинальную формулу в вопросе. A2 содержит замещенный текст (пришлось жестко закодировать формулу A1, поскольку FORMULATEXT не поддерживается). A3 является ссылкой на именованный диапазон, который содержит функцию EVALUATE, примененную к замещенной формуле.

Если это работает в Excel 2013, решение будет выглядеть так:

Создайте именованный диапазон (назовите его, скажем, "формула"), определенный как:

=EVALUATE(SUBSTITUTE(FORMULATEXT(A1),"SUM","COUNT"))

Обратитесь к названному диапазону для результата:

=formula

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