Google Sheets поиск значения в диапазоне
Есть вот такая таблица, в ней 3 варианта доставки товара и сам тариф на основе веса товара:
- Если вес 0-99 то 320
- Если вес 100-109 то 3
- Если вес 110-119 то 2,9
На выходе хочу получить формулу куда могу ввести "Вес груза", "Вариант" и получить тариф на доставку
Пока на уме вот такая формула для каждого вариант
=IF(H3<А21;B21;IF(H3<А20;B20;IF(H3<А19;B19 ... )))
Но думаю есть и попроще вариант, может кто сможет подсказать? Или хотя бы как она называется чтобы самому загуглить
Ответы (2 шт):
Предположим, что таблица, которую вы привели на скриншоте расположена в столбцах A:D. Вводимый вес вы будете указывать в ячейку F3, а Вариант в ячейку G3:
=ЕСЛИОШИБКА(ИНДЕКС(QUERY(A2:D; "select B, C, D where A >= " & F3+1 & " order by A limit 1"; 0 ); G3); "-")
UPD
Чтобы формула воспринимала дробные числа измените ее одним из следующих образов
для обычного округления (до 0,5 в меньшую сторону, свыше 0,5 в большую):
=IFERROR(INDEX(QUERY(A2:D; "select B, C, D where A >= " & ROUND(F3)+1 & " order by A limit 1"; 0 ); G3); "-")
либо для округления всегда в большую сторону:
=IFERROR(INDEX(QUERY(A2:D; "select B, C, D where A >= " & ROUNDUP(F3)+1 & " order by A limit 1"; 0 ); G3); "-")
Любое количество строк, любое количество вариантов, любые размеры диапазонов веса:
=ИНДЕКС(B2:D21;ПОИСКПОЗ(F2;A2:A21;-1)+(СЧЁТЕСЛИ(A2:A21;F2)=0);G2)
На основе выбранного тарифа получаем стоимость доставки:
=G4*F2
Примечание. В столбце А значения веса должны располагаться строго по убыванию.
Если таблицу "перевернуть" - расположить вес в порядке возрастания, формула будет короче и шустрее:
=ИНДЕКС(B2:D21;ПОИСКПОЗ(F2;A2:A21;1);G2)
Если возможен вес <100, для корректной работы формулы в наименьшем диапазоне нужно добавить строку с нулевым значением веса о прописать в строке значения тарифов.


