У меня есть три столбца с уже заполненной информацией. Значение в столбце C зависит от двух идентификаторов из столбцов A и B (т. Е. Джордж всегда является продавцом яблок в Америке, а Сара - продавцом свеклы).
У меня достаточно данных в строках 1-8, поэтому я хочу, чтобы ячейки, начиная с 9, начинали автоматически заполнять необходимую информацию каждый раз, когда я вводил новую строку.
Таким образом, если я введу в «Свекла» в A9 и «Австралия» в B9, то C9 должен получить значение «Эми». Я опущу это значение, чтобы автоматически заполнить оставшуюся часть таблицы, чтобы будущие строки добавлялись автоматически.
Я использовал функцию INDIRECT (ROW-1) для ссылки на весь столбец над ячейкой с формулой, чтобы получить правильные данные, если это имеет смысл ...
A B C
1 Product Country Contact
2 Apple Australia John
3 Apple America George
4 Beets Australia Amy
5 Beets America Sarah
6 Carrot Australia Greg
7 Carrot America Belinda
8 Apple Australia John
9 Beets Australia _Formula:_
=INDEX((INDIRECT("C2:C"&ROW()-1)),MATCH(A10,IF((INDIRECT("B2:B"&ROW()-1))=B10,(INDIRECT("A2:A"&ROW()-1)))),0)
Ответы:
Вот ответ, который, кажется, работает:
Работаем изнутри:
VLOOKUP(B9, OFFSET(B$2:C$7, MATCH(A9,A$2:A$7,0) -1, 0, 2, 2), 2, 0)
MATCH(A9, A$2:A$7, 0)
находитA9
(Beets
) в диапазонеA2:A7
{Apple
,Apple
,Beets
,Beets
,Carrot
,Carrot
}, что дает значение индекса в диапазоне 1-6. Конечно, посколькуA2
=A3
,A4
=A5
иA6
=A7
значение индекса всегда будет равно 1, 3 или 5; ибоBeets
это 3.MATCH(A9, A$2:A$7, 0)-1
переназначает вышеупомянутое, чтобы быть в диапазоне 0-5 (в частности, 0, 2 или 4; дляBeets
, это 2).OFFSET(B$2:C$7, the_above, 0, 2, 2)
говоритB2:C7
регион,B2
), спуститесь на две строки вниз (так как первое вхождениеBeets
inA2:A7
находится в третьей строке, это означает, что мы должны спуститься на две (3−1) строки из строки 2) и перейти вправо к нулевым столбцам, достигнув клеткаB4
,B4:C5
, который который является всемирным списком продавцов свеклы. Обратите внимание, что нам нужен регион шириной в два столбца, потому что мы хотим связать страны с продавцами, но высота должна быть числом стран (в данном примере это две). Если бы было семь стран, мы бы изменили это на (хотя, если бы было семь стран (и три товара), вводный блок имел бы высоту 21 ряд, поэтому мы будем использовать диапазоны от строки 2 до строки 22).OFFSET(B$2:C$7, MATCH(A9,A$2:A$7,0)-1, 0, 7, 2)
VLOOKUP(B9, OFFSET(B$2:C$7, MATCH(A9,A$2:A$7,0)-1, 0, 2, 2) , 2, 0)
VLOOKUP
(и его братья,LOOKUP
иHLOOKUP
), по сути, сокращение отINDEX
+MATCH
. Этот поиск первого столбца (тоV
выступает за об ertical) от продавцов свеклы региона / массива (B4:C5
) дляB9
(Australia
) , а затем возвращает значение из 2 - го столбца строки, соответствующего значению подстановки (Australia
).Australia
находится в строке 4. Так как мы говорим о столбцахB
иC
, столбецC
в этом контексте является «вторым столбцом», так что это приводит нас к ячейкеC4
, которая содержитAmy
.… Что является желаемым результатом для строки 9, так как Эми является австралийским поставщиком свеклы.
источник