Функция ЕСЛИ с выбором из диапазона
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"
Уважаемые форумчане, помогите написать формулу. Задача следующая, есть таблица, с ассортиментом ремней для автомобилей. Если артикул (столбец 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
Ответить
Сообщение Уважаемые форумчане, помогите написать формулу. Задача следующая, есть таблица, с ассортиментом ремней для автомобилей. Если артикул (столбец 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)
=ВПР(ЕСЛИОШИБКА(ПСТР(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
Ю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
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация:
1194
±
Замечаний:
±
начинал с 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)))))
И для большей прозрачности с другим тэгом:
=ЕСЛИ(ИЛИ(H2<=60 ;H2>240 );"4010390000" ;
ЕСЛИ(ЕЧИСЛО(ПОИСК("PK" ;B2)); ИНДЕКС({"4010330000" :"4010310000" };ПОИСКПОЗ(H2;{240:180};-1 ));
ЕСЛИ(ЕЧИСЛО(ПОИСК( "X" ;B2)); ИНДЕКС({"4010340000" :"4010320000" };ПОИСКПОЗ(H2;{240:180};-1 )))))
Моя версия, достаточно "в лоб"-ешная, наверное, можно пооптимизировать:
=ЕСЛИ(ИЛИ(H2 <=60;H2 >240);"4010390000";ЕСЛИ(ЕЧИСЛО(ПОИСК("PK";B2 )); ИНДЕКС({"4010330000":"4010310000"};ПОИСКПОЗ(H2 ;{240:180 };-1));ЕСЛИ(ЕЧИСЛО(ПОИСК( "X";B2 )); ИНДЕКС({"4010340000":"4010320000"};ПОИСКПОЗ(H2 ;{240:180 };-1)))))
И для большей прозрачности с другим тэгом:
=ЕСЛИ(ИЛИ(H2<=60 ;H2>240 );"4010390000" ;
ЕСЛИ(ЕЧИСЛО(ПОИСК("PK" ;B2)); ИНДЕКС({"4010330000" :"4010310000" };ПОИСКПОЗ(H2;{240:180};-1 ));
ЕСЛИ(ЕЧИСЛО(ПОИСК( "X" ;B2)); ИНДЕКС({"4010340000" :"4010320000" };ПОИСКПОЗ(H2;{240:180};-1 )))))
Gustav
МОИ: Ник , 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
Тоже хотел таким путем пойти, но на работе не дают сосредоточится, поэтому сделал "тупо в лоб"
Тоже хотел таким путем пойти, но на работе не дают сосредоточится, поэтому сделал "тупо в лоб" Serge_007
Ю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
Ответить
Сообщение Gustav, Спасибо, вроде все четко, только позиции где длина меньше 60 некорректные, должно быть 4010390000 при любом типе артикула и позиции где длина больше 240, стоит Н/Д, а должно быть 4010390000 при любом типе артикула. Автор - mozhpost Дата добавления - 06.09.2022 в 12:18
Gustav
Дата: Вторник, 06.09.2022, 12:21 |
Сообщение № 6
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация:
1194
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
Я там лоханулся - уже исправил: было И, а должно быть конечно ИЛИP.S. И подправил чуть - теперь мне самому больше нравится :)
=ЕСЛИ(ИЛИ(H2 <=60;H2 >240);"4010390000";ИНДЕКС(ВЫБОР(1+ЕЧИСЛО(ПОИСК("PK";B2 ))*1+ЕЧИСЛО(ПОИСК("X";B2 ))*2;{"":""};{"4010330000":"4010310000"};{"4010340000":"4010320000"});ПОИСКПОЗ(H2 ;{240:180 };-1)))
=ЕСЛИ(ИЛИ(H2<=60 ;H2>240 );"4010390000" ;
ИНДЕКС(
ВЫБОР(1 +ЕЧИСЛО(ПОИСК("PK" ;B2))*1 +ЕЧИСЛО(ПОИСК("X" ;B2))*2 ;
{"" :"" };{"4010330000" :"4010310000" };{"4010340000" :"4010320000" });
ПОИСКПОЗ(H2;{240:180};-1 )))
Я там лоханулся - уже исправил: было И, а должно быть конечно ИЛИP.S. И подправил чуть - теперь мне самому больше нравится :)
=ЕСЛИ(ИЛИ(H2 <=60;H2 >240);"4010390000";ИНДЕКС(ВЫБОР(1+ЕЧИСЛО(ПОИСК("PK";B2 ))*1+ЕЧИСЛО(ПОИСК("X";B2 ))*2;{"":""};{"4010330000":"4010310000"};{"4010340000":"4010320000"});ПОИСКПОЗ(H2 ;{240:180 };-1)))
=ЕСЛИ(ИЛИ(H2<=60 ;H2>240 );"4010390000" ;
ИНДЕКС(
ВЫБОР(1 +ЕЧИСЛО(ПОИСК("PK" ;B2))*1 +ЕЧИСЛО(ПОИСК("X" ;B2))*2 ;
{"" :"" };{"4010330000" :"4010310000" };{"4010340000" :"4010320000" });
ПОИСКПОЗ(H2;{240:180};-1 )))
Gustav
МОИ: Ник , 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
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация:
1194
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
Оффтоп:
но на работе не дают сосредоточится
а я как раз в отпуске
[offtop]но на работе не дают сосредоточится
а я как раз в отпуске Gustav
МОИ: Ник , 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
Ответить
Сообщение Gustav, Serge_007, Большое спасибо господа! Автор - mozhpost Дата добавления - 06.09.2022 в 13:36