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 шт):

Автор решения: ZxNuClear

Предположим, что таблица, которую вы привели на скриншоте расположена в столбцах 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); "-")
→ Ссылка
Автор решения: vikttur_Stop_RU_war_in_UA

Любое количество строк, любое количество вариантов, любые размеры диапазонов веса:

=ИНДЕКС(B2:D21;ПОИСКПОЗ(F2;A2:A21;-1)+(СЧЁТЕСЛИ(A2:A21;F2)=0);G2)

На основе выбранного тарифа получаем стоимость доставки:

 =G4*F2

введите сюда описание изображения

Примечание. В столбце А значения веса должны располагаться строго по убыванию.

Если таблицу "перевернуть" - расположить вес в порядке возрастания, формула будет короче и шустрее:

=ИНДЕКС(B2:D21;ПОИСКПОЗ(F2;A2:A21;1);G2)

Если возможен вес <100, для корректной работы формулы в наименьшем диапазоне нужно добавить строку с нулевым значением веса о прописать в строке значения тарифов.

→ Ссылка