Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Вычисление формулы записанной как текст

1,586 views
Skip to first unread message

AlexAr

unread,
Jun 23, 2008, 11:19:00 PM6/23/08
to
Как можно преобразовать арифметическую запись из текста в значение?
Пример: имею в ячейке запись типа "3,06*0,95" тип=текст.
В другой ячейке нужно получить значение этого умножения...
Временно вопрос решил длинной записью вида

=ЗНАЧЕН(ЛЕВСИМВ(E14;НАЙТИ("*";E14)-1))*ЗНАЧЕН(ПРАВСИМВ(E14;ДЛСТР(E14)-НАЙТИ("*";E14)-1))

У этой записи есть недостатки. Например выдаст ошибку при записи "3,06*2".
Может есть более красивое и простое решение?
VBA не предлагать.

AlexAr

unread,
Jun 23, 2008, 11:47:01 PM6/23/08
to
P.S. Microsoft Excel 2003

KL

unread,
Jul 9, 2008, 12:02:01 PM7/9/08
to
Просто формулами этого не сделать, но можно проделать такое (помимо VBA):

- Меню Вставка-Имя-Присвоить -> имя: ФОРМУЛА -> ссылается на:
=ВЫЧИСЛИТЬ(ДВССЫЛ("RC[-1]";0)) -> ОК
- В ячейке непосредственно справа от той, которая содержит формулу: =ФОРМУЛА

Привет,
KL
[MVP - Microsoft Office Excel]

Гагарин

unread,
Aug 12, 2008, 1:26:01 AM8/12/08
to
Простите, но у меня в Excel 2003 (SP2) нет функции

=ВЫЧИСЛИТЬ()

--
Не тот прав, кто прав, а тот прав, у кого больше прав.


"KL" пишет:

KL

unread,
Aug 13, 2008, 4:03:01 PM8/13/08
to
ВЫЧИСЛИТЬ() - это не простая функция, а макрофункция. Она не показчывается в
списке функций рабочего листа и работает только из именованных формул или из
VBA. Присутствует она во всех версиях Excel, начиная с Excel 4.0 Если Excel
на англ., то ее эквивалент - EVALUATE()

KL

Гагарин

unread,
Aug 13, 2008, 8:39:00 PM8/13/08
to
Спасибо за ответ! Только я выкрутился другим способом: у меня была задача в
зависимости от диапазона цифр в заголовке таблицы (дни месяца с ... по ...),
считать функцией СУММ из другого листа соответствующие ячейки. Получилось вот
так:

=СУММ(ДВССЫЛ(СЦЕПИТЬ("'Потреб по
Дням'!R[61]C[";R[-2]C-1;"]:R[61]C[";R[-2]C[1]-1;"]");0))

Может кому пригодится...

KL

unread,
Aug 14, 2008, 4:51:01 PM8/14/08
to
Так оптимальнее:

=СУММ(ИНДЕКС('Потреб по Дням'!R[61];R[-2]C-1):ИНДЕКС('Потреб по
Дням'!R[61];R[-2]C[1]-1))

1) Нет конкатенации замедляющей пересчет
2) Формула нелетучая

KL

0 new messages