Сопоставление ячейки (использование Vlooking, индекса, сопоставления) - PullRequest
1 голос
/ 02 августа 2020

Мне удалось заставить эту формулу соответствовать имени и дате,

=INDEX($B$1:$D$4,2,MATCH($G$1,$B$1:$D$1,0))

, но я хочу также сопоставить с другой строкой с тем же именем, например, если я введу 2020/8/4, это будет «B7» в ячейку «G1», может отображаться Lam = TTT99, Ma = UUU11, Co = OOO88

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

1 Ответ

2 голосов
/ 02 августа 2020

Я бы посоветовал вам структурировать свои данные гораздо более простым табличным способом. Если это не вариант для вас, у меня есть для вас несколько более сложная функция массива. Это ваша последняя формула:

=INDEX($A$1:$D$10;SUMPRODUCT(($A$1:$D$10=$G$1)*ROW($A$1:$D$10))-ROW($A$1)+ROWS($B$2:B2)+1;SUMPRODUCT(($A$1:$D$10=$G$1)*COLUMN($A$1:$D$10))-COLUMN($A$1)+1)

Эта формула входит в G2 - вы можете перетащить ее до G4. Я предполагаю, что ваши имена всегда «Лам», «Ма» и «Ко» в одном и том же порядке. Имейте в виду, что эта функция не будет работать, если у вас есть повторяющиеся даты.

По сути, у вас все еще есть функция INDEX. И номер строки, и номер столбца для поиска определяются с помощью функции SUMPRODUCT (поскольку она позволяет нам выполнять поиск в двумерном диапазоне).

Первый член SUMPRODUCT приведет к строке number:

SUMPRODUCT(($A$1:$D$10=$G$1)*ROW($A$1:$D$10))-ROW($A$1)+ROWS($B$2:B2)+1

Термин $A$1:$D$10=$G$1 будет проверять все ячейки в вашем диапазоне данных на совпадение с датой в ячейке G1. Представьте, что это даст следующий массив True и False:

Imaginary array

As you see, for selected data 5th August 2020, there is only one match. To get the row number, we multiply this array with another, imaginary array of ROW($A$1:$D$10):

Номер строки мнимого массива

Так как только седьмая строка содержит True, результатом умножения будет 7. Это абсолютная строка, в которой находятся искомые данные.

Остальное - проще:

-ROW($A$1)+ROWS($B$2:B2)+1

Этот термин просто удалит номер первой строки вашего диапазона данных (в случае, если ваши данные не начинаются в строке 1!) и позволит вам «перетащить» формулу вниз, чтобы вы можно использовать его для поиска Lam, Ma и Co.

Процесс для номера столбца точно такой же.

...