Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Функция ЕСЛИ с выбором из диапазона - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Функция ЕСЛИ с выбором из диапазона
mozhpost Дата: Вторник, 06.09.2022, 10:25 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Уважаемые форумчане, помогите написать формулу. Задача следующая, есть таблица, с ассортиментом ремней для автомобилей. Если артикул (столбец B содержит "PK"-это ремень которому присваивается код тнвэд 4010310000 если длина, указанная в столбце "H" более 60см но не более 180см, 4010330000 если длина более 180 но не более 240, 4010390000 если вне диапазона 60-240. Если артикул содержит "X"-это ремень которому присваивается код 4010320000 если длина, указанная в столбце "H" более 60см но не более 180см, 4010340000 если длина более 180 но не более 240, 4010390000 если вне диапазона 60-240. Результаты должны быть в столбце "M"
К сообщению приложен файл: 8390384.xlsx (54.4 Kb)
 
Ответить
СообщениеУважаемые форумчане, помогите написать формулу. Задача следующая, есть таблица, с ассортиментом ремней для автомобилей. Если артикул (столбец B содержит "PK"-это ремень которому присваивается код тнвэд 4010310000 если длина, указанная в столбце "H" более 60см но не более 180см, 4010330000 если длина более 180 но не более 240, 4010390000 если вне диапазона 60-240. Если артикул содержит "X"-это ремень которому присваивается код 4010320000 если длина, указанная в столбце "H" более 60см но не более 180см, 4010340000 если длина более 180 но не более 240, 4010390000 если вне диапазона 60-240. Результаты должны быть в столбце "M"

Автор - mozhpost
Дата добавления - 06.09.2022 в 10:25
Serge_007 Дата: Вторник, 06.09.2022, 11:41 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Код
=ВПР(ЕСЛИОШИБКА(ПСТР(B2;НАЙТИ("X";B2)+1;9);ЕСЛИ(ЕЧИСЛО(-ПСТР(B2;ПОИСК("PK";B2)+2;9));ПСТР(B2;ПОИСК("PK";B2)+2;9);ЛЕВБ(ПСТР(B2;ПОИСК("PK";B2)+2;9);ДЛСТР(ПСТР(B2;ПОИСК("PK";B2)+2;9))-1)))/10;{0;4010390000;4010390000:60;4010320000;4010310000:180;4010340000;4010330000:240;4010390000;4010390000};ЕЧИСЛО(ПОИСК("X";B8))+2)
К сообщению приложен файл: 20220906_mozhpo.xlsb (59.6 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Код
=ВПР(ЕСЛИОШИБКА(ПСТР(B2;НАЙТИ("X";B2)+1;9);ЕСЛИ(ЕЧИСЛО(-ПСТР(B2;ПОИСК("PK";B2)+2;9));ПСТР(B2;ПОИСК("PK";B2)+2;9);ЛЕВБ(ПСТР(B2;ПОИСК("PK";B2)+2;9);ДЛСТР(ПСТР(B2;ПОИСК("PK";B2)+2;9))-1)))/10;{0;4010390000;4010390000:60;4010320000;4010310000:180;4010340000;4010330000:240;4010390000;4010390000};ЕЧИСЛО(ПОИСК("X";B8))+2)

Автор - Serge_007
Дата добавления - 06.09.2022 в 11:41
Gustav Дата: Вторник, 06.09.2022, 11:55 | Сообщение № 3
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Моя версия, достаточно "в лоб"-ешная, наверное, можно пооптимизировать:
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ЕСЛИ(ЕЧИСЛО(ПОИСК("PK";B2)); ИНДЕКС({"4010330000":"4010310000"};ПОИСКПОЗ(H2;{240:180};-1));
ЕСЛИ(ЕЧИСЛО(ПОИСК(  "X";B2)); ИНДЕКС({"4010340000":"4010320000"};ПОИСКПОЗ(H2;{240:180};-1)))))


И для большей прозрачности с другим тэгом:
[vba]
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ЕСЛИ(ЕЧИСЛО(ПОИСК("PK";B2)); ИНДЕКС({"4010330000":"4010310000"};ПОИСКПОЗ(H2;{240:180};-1));
ЕСЛИ(ЕЧИСЛО(ПОИСК( "X";B2)); ИНДЕКС({"4010340000":"4010320000"};ПОИСКПОЗ(H2;{240:180};-1)))))
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 06.09.2022, 12:19
 
Ответить
СообщениеМоя версия, достаточно "в лоб"-ешная, наверное, можно пооптимизировать:
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ЕСЛИ(ЕЧИСЛО(ПОИСК("PK";B2)); ИНДЕКС({"4010330000":"4010310000"};ПОИСКПОЗ(H2;{240:180};-1));
ЕСЛИ(ЕЧИСЛО(ПОИСК(  "X";B2)); ИНДЕКС({"4010340000":"4010320000"};ПОИСКПОЗ(H2;{240:180};-1)))))


И для большей прозрачности с другим тэгом:
[vba]
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ЕСЛИ(ЕЧИСЛО(ПОИСК("PK";B2)); ИНДЕКС({"4010330000":"4010310000"};ПОИСКПОЗ(H2;{240:180};-1));
ЕСЛИ(ЕЧИСЛО(ПОИСК( "X";B2)); ИНДЕКС({"4010340000":"4010320000"};ПОИСКПОЗ(H2;{240:180};-1)))))
[/vba]

Автор - Gustav
Дата добавления - 06.09.2022 в 11:55
Serge_007 Дата: Вторник, 06.09.2022, 12:12 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
достаточно "в лоб"-ешная
Тоже хотел таким путем пойти, но на работе не дают сосредоточится, поэтому сделал "тупо в лоб" :)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
достаточно "в лоб"-ешная
Тоже хотел таким путем пойти, но на работе не дают сосредоточится, поэтому сделал "тупо в лоб" :)

Автор - Serge_007
Дата добавления - 06.09.2022 в 12:12
mozhpost Дата: Вторник, 06.09.2022, 12:18 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Спасибо, вроде все четко, только позиции где длина меньше 60 некорректные, должно быть 4010390000 при любом типе артикула и позиции где длина больше 240, стоит Н/Д, а должно быть 4010390000 при любом типе артикула.
 
Ответить
СообщениеGustav, Спасибо, вроде все четко, только позиции где длина меньше 60 некорректные, должно быть 4010390000 при любом типе артикула и позиции где длина больше 240, стоит Н/Д, а должно быть 4010390000 при любом типе артикула.

Автор - mozhpost
Дата добавления - 06.09.2022 в 12:18
Gustav Дата: Вторник, 06.09.2022, 12:21 | Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
стоит Н/Д

Я там лоханулся - уже исправил: было И, а должно быть конечно ИЛИ

[p.s.]И подправил чуть - теперь мне самому больше нравится :)[/p.s.]
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ИНДЕКС(
ВЫБОР(1+ЕЧИСЛО(ПОИСК("PK";B2))*1+ЕЧИСЛО(ПОИСК("X";B2))*2;
{"":""};{"4010330000":"4010310000"};{"4010340000":"4010320000"});
ПОИСКПОЗ(H2;{240:180};-1)))

[vba]
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ИНДЕКС(
ВЫБОР(1+ЕЧИСЛО(ПОИСК("PK";B2))*1+ЕЧИСЛО(ПОИСК("X";B2))*2;
{"":""};{"4010330000":"4010310000"};{"4010340000":"4010320000"});
ПОИСКПОЗ(H2;{240:180};-1)))
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 06.09.2022, 12:28
 
Ответить
Сообщение
стоит Н/Д

Я там лоханулся - уже исправил: было И, а должно быть конечно ИЛИ

[p.s.]И подправил чуть - теперь мне самому больше нравится :)[/p.s.]
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ИНДЕКС(
ВЫБОР(1+ЕЧИСЛО(ПОИСК("PK";B2))*1+ЕЧИСЛО(ПОИСК("X";B2))*2;
{"":""};{"4010330000":"4010310000"};{"4010340000":"4010320000"});
ПОИСКПОЗ(H2;{240:180};-1)))

[vba]
Код
=ЕСЛИ(ИЛИ(H2<=60;H2>240);"4010390000";
ИНДЕКС(
ВЫБОР(1+ЕЧИСЛО(ПОИСК("PK";B2))*1+ЕЧИСЛО(ПОИСК("X";B2))*2;
{"":""};{"4010330000":"4010310000"};{"4010340000":"4010320000"});
ПОИСКПОЗ(H2;{240:180};-1)))
[/vba]

Автор - Gustav
Дата добавления - 06.09.2022 в 12:21
Gustav Дата: Вторник, 06.09.2022, 12:31 | Сообщение № 7
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
[offtop]
но на работе не дают сосредоточится
а я как раз в отпуске ;)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение[offtop]
но на работе не дают сосредоточится
а я как раз в отпуске ;)

Автор - Gustav
Дата добавления - 06.09.2022 в 12:31
mozhpost Дата: Вторник, 06.09.2022, 13:36 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Serge_007, Большое спасибо господа!
 
Ответить
СообщениеGustav, Serge_007, Большое спасибо господа!

Автор - mozhpost
Дата добавления - 06.09.2022 в 13:36
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!