Консультация № 183714
25.06.2011, 20:05
53.35 руб.
25.06.2011, 21:30
0 18 5
Уважаемые эксперты! Пожалуйста, помогите с формулой: в файле EXCEL 2010 для заполнения столбца "D" необходимо выполнить условие: если значение ячейки в столбце "В" меньше 4 то вставить число 100, если от 4 до 8 то число 150, если 8 до 12 то число 200, если больше 12 то число 300
неравенство такое
Dn <=4 то 100
4<Dn<=8 то 150
8<Dn<=12 то 200
Dn>12 то 300

Сам смог написать только для условия меньше 4, а как дальше написать (если это вообще возможно в Excel) это выражение не знаю.
Непосредственно сам файл находится здесь http://depositfiles.com/files/lkr08zkws
а скрин здесь http://depositfiles.com/files/dqgfjjbss
Спасибо.

Обсуждение

давно
Мастер-Эксперт
680
2811
25.06.2011, 20:34
общий
25.06.2011, 20:42
Конечно, можно, и даже не одним способом.
Но!
В вашей формуле не определены значения в точках 4, 8, 12. Т.е. по описанию непонятно, в какой интервал включать эти точки.
Т.е. где-то же надо ставить и знак равенства.
Определитесь, пожалуйста, чему должна равняться функция именно в этих точках, и сообщите в мини-форуме, пожалуйста.
На 4 - 100 или 150?
На 8 - 150 или 200?
На 12 - 200 или 300?
Неизвестный
25.06.2011, 21:13
общий
Я понял, уточняю значения в этих точках

Dn <=4 то 100
4<Dn<=8 то 150
8<Dn<=12 то 200
Dn<12 то 300
давно
Мастер-Эксперт
680
2811
25.06.2011, 21:21
общий
Только Dn>12 то 300, наверное.
давно
Мастер-Эксперт
680
2811
25.06.2011, 21:29
общий
это ответ
Здравствуйте, Березин Вадим Юрьевич!
Первый вариант, с функцией ЕСЛИ
=ЕСЛИ(B1<=4;100;ЕСЛИ(B1<=8;150;ЕСЛИ(B1<=12;200;300)))
Второй вариант, на булевых функциях
=100+50*(B1>4)+50*(B1>8)+100*(B1>12)
У меня нет Office 2010, но в списках новинок ничего про эти функции не написано, предполагаю, что они не изменились.
5
Неизвестный
25.06.2011, 21:30
общий
это ответ
Здравствуйте, Березин Вадим Юрьевич!

=ЕСЛИ(B1<>"";ЕСЛИ(B1<4;100;ЕСЛИ(B1<8;150;ЕСЛИ(B1<12;200;ЕСЛИ(B1>=12;300;""))));"")
5
Неизвестный
25.06.2011, 21:50
общий
Ну, да конечно Dn>12
Неизвестный
25.06.2011, 21:54
общий
25.06.2011, 22:11
это ответ
Здравствуйте, Березин Вадим Юрьевич!
Вот формула для получения результата:
=ЕСЛИ(B3<=4;F1;0)+ЕСЛИ(И(4<B3;B3<=8);G1;0)+ЕСЛИ(И(8<B3;B3<=12);H1;0)+ЕСЛИ(12<B3;I1;0)
Заменяем В3 на нужное значение (В4, В5...) и получаем нужный результат.

Лучше так:
=ЕСЛИ(B3<=4;$F$1;0)+ЕСЛИ(И(4<B3;B3<=8);$G$1;0)+ЕСЛИ(И(8<B3;B3<=12);$H$1;0)+ЕСЛИ(12<B3;$I$1;0)
Тогда можно будет формулу распространить на нижние ячейки протягиванием, без замены В3 на нужное значение вручную - адреса изменятся сами, адреса же ячеек, где записаны выходные значения (100, 150, 200, 300) не изменятся.
Если адреса этих ячеек не сделать абсолютными, при протягивании результат будет неверным.
5
давно
Мастер-Эксперт
680
2811
25.06.2011, 22:28
общий
Естественно, когда вставляете в свой файл формулы из моего ответа и ответа M@gi$†e®, Вы не B1 пишете, а B3 - как в Вашем файле.
Формулы эти тоже протягивать вниз можно - они никак не завязаны на ячейки с конечными значениями.
Но если Вам нужны в формулах не числа, а обязательно адреса ячеек, Вы можете заменить в формулах с ЕСЛИ числа на соответствующие адреса ячеек:
100 на $F$1
150 на $G$1
200 на $H$1
300 на $I$1
Неизвестный
25.06.2011, 22:32
общий
Все формулы работают! Спасибо всем экспертам!
...а что нужно дописать, что бы возвращалось пустое занчение ячейки, если в определенной ячейки столбца В значение пустое, видимо программа воспринимает пустое значение за ноль, а т.к. <0> меньше 4 то она и возращает <100> ?
Неизвестный
25.06.2011, 22:46
общий
можно изменить формулу на:
=ЕСЛИ(И(0<B3;B3<=4);$F$1;0)+ЕСЛИ(И(4<B3;B3<=8);$G$1;0)+ЕСЛИ(И(8<B3;B3<=12);$H$1;0)+ЕСЛИ(12<B3;$I$1;0)
Если будет пустая ячейка, то будет 0.
давно
Мастер-Эксперт
680
2811
25.06.2011, 22:49
общий
25.06.2011, 22:57
Этот момент проработан в ответе M@gi$†e®.

Вообще такая вот конструкция
=ЕСЛИ(B3<>"";сюда вставляете любую из этих длинных формул;"")
обеспечит запись пустого значения в ячейку, если в опрашиваемой ячейке пусто.
Например,
=ЕСЛИ(B3<>"";100+50*(B3>4)+50*(B3>8)+100*(B3>12);"")
=ЕСЛИ(B3<>"";ЕСЛИ(B3<=4;100;ЕСЛИ(B3<=8;150;ЕСЛИ(B3<=12;200;300)));"")
=ЕСЛИ(B3<>"";ЕСЛИ(B3<=4;$F$1;0)+ЕСЛИ(И(4<B3;B3<=8);$G$1;0)+ЕСЛИ(И(8<B3;B3<=12);$H$1;0)+ЕСЛИ(12<B3;$I$1;0);"")

Ну или вариант с равенством:
=ЕСЛИ(B3="";"";сюда вставляете любую из этих длинных формул)
Неизвестный
25.06.2011, 23:06
общий
Всё работает отлично!!! Остается только это всё ещё понять и осознать
давно
Модератор
137394
1850
26.06.2011, 10:15
общий
это ответ
Здравствуйте, Березин Вадим Юрьевич!
Вот еще решение. Здесь я применил очень большие по абсолютной величине числа: отрицательное -1E307 и положительное 1E307. Реально в Вашей задаче они не будут достигнуты, мне они нужны, чтобы определить интервалы чисел.

Пронумеруем интервалы:

1) 12<b<=1E307
2) 8<b<=12
3) 4<b<=8
4) -1E307<b<=4

Значения
1) 300
2) 200
3) 150
4) 100

Тогда, чтобы найти, в каком по номеру интервала находится вводимое число, используем функцию ПОИСКПОЗ.
Выбор значения из массива значений 300;200;150;100 для каждого интервала для найденного значения номера интервала осуществит функция ВЫБОР
Итак, формула:
Код:
=ЕСЛИ(ЕПУСТО(B1);"";ВЫБОР(ПОИСКПОЗ(B1;{1E+307;12;8;4;-1E+307};-1);300;200;150;100))
Чем привлекательно решение -
1. Оно более наглядно
2. Интервалов может быть 29, с помощью ЕСЛИ такого не напишешь
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Модератор
137394
1850
26.06.2011, 10:25
общий
Адресаты:
=100+50*(B1>4)+50*(B1>8)+100*(B1>12)
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
26.06.2011, 16:15
общий
=ЕСЛИ(B1<4;100;ЕСЛИ(B1<8;150;ЕСЛИ(B1<12;200;300))) с помощю копирования далее в ячейки.
Неизвестный
27.06.2011, 09:50
общий
27.06.2011, 11:40
это ответ
Здравствуйте, Березин Вадим Юрьевич!

Для всех вычислений используется формула "Если":

ЕСЛИ(лог_выражение1; значение_если_истина1; значение_если_ложь1)

лог_выражение1 - Ваше первое условие - Dn <= 4
значение_если_истина1 - Мы знаем, подставляем - 100

Итак, получится первая часть задачи:

ЕСЛИ(Dn <= 4;100;значение_если_ложь1)

А что будет, в третьем параметре значение_если_ложь1?

-------------------------------------------------------------------------------------

В третьем параметре будет следующая формула "ЕСЛИ", а именно:

Значение_если_ложь1 =

ЕСЛИ(лог_выражение2;значение_если_истина2;значение_если_ложь2)

лог_выражение2 - Ваше четвёртое условие - Dn > 12
значение_если_истина2 - Мы знаем, подставляем - 300

ЕСЛИ(Dn > 12;300;значение_если_ложь2)

-------------------------------------------------------------------------------------

В третьем параметре будет следующая формула "ЕСЛИ", а именно:

Значение_если_ложь2 =

ЕСЛИ(лог_выражение3;значение_если_истина3;значение_если_ложь3)

лог_выражение3 - Ваше третье условие - Dn > 8
значение_если_истина3 - Мы знаем, подставляем - 200

ЕСЛИ(Dn > 8;200;значение_если_ложь3)

-------------------------------------------------------------------------------------

В третьем параметре остается только значение 150.

значение_если_ложь3 = 150

ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ

Собираем всё в одну формулу:

ЕСЛИ(Dn <= 4;100;

___ЕСЛИ(Dn > 12;300;

-----___ЕСЛИ(Dn > 8;200;
-----___------150
-----___)
___)
)

Итог:
=ЕСЛИ(D1 <= 4;100;ЕСЛИ(D1 > 12;300;ЕСЛИ(D1 > 8;200;150)))
Неизвестный
27.06.2011, 09:53
общий
Прошу прощения, за дубль ответа, глюк какой то - только что смотрел - не было ни одного ответа, написал - отправил и тут они ВСЕ появились :(. Странно :(.


ТО Сучкова Татьяна Михайловна: с помощью булевых формул здорово. Я и не знал такой способ. Спасибо.
Неизвестный
05.07.2011, 19:48
общий
РЕБЯТА!!!
Не гонитесь за ЖарПтицей!!!
в Экселе это делается просто:
=ЕСЛИ(B1<>"";ЕСЛИ(B1>=12;300;ЕСЛИ(B1>=8;200;ЕСЛИ(B1>=4;150;ЕСЛИ(B1<4;100;""))));"")
привыкайте строить от БОЛЬШЕ-РАСШИРЕННОГО ЕСЛИ в сторону меньше-расширенного ЕСЛИ :)
Форма ответа