4

У меня есть следующие таблицы в Excel:

Товарный запас

а также

Анализ запасов ,

Таблица запасов продукта (PST) является более обширной, чем эта, но для целей этого вопроса я сократил ее.

Я хочу, чтобы значение в столбце таблицы анализа запасов (SAT) совпадало со значением в столбце Размер таблицы запасов продукта.

Например, в этом случае значение в столбце «Размер» моей таблицы «Товарный запас» (PST) равно 8, поэтому я хочу найти значение в столбце « Размер 8» моей таблицы «Анализ запаса». Если бы мое значение было 5, тогда ищите Размер 5 в моей таблице анализа запасов (SAT).

Обратите внимание, что была проведена проверка данных, чтобы убедиться, что значения в столбце «Размер» моей таблицы «Товарный запас» основаны на указанном измерении, следовательно, будут иметь только диапазон размеров, которые также являются столбцами таблицы «Анализ запаса».

Также была добавлена формула, чтобы гарантировать, что следующая строка SAT всегда будет иметь номер партии, который на одну единицу больше, чем предыдущая строка (т. Е. В каждой колонке нет увеличения на 1 для каждой новой строки). нет повторения партий в сат

То, что я до сих пор это:

=IF(PST[Batch No]=SAT[Batch No, VLOOKUP(PST[Batch No], PST, Stuck here, FALSE), "")

Что мне нужно для col_index_num - это сопоставить значение в моем столбце Size моего PST с последним символом строки в заголовках SAT, исключая заголовок Batch No (хотя это может не повлиять на это). Когда есть совпадение, укажите номер столбца в таблице.

Это даст значение в этом столбце, соответствующее номеру партии.

Надеюсь, это довольно понятно.

Мне бы очень не хотелось вникать в VBA

2 ответа2

10

Что-то вроде этого?

Формула в H12 это:

=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)

Изменить: Как работает формула в H12 .

Часть, которая предоставляет номер столбца,

MATCH("Size "&F12,$C$5:$H$5,0)

сначала объединяет префикс "Size " со значением F12 (= 8), в результате чего получается строка "Size 8" . Затем он просматривает ячейки в строке заголовка $C$5:$H$5 чтобы найти эту ключевую строку, и возвращает номер соответствующей ячейки, а именно 6 (последняя ячейка в заголовке). Тогда формула

=VLOOKUP(E12,$C$6:$H$8,MATCH("Size "&F12,$C$5:$H$5,0),FALSE)

по сути становится

=VLOOKUP(E12,$C$6:$H$8,6,FALSE)

который ищет содержание E12 (= 1) в первом столбце диапазона $C$6:$H$8 . Другими словами, он выбирает строку, которая соответствует Batch No=1 , который равен 1 . И учитывая числа строк (= 1) и столбцов (= 6) в диапазоне $C$6:$H$8 , VLOOKUP возвращает значение, сохраненное в H6 , которое равно 7 .

2

Попробуйте функцию index с соответствием для Batch # и Text size:

=INDEX(C6:H8,MATCH($E12,$C$6:$C$8,0),MATCH("Size "&$F12,$C$5:$H$5,0))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .