Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как переделать строку в формулу? / 20 сообщений из 20, страница 1 из 1
02.11.2006, 10:37:48
    #34099831
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
Привет всем,

Если ли в Excel функция, которая способна преобразовывать строку в формулу:

Пример:

=НУЖНАЯ_ФУНКЦИЯ("A1+B2") должна преобразовывать в формулу =A1+B2.

Пример простой, прошу на него не ссылаться при ответе, поскольку аргументом может служить довольно сложная составная строка.
...
Рейтинг: 0 / 0
02.11.2006, 10:42:55
    #34099859
Mitar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
Доброго здоровья.

Вам ведь наверное нужен только конкретный случай, мож от этого и отталкиваться.
...
Рейтинг: 0 / 0
02.11.2006, 10:45:46
    #34099873
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
функция в виде знака равенства?

F(X) = "=" & X
...
Рейтинг: 0 / 0
02.11.2006, 13:58:21
    #34100867
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
to vbapro

можно конкретнее?
...
Рейтинг: 0 / 0
02.11.2006, 14:07:47
    #34100911
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
если записана формула в виде строки "A1+B1" или "SUM(A8:B12)", что чтоб она стала формулой excel её нужно просто записать со знаком равенства: "SUM(A8:B12)" -> "=SUM(A8:B12)". Или о друго спрашивали? Тогда поподробнее напишите.
...
Рейтинг: 0 / 0
02.11.2006, 14:07:49
    #34100912
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
MitarДоброго здоровья.

Вам ведь наверное нужен только конкретный случай, мож от этого и отталкиваться.

на листе "лист1" в ячейке b2 стоит состовная строка. Цель заключается в том, чтобы это была формула.
...
Рейтинг: 0 / 0
02.11.2006, 14:10:10
    #34100917
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
тогда может подойдет функция листа INDIRECT ..
...
Рейтинг: 0 / 0
02.11.2006, 14:14:07
    #34100937
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
в колонке B напиши формулу: =A1&"!A1"
в колонке С напиши формулу: =INDIRECT(B1)
...
Рейтинг: 0 / 0
02.11.2006, 15:30:56
    #34101334
Taranaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
Не работает так...
ДВССЫЛ(INDERECT) не хочет в этом помогать.
Он отлично передает в функции диапазоны, заданные, как текст. А со сложением/вычитанием и пр - у него траблы...
Т.е.
=ДВССЫЛ("A1") - работает
=ДВССЫЛ("B1") - работает
=ДВССЫЛ("A1") + ДВССЫЛ("B1") - работает
а =ДВССЫЛ("A1+B1") уже не работает

Автор топика хотел сделать так чтоб работало...
При этом не только "A1+B1" но и "A1-B1" и "A1/B1" и "A1/B1*C1^D1"

Забавно, если без макросов такое можно реализовать...
С макросами то уже обсуждалось...
...
Рейтинг: 0 / 0
02.11.2006, 15:39:01
    #34101368
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
2 Taranaga:
какой топик имеешь в виду? я сейчас решаю такую задачу, может что-то инетесное вычитаю

а без VBA, наверное, будет невозможно выполнить любую формулу из текста
...
Рейтинг: 0 / 0
02.11.2006, 15:59:20
    #34101464
Mikhail Eremkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
TaranagaНе работает так...
ДВССЫЛ(INDERECT) не хочет в этом помогать.
Он отлично передает в функции диапазоны, заданные, как текст. А со сложением/вычитанием и пр - у него траблы...
Т.е.
=ДВССЫЛ("A1") - работает
=ДВССЫЛ("B1") - работает
=ДВССЫЛ("A1") + ДВССЫЛ("B1") - работает
а =ДВССЫЛ("A1+B1") уже не работает

Автор топика хотел сделать так чтоб работало...
При этом не только "A1+B1" но и "A1-B1" и "A1/B1" и "A1/B1*C1^D1"

Забавно, если без макросов такое можно реализовать...
С макросами то уже обсуждалось...

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

Другой пример, думаю более наглядный.
...
Рейтинг: 0 / 0
02.11.2006, 16:02:46
    #34101487
Taranaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
вот здесь обсуждалось...
/topic/317763&hl=evaluate

правильный ответ: evaluate
...
Рейтинг: 0 / 0
02.11.2006, 16:09:41
    #34101525
Taranaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
Кстати, вот без макросов от того же автора :)
AshtonТы можешь использовать формулу ВЫЧИСЛИТЬ (EVALUATE в англ. варианте). Но, к сожалению, ее напрямую использовать нельзя.

Пример.

A1 = 1
B1 = 2
C1 = СУММ(A1;B1)*3

В D1, соответсвенно, мы хотим получить результат "9".

1. Вставка->Имя->Присвоить.
2. Даем имя, например "ev".
3. В строке формула пишем: =ВЫЧИСЛИТЬ(Лист1!$C$1) и нажимаем Ок.
4. Встаем на ячейку D1.
5. Вставка->Имя->Вставить
6. Выбираем "ev" и нажимаем Ок.

Также, можно все это на VBA реализовать.

Еще один способ. Выделяешь формулу, нажимаешь F9, нажимаешь ENTER.
Проверил - все работает :)
...
Рейтинг: 0 / 0
02.11.2006, 16:21:09
    #34101563
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
через макросы, понятное дело, можно. ВЫЧИСЛИТЬ (EVALUATE) через имя Excel тоже как макрос воспринимает. Если это не проблема, то лучше уж через VBA
...
Рейтинг: 0 / 0
02.11.2006, 16:28:22
    #34101594
Taranaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
Тогда так:
Код: plaintext
1.
2.
Function eval(FuncText)
eval = Evaluate(CStr(FuncText))
End Function
При этом требуется чтобы функции на листе прописывались в нерусском формате. Например вместо:
СУММ(A1;A2)*3-a2
нужно писать
sum(A1,A2)*3-a2
...
Рейтинг: 0 / 0
02.11.2006, 17:41:24
    #34101921
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
vbaproВЫЧИСЛИТЬ (EVALUATE) через имя Excel тоже как макрос воспринимает

Не совсем - отключить нельзя :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
02.11.2006, 17:50:58
    #34101957
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
KL (XL) vbaproВЫЧИСЛИТЬ (EVALUATE) через имя Excel тоже как макрос воспринимает

Не совсем - отключить нельзя :-)

KL
[MVP - Microsoft Excel]
:-) но пользователь может отдельно отключить Excel4 макрос, когда об этом спрашивается
...
Рейтинг: 0 / 0
02.11.2006, 18:28:52
    #34102084
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
vbapro :-) но пользователь может отдельно отключить Excel4 макрос, когда об этом спрашивается

Нет, он может только выбрать открыть файл или нет.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
02.11.2006, 19:10:07
    #34102206
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
KL (XL)Нет, он может только выбрать открыть файл или нет.
KL
[MVP - Microsoft Excel]
не хочу показаться назойливым :), но у меня вот такое сообщение показывается при открытии таких файлов:
...
Рейтинг: 0 / 0
02.11.2006, 19:38:51
    #34102246
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как переделать строку в формулу?
vbapro KL (XL)Нет, он может только выбрать открыть файл или нет.
не хочу показаться назойливым :), но у меня вот такое сообщение показывается при открытии таких файлов:

Ты прав - я как-то пропустил момент, когда сие стало возможным c именами (с макролистами это пока еще не возможно). Любопытно, что для включения достаточно сунуть курсор в формулу имени и нажать OK.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как переделать строку в формулу? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]