Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Консультация по Excel / 12 сообщений из 12, страница 1 из 1
19.05.2006, 10:07:17
    #33737618
Мишель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
Привет всем!
Работает кучка функций со строкой:

=(СЦЕПИТЬ("=";ЗАМЕНИТЬ(D25;НАЙТИ("=";D25);20;)))
в результате получается, например , такое значение :

=(3+3*4)*0.34*1.075*10.5*0.85 ,но это текстовая строка,а мне надо
чтобы это отработало как формула в ячейке,
можно ли это как то сделать ?
Пробовал копировать и вставлять специальной вставкой
значение ,все норамально копируется но как формула
отрабатывает лишь после активации ячейки для ввода + Enter.
Можно ли результат как то автоматически получить ?
...
Рейтинг: 0 / 0
19.05.2006, 11:10:17
    #33737873
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
Возможно есть способ проще, но я предлагаю использовать функцию значен() и судя по всему ее придется вставлять в формуле каждый раз где встречается число, выраженное текстом, т.е. что-то типа:

=(СЦЕПИТЬ("="; ЗНАЧЕН(ЗАМЕНИТЬ(D25;НАЙТИ("=";D25);20;)) и т.д. ))


...
Рейтинг: 0 / 0
19.05.2006, 11:12:11
    #33737886
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
Хотя это может не сработать, т.к. функция сцепить() работает с текстовыми данными :(

...
Рейтинг: 0 / 0
19.05.2006, 11:17:41
    #33737913
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
Кстати, функцию сцепить() можно не использовать, а сделать так:
=ЗНАЧЕН("26")*ЗНАЧЕН("45") и т.д.
Вместо 26 и 45, конечно, и нужно вставлять твои выборки, если они возвращают число текстом.

...
Рейтинг: 0 / 0
19.05.2006, 12:34:55
    #33738251
Мишель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
не то все это,похоже это можно сделать только при помощи VBA или
все-таки я не прав ?
...
Рейтинг: 0 / 0
19.05.2006, 12:39:29
    #33738264
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
Мишельне то все это,похоже это можно сделать только при помощи VBA или
все-таки я не прав ?
Без конкретного примера трудно сказать. Возможно вы не правы.
...
Рейтинг: 0 / 0
19.05.2006, 13:23:35
    #33738444
Мишель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
Вот конкретный пример :
строка в D25 например:
(3+3*4.0)*0.34*1.075*10.5*0.85=48.9313125
формула с функциями к D25 в J25:
=(СЦЕПИТЬ("=";ЗАМЕНИТЬ(D25;НАЙТИ("=";D25);20;)))
результат в J25 же :
=(3+3*4)*0.34*1.075*10.5*0.85

Вот и вся картина . D25 получается запросом Interbase-MsQuery-Excel,
надо чтобы в Excel юзверь мог в ячейке J25 правя формулу получать результат,
но не парясь преобразовывая строку в формулу,а сразу имея ее после запроса.
...
Рейтинг: 0 / 0
19.05.2006, 14:20:48
    #33738729
Tachkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
У меня предложение: зачем все параметры формулы считать сразу?
Если можно при получении текстовой строки соблюсти 2 условия, то данную задачу очень просто решить.
1. Оставить неизменным саму формулу уравнения. Тк, что бы в ней менялись только числа.
2. Сохранить разрядность чисел. Т.е. где 0,00 там всегда 0,00; а где 0 000 там всегда 0 000.

Тогда можно найти каждое число в отдельности и составить уравнение. Для этого понадобится пара ПСТР() -ов и несколько ЗНАЧЕН() -ов :))
...
Рейтинг: 0 / 0
19.05.2006, 14:57:17
    #33738905
Мишель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
D25 - это строковое поле из БД Interbase и вытаскивается 1:1,
нужные функции Sql в MsQuery практически отсутствуют ....
...
Рейтинг: 0 / 0
19.05.2006, 15:00:38
    #33738920
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
1-е в ячейке "J25" напиши "=ЗАМЕНИТЬ(D25;НАЙТИ("=";D25);20;)"

2-е нужно в редакторе VB вставить модуль куда скопировать эту пользовательскую функцию
вызоваешь её как обычную формулу
в ячейке пишишь "=Preobraz(J25)"
Код: plaintext
1.
2.
Public Function Preobraz(rng As Range)
     Preobraz = Application.Evaluate("=" & rng)
End Function
см. вложение
...
Рейтинг: 0 / 0
19.05.2006, 18:29:07
    #33739626
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
МишельD25 - это строковое поле из БД Interbase и вытаскивается 1:1,
нужные функции Sql в MsQuery практически отсутствуют ....В MS Query функции SQL отсутсвуют вообще. Все SQL функции в запросе выполняются SQL сервером.

а вместо "=replace(D25, find("=", D25), 20, )" лучше будет написать "=left(d25, find("=", d25)-1)"
...
Рейтинг: 0 / 0
24.05.2006, 09:26:10
    #33747336
Мишель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Консультация по Excel
Спасибо всем,попробую ...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Консультация по Excel / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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