Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интересный вопрос, формула в Exel с несколькими условиями 
:(
    Опции темы
BlackHawk
Дата 31.5.2005, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 15.8.2003

Репутация: нет
Всего: нет



Привет!

Вопрос довольно непростой:

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

Например.
Есть некая таблица в 2 столбика:
• в первом - столбец А - числовые значения
• во втором - столбец В - расчетные данные

необходимо создать формулу с условиями:

- если значение А <90, то А*0,2
- если 90<А<100, то А*0,4
- если 100<А<120, то А*0,5

все эти три условия необходимо вписать в одну формулу в расчетном столбце

* для одного условия формула будет иметь вид:
=ЕСЛИ(ИЛИ(A1>90; A1<100); A1*0,4)
PM MAIL ICQ   Вверх
~FoX~
Дата 31.5.2005, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: нет
Всего: 68



BlackHawk
Справка:

Цитата
Заметки
До 7 функций ЕСЛИ могут быть вложены друг в друга в качестве значений аргументов значение_если_истина и значение_если_ложь для конструирования более сложных проверок. См. последний из приведенных ниже примеров.

Пример:
=ЕСЛИ(A3>89;"A";
  ЕСЛИ(A3>79;"B";
  ЕСЛИ(A3>69;"C";
  ЕСЛИ(A3>59;"D";"F"))))



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
BlackHawk
Дата 31.5.2005, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 15.8.2003

Репутация: нет
Всего: нет



ОК.
Круто, все работает!
Рекомендую всем: очень кульный прием, помогает при сложных рассчетах!!!

Так держать!!!

:-)))))))))))))))))))))))))))))))))
PM MAIL ICQ   Вверх
~FoX~
Дата 31.5.2005, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: нет
Всего: 68



BlackHawk
Ну ды как водиться, если ничего не помагает, курите маны smile


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
BlackHawk
Дата 31.5.2005, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 15.8.2003

Репутация: нет
Всего: нет



А вот полученная формула:

=ЕСЛИ((ячейка_1<95%);ячейка_2*0;ЕСЛИ(ИЛИ(95%<=ячейка_1; ячейка_1<105%);ячейка_2*0,025;ЕСЛИ(ИЛИ(105%<=ячейка_1; ячейка_1<115%);ячейка_2*0,025;ЕСЛИ(ИЛИ(115%<=ячейка_1; ячейка_1<=120%);ячейка_2*0,03;ЕСЛИ(ИЛИ(120%<ячейка_1);ячейка_2*0,035)))))


здесь ячейка_1 - координата ячейки
процентные ставки и коэффициенты умножения можно варьировать

может применяться, например при расчете премий, в зависимости от процента выполнения плана....

рекомендую взять на вооружение.

Успехов.
smile
PM MAIL ICQ   Вверх
Akina
Дата 31.5.2005, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



BlackHawk
При сложных расчетах куда лучше помогает добавление в книгу модуля с необходимыми расчетными формулами. Только не забываем вставлять Application.Volatile.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
AsIs
Дата 31.5.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 2.4.2005
Где: Санкт-Петербург

Репутация: 15
Всего: 17



Цитата
рекомендую взять на вооружение.


smile
НАМНОГО легче и эффективнее использовать функцию ВПР.
В отдельной подстановочной таблице указываются в первом столбце диапазоны значения А, а во втором столбце коэффициент для умножения.
Читайте справку - там все довольно просто.

А что касается функции ЕСЛИ, то она хороша, когда используется с одним, двумя, ну может быть тремя условиями, а дальше эффективность чтения, исправления, верификации сильно снижается.

Это сообщение отредактировал(а) AsIs - 31.5.2005, 18:16
PM MAIL ICQ   Вверх
Staruha
Дата 31.5.2005, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 6
Всего: 27



Функция ЕСЛИ может иметь до шести колен ЕСЛИ. Если удасться все отследить ,то ощущение наличия интелекта. smile


--------------------
Возмездие настигнет
PM MAIL   Вверх
likhobory
Дата 31.5.2005, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 5
Всего: 20



на вкус и цвет...
IMHO в данном случае вариант с формулами рабочего листа удобен при одно/двукратном применении в листе, в противном случае проще сварганить собственную ф-ю и воспользоваться вариантом, предложенным Akina


--------------------
PM MAIL   Вверх
~FoX~
Дата 1.6.2005, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: нет
Всего: 68



Цитата(Staruha @ 31.5.2005, 21:22)
Функция ЕСЛИ может иметь до шести колен ЕСЛИ

До 7-ми.

На такой задаче писать модуль откровенно вламы, при более сложных расчетах/отчетах естественно это лучший вариант.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
AsIs
Дата 1.6.2005, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 2.4.2005
Где: Санкт-Петербург

Репутация: 15
Всего: 17



Цитата(likhobory @ 31.5.2005, 22:06)
IMHO в данном случае вариант с формулами рабочего листа удобен при одно/двукратном применении в листе, в противном случае проще сварганить собственную ф-ю и воспользоваться вариантом, предложенным Akina

Ну давайте подискутируем... smile
Чем своя собственная функция, реализованная в модуле будет отличаться по функциональным возможностям от ВПР?
Что касается ЕСЛИ, то в случае наличия семи диапазонов на числовой оси необходимо шесть вложенных ЕСЛИ, в то время как при применении ВПР нужна одна функция ВПР. smile

Хотя согласен, на вкус и цвет... Ну не нравятся кому-то функции из трех букв, что тут поделаешь. smile

PS: прочитал написанное - прямо как коммерческий агент по продажам функции ВПР. smile

Это сообщение отредактировал(а) AsIs - 1.6.2005, 12:57
PM MAIL ICQ   Вверх
Akina
Дата 1.6.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(AsIs @ 1.6.2005, 13:56)
Чем своя собственная функция, реализованная в модуле будет отличаться по функциональным возможностям от ВПР?

А тем, что ей ткнул пальцем, откуда брать данные, и не заботишься о том чтобы все они подряд шли в одной колоночке... а можно и автоматом найти что надо и посчитать как хочется.
Встроенная функция хотя и быстрая, но тупа-а-ая...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
AsIs
Дата 1.6.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 2.4.2005
Где: Санкт-Петербург

Репутация: 15
Всего: 17



Цитата(Akina @ 1.6.2005, 13:05)
А тем, что ей ткнул пальцем, откуда брать данные, и не заботишься о том чтобы все они подряд шли в одной колоночке... а можно и автоматом найти что надо и посчитать как хочется.

Я не против самой идеи написания собственных функций.
Речь идет о конкретном примере.
Что "посчитать как хочется"? Насколько я понимаю, здесь речь шла о подстановке определенного коэффициента в зависимости от числового значения. О каких особых расчетах идет речь?
Как в пользовательской функции указать границы диапазонов? Вбить в сами IF - и это эффективное решение? Задать их в массиве - а чем тогда это отличается от ввода в колонки значений.
А заботиться всегда надо о чем-то. Пусть значения вводятся в столбик или где-то вводятся в модуле.

Цитата(Akina @ 1.6.2005, 13:05)
Встроенная функция хотя и быстрая, но тупа-а-ая...

Определите Ваши критерии "тупизны". smile

PS: споры как лучше реализовывать : писать модули или использовать стандартные функции сродни религиозным спорам о том какой язык программирования лучше.


PM MAIL ICQ   Вверх
Akina
Дата 1.6.2005, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(AsIs @ 1.6.2005, 14:41)
здесь речь шла о подстановке определенного коэффициента в зависимости от числового значения

Использование встроенной функции требует держать где-то таблицу коэффициентов. Самописной - нет.

Цитата(AsIs @ 1.6.2005, 14:41)
Определите Ваши критерии "тупизны".

Функция делает то что кодер написАл. В оптимуме - то что он хотел. Как прявило я хочу немного не то, что хотел кодер из Майкрософт. В этом случае я предпочитаю сразу сделать сам, а не комбинировать чужие поделки в надежде собрать то что мне нужно.

В основном - согласен. Да, спор действительно религиозный.
Добавлено @ 14:23
По сабжу: функция типа
Код
' draft code
Function MyCalc(A as Double) as Double
Application.Volatile
Select Case A
Case Is < 90
   MyCalc = A * .2
   Exit Function
Case Is < 100
   MyCalc = A * .4
   Exit Function
End Select
MyCalc = A * .5
End Function
И соответственно в ячейке В1 формула =MyCalc(A1).

Это будет работать быстрее чем ВПР.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
likhobory
Дата 1.6.2005, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 466
Регистрация: 17.5.2005
Где: Москва

Репутация: 5
Всего: 20



а скольких споров и проблем можно было-бы избежать, если б не позиция мелкософта в отношении исПодников, эх, старая песня...


--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Работа с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Работа с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.1531 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.