Родились сегодня:
ivan_papus


Лидеры

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1167

Россия, пос. Теплоозёрск, ЕАО


ID: 405587

Magic2hand

5-й класс

696


ID: 226425

Konstantin Shvetski

Модератор

318

Россия, Северодвинск


ID: 137394

Megaloman

Мастер-Эксперт

181

Беларусь, Гомель


ID: 405604

Ника

Посетитель

141


ID: 400669

epimkin

Профессионал

119


ID: 405537

hipunova1512

Посетитель

88


8.10.4

05.12.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-08 21:46:03-standard


 Basic

Создание программ на языке Basic.

Администратор раздела: Андреенков Владимир (Академик)

Консультация онлайн # 109225

Раздел:  Basic
Автор вопроса: Evgen818
Дата: 13.11.2007, 15:39 Консультация закрыта
Поступило ответов: 5

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

Приложение:

Ответ # 193649 от 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
Ответ # 193759 от Титов Михаил Анатольевич
Здравствуйте, Evgen818!

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

=my_func(C2)

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

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

Приложение:


Титов Михаил Анатольевич

Посетитель
14.11.2007, 06:35
Ответ # 193762 от 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
Ответ # 193780 от Ерофеев Игорь
Здравствуйте, Evgen818!
Могу порекомендовать Вам не перегружать рабочий лист такими сложными формулами, а применить более гибкие средство - программирование.
Напишите свою функцию (см. приложение) и вставьте ее в ячейки рабочего листа

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

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

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

Приложение:


Ерофеев Игорь

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

Приложение:


Архипов Александр Леонидович

Посетитель
14.11.2007, 12:29
Мини-форум консультации # 109225
Нет сообщений в мини-форуме
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Megaloman

Мастер-Эксперт

Рейтинг: 181

Gluck

9-й класс

Рейтинг: 42

Sergey V. Gornostaev

Профессионал

Рейтинг: 5

Асмик Гаряка

Советник

Рейтинг: 0

SFResid

Мастер-Эксперт

Рейтинг: 0

Роман Селиверстов

Советник

Рейтинг: 0