Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2009, 14:12   #1
vprima
 
Регистрация: 16.02.2009
Сообщений: 3
По умолчанию Логические подстановки в формулах/функциях

Подскажите, пожалуйста, как сделать подстановку логического выражения в формулах/функциях если они формируются текстовой строкой
например
М5 =СЦЕПИТЬ(ЯЧЕЙКА("адрес";G7);ЯЧЕЙКА( "содержимое";K5);L5)

и его надо подставить в

О5 =ЕСЛИ(M5;P5;Q5)

в такой редакции выдает #знач

а как сделать забыл, но знаю что можно (давно не занимался Excel)

спасибо
vprima вне форума Ответить с цитированием
Старый 16.02.2009, 14:27   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Не совсем уверен, что понял вопрос, возможно через ДВССЫЛ или =ЕСЛИ(M5="не знаю чему";P5;Q5)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.02.2009, 14:38   #3
vprima
 
Регистрация: 16.02.2009
Сообщений: 3
По умолчанию

Возможно плохо сформулировал вопрос

например
М5 =СЦЕПИТЬ(ЯЧЕЙКА("адрес";G7);ЯЧЕЙКА( "содержимое";K5);L5)
результат G7>=5,
т.е в М5 (записано текстом G7>=5) формируется будущее логическое выражение которое надо подставить в формулу как логическое

=ЕСЛИ(M5;P5;Q5)
в такой редакции выдает #знач

спасибо[/QUOTE]
vprima вне форума Ответить с цитированием
Старый 16.02.2009, 15:38   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

наверное, только так:
Код:
=если(K5="=";если(G7=L5;P5;Q5);если(K5="<>";если(G7<>L5;P5;Q5);если(K5=">";если(G7>L5;P5;Q5);если(K5=">=";если(G7>=L5;P5;Q5);если(K5="<";если(G7<L5;P5;Q5);если(K5="<=";если(G7<=L5;P5;Q5);))))))
или в М5 получить ИСТИНУ/ЛОЖЬ:
Код:
=если(K5="=";G7=L5;если(K5="<>";G7<>L5;если(K5=">";G7>L5;если(K5=">=";G7>=L5;если(K5="<";G7<L5;если(K5="<=";G7<=L5;))))))
а тогда:
=ЕСЛИ(M5;P5;Q5)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 16.02.2009, 16:27   #5
vprima
 
Регистрация: 16.02.2009
Сообщений: 3
По умолчанию

спасибо
но мне кажется что есть оператор который переводит текстовую строку в исполняемую
vprima вне форума Ответить с цитированием
Старый 16.02.2009, 16:42   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
мне кажется что есть оператор который переводит текстовую строку в исполняемую
Вам правильно кажется

В виде макроса это будет выглядеть так:
Код:
Sub test()
    [a1] = "G7>=5" ' в ячейку заносим условие в виде текста
    MsgBox Evaluate([a1].Value) ' проверяем это условие
End Sub
Как это записать в виде формулы (и вообще, возможно ли такое) - не знаю...
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Код в поцедурах и функциях! Jondeer Общие вопросы C/C++ 1 10.06.2008 18:16
Автозамена в формулах debilder Microsoft Office Excel 1 10.02.2008 02:57
Список подстановки Nasya Microsoft Office Excel 3 11.10.2007 04:18
Изменяемый диапазон массива в функциях slba Microsoft Office Excel 4 29.06.2007 19:10