Функция ЕСЛИ с выбором из диапазона
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
Группа: Админы
Ранг: Участник клуба
Сообщений: 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]
Моя версия, достаточно "в лоб"-ешная, наверное, можно пооптимизировать:Код
=ЕСЛИ(ИЛИ(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
МОИ: Ник , 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
Группа: Админы
Ранг: Участник клуба
Сообщений: 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]
Я там лоханулся - уже исправил: было И, а должно быть конечно ИЛИ [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
МОИ: Ник , 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]но на работе не дают сосредоточится
а я как раз в отпуске
[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