Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 651
от 19.11.2007, 14:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 274, Экспертов: 40
В номере:Вопросов: 1, Ответов: 5


Вопрос № 109225: Уважаемые эксперты, чем заменить функцию "Если", чтобы избежать ошибки(см. приложение). Проблема вот в этом "До 7 функций ЕСЛИ могут быть вложены друг в друга" Нужно проверять 15 значений. Заранее ОГРОМНОЕ спасибо. ...

Вопрос № 109.225
Уважаемые эксперты, чем заменить функцию "Если", чтобы избежать ошибки(см. приложение). Проблема вот в этом
"До 7 функций ЕСЛИ могут быть вложены друг в друга"
Нужно проверять 15 значений.
Заранее ОГРОМНОЕ спасибо.

Приложение:

Отправлен: 13.11.2007, 15:39
Вопрос задал: Evgen818 (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Genyaa
Здравствуйте, Evgen818!

Воспользуйтесь функцией ВПР:

1. Создайте в свободном месте книги таблицу пределов (например, в А1:В16)

До |Знач
0 |5
5 |6
10 |7
15 |8
30 |9
50 |10
100 |11
200 |15
300 |20
500 |25
1000 |30
1500 |35
2000 |40
2500 |45
3000 |50

2. теперь если в C2 проверяемое значение, то написав формулу

=ВПР(C2;$A$2:$B$17;2)

Вы будете получать жалаемый результат.
---------
Всякое решение плодит новые проблемы.
Ответ отправил: Genyaa (статус: Студент)
Ответ отправлен: 13.11.2007, 16:02
Оценка за ответ: 5
Комментарий оценки:
Спасибо за хорошие ответы и полные ответы

Отвечает: Титов Михаил Анатольевич
Здравствуйте, Evgen818!

Если в книге допустимо использовать модулей VBA, то можно добавить модуль и написать свою функцию, пример в приложении. Формула в ячейке:

=my_func(C2)

Если в С2 не будет никаких значений, нецифровое значение либо значение вне проверямого диапазона - функция вернет 0. Кстати заковыченные "5", "6" и т.д. - это так и надо? В данном виде это не числа, а строкове представление чисел. При общем и числовых форматах ячейки Excel их конечно преобразует в числа, но если изначально нужны числа, то кавычки лучше убрать.

Если есть общие вопросы по работе с модулями VBA (как добавить модуль, функцию и т.д.), то лучше почитать справку или книгу по VBA.

Приложение:

Ответ отправил: Титов Михаил Анатольевич (статус: 3-ий класс)
Ответ отправлен: 14.11.2007, 06:35

Отвечает: HookEst
Здравствуйте, Evgen818!

вариант одной формулой:

=ВЫБОР(ПОИСКПОЗ(C2;{0;5;10;15;30;50;100;200;300;500;1000;1500;2000;2500;3000};1);5;6;7;8;9;10;11;15;20;25;30;35;40;45)

принцип тотже как и у Genyaa, но вместо ВПР используется ПОИСКПОЗ, он не требует дополнительных таблиц.
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 14.11.2007, 06:54
Оценка за ответ: 5
Комментарий оценки:
Спасибо за дополнение

Отвечает: Ерофеев Игорь
Здравствуйте, Evgen818!
Могу порекомендовать Вам не перегружать рабочий лист такими сложными формулами, а применить более гибкие средство - программирование.
Напишите свою функцию (см. приложение) и вставьте ее в ячейки рабочего листа

"=MY_Fn(адрес_ячейки)"

вместо той страшной формулы.

На будущее, указывайте версию MS Office.

Приложение:

Ответ отправил: Ерофеев Игорь (статус: 1-ый класс)
Ответ отправлен: 14.11.2007, 09:41
Оценка за ответ: 4
Комментарий оценки:
Спасибо огромное

Отвечает: Архипов Александр Леонидович
Здравствуйте, Evgen818!
В приложении Макрос - рядом с активной ячейкой, в которой значение, появляется требуемый результат

Приложение:

Ответ отправил: Архипов Александр Леонидович (статус: 10-ый класс)
Ответ отправлен: 14.11.2007, 12:29


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.1 от 14.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное