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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 31.01.2008, 17:38   #1
Вики
 
Регистрация: 31.01.2008
Сообщений: 6
По умолчанию Помогите правильно написать формулу

Подскажите, пожалуйста, как правильно составить формулу, если нужно, чтобы в ней выполнялось 10 условий (было 10 ЕСЛИ), программа мне дает записать только 7 ЕСЛИ через ;. Как решить эту проблему?
Я в формуле использовала &, но это неверно...Вот формула:
=ЕСЛИ(N3<=50000;K3*0,12;ЕСЛИ(И(N3>5 0000;N3<=100000;J3<=50000);(50000-J3)*0,12+(N3-50000)*0,2;ЕСЛИ(И(N3>50000;N3<=1000 00;J3>50000;J3<=100000);K3*0,2;ЕСЛИ (И(N3>100000;N3<=150000;J3<=50000); (50000-J3)*0,12+50000*0,2+(N3-100000)*0,25;ЕСЛИ(И(N3>100000;N3<=1 50000;J3>50000;J3<=100000);(100000-J3)*0,2+(N3-100000)*0,25;ЕСЛИ(И(N3>100000;N3<=1 50000;J3>100000;J3<=150000);K3*0,25 ;ЕСЛИ(И(N3>150000;J3<=50000);(50000-J3)*0,12+50000*0,2+50000*0,25+(N3-150000)*0,35))))))&ЕСЛИ(И(N3>150000;J3>50000;J3<=10000 0);(100000-J3)*0,2+50000*0,25+(N3-150000)*0,35;ЕСЛИ(И(N3>150000;J3>10 0000;J3<=150000);(150000-J3)*0,25+(N3-150000)*0,35;ЕСЛИ(И(N3>150000;J3>15 0000);K3*0,35)))

Последний раз редактировалось Вики; 31.01.2008 в 23:11.
Вики вне форума
Старый 01.02.2008, 06:29   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Не думаю, что кто-нибудь будет подробно "разбирать" такую формулу. Могу только посоветовать использовать дополнительные ячейки и поступить следующим образом:
Вводим в доп. ячейку половину формулы (несколько допустимо вложенных ЕСЛИ), и если последнее условие не выполняется, вставляем какой-нибудь идентификатор (пробел, пустую строку, символ @ или еще что-нибудь). В другую доп. ячейку вводим вторую половину формулы с несколькими вложенными ЕСЛИ. Теперь в требуемой ячейке достаточно проверить использованный идентификатор и взять, соответственно, результат первой или второй доп. ячейки
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 01.02.2008, 12:14   #3
Вики
 
Регистрация: 31.01.2008
Сообщений: 6
По умолчанию

Спасибо за совет! попробую сделать так!
Вики вне форума
Старый 01.02.2008, 17:54   #4
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

По-моему, проще написать свою собственную функцию на VBA. Она будет немного медленнее, но понятнее и тем более её будет легче корректировать, если изменятся условия рачётов.
Pavel55 вне форума
Старый 01.02.2008, 22:53   #5
Вики
 
Регистрация: 31.01.2008
Сообщений: 6
По умолчанию

Павел, разъясните, пожалуйста!
Вики вне форума
Старый 02.02.2008, 09:59   #6
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию я за него :)

МИФ(правда смешно - это в русской раскладке), а так VBA - среда программирования в приложениях офиса.
открывается по нажатии alt+f11.
там можно написать свою программку обозвав ее function имяпрограммы () (тут главное function, а имя может быть любым. ну почти любым..)
тогда эта функция будет вам доступна на листе (находится в разделе "определенные пользователем").

если в ней выполнить логические построения с помощью ветвления - if-else или выбора вариантов case или..
в общем там нет ограничений на вложения и можно путем задания разных отступов "подсветить" структуру ветвления.
slan вне форума
Старый 02.02.2008, 13:01   #7
Pavel55
Форумчанин
 
Регистрация: 21.08.2007
Сообщений: 292
По умолчанию

угу, в Excel (и в Word, MS Outlook, PowerPoint, Access) можно писать свои программы (процедуры и функции) на языке программирования Visual Basic for Application (VBA). Можно написать, например, свою функцию СУММ().

Как уже сказали выше, в вашем варианте можно написать через IF (если)

Код:
Function МояФункция (Параметр1, Параметр2, Параметр3 и т.д. ) 

If .... Then
else ...
End If

If .... Then
else ...
End If

If .... Then
else ...
End If

If .... Then
else ...
End If

и т.д. сколко хотите

End Function
А можно через Select Case

Код:
Function МояФункция (Параметр1, Параметр2, Параметр3 и т.д. ) 

Select Case y
Case 1
....
Case 2
....
Case 3
......
и т.д.
End Select

End Function
А в ячейку в Excel будете вводить так

=МояФункция(A1;B1;C1 и т.д.)

где A1, B1, C1 ссылки на ячейки

Последний раз редактировалось Pavel55; 02.02.2008 в 13:05.
Pavel55 вне форума
Старый 04.02.2008, 11:23   #8
Вики
 
Регистрация: 31.01.2008
Сообщений: 6
По умолчанию

Спасибо всем большое! Все получилось!
Вики вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
EXCEl не правильно считает формулу beliy-dis Microsoft Office Excel 5 30.07.2008 14:18
Помогите написать формулу Pinguin82 Microsoft Office Excel 4 01.07.2008 09:01
Помогите написать формулу на языке Delphi Инесса Общие вопросы Delphi 1 16.02.2008 21:38
как правильно составить формулу в Excel? Вики Помощь студентам 2 01.02.2008 12:20