Предполагая, что ваши исходные данные изложены, как ваш пример следующим образом:
Затем на листе 2, если ваши данные выложены следующим образом:
Затем вы можете использовать следующую формулу, чтобы получить цифры в красном:
=INDEX(Sheet1!$B$2:$E$5,IFERROR(MATCH(Sheet2!$A$1,Sheet1!$A$2:$A$5,1),1),MATCH(Sheet2!$B1,Sheet1!$B$1:$E$1,0))
Когда искомое значение в долларах меньше, чем первое значение в столбце, возможно, вы получили ошибку. Способ vlookup и match работает так, что они не ищут значения ближайшего числа. Они ищут последний номер, который был меньше, чем они искали. Вот почему ваш столбец должен быть отсортирован в порядке возрастания. Чтобы иметь дело с допустимым значением, которое меньше первого значения в списке, функция сопоставления, которая выдаст ошибку, обернута в функцию iferror, которая возвращает 1 для представления первой строки. Обратите внимание, что если в sheet2! A1 введена неверная запись для цены, она все равно вернет 1 для первой строки.
Для ваших весов это скорее строковые значения, а не числа. Весьма часто, когда ваши единицы перечислены в отдельной ячейке, а затем просто в отдельной ячейке значения, чтобы упростить работу со значениями. В этом случае я предположил, что ваш вес всегда будет точно соответствовать одному из ваших заголовков столбцов. вес 2,5 фунта вызовет ошибку, так как он не найден в вашем списке заголовков.