Почему мой индекс / совпадение не начинается в верхней части таблицы? - PullRequest
0 голосов
/ 29 января 2019

У меня есть список имен в раскрывающемся списке A1.У меня есть формула, которая просматривает выбранный текст, соответствует этому тексту на другом листе, а затем отображает список идентификационных номеров, найденных рядом с этим именем.Эта формула выводит мои результаты в соответствующую строку, в которой этот текст и идентификатор находятся на другом листе.Таким образом, у меня может быть идентификатор в строке 3, 7, & 12 или даже скопление в 15, 16 и 17.

Я попытался vlookup, но без уникального идентификатора это все тот же результат.

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

=OFFSET($A$1,SMALL(IF($C$1:$C$28=$D$1,ROW($C$1:$C$28)-MIN(ROW($C$1:$C$28))+1),ROWS($1:1))-1,0)

Моя формула:

=IFERROR(INDEX(Data!$A2, MATCH($A$1, Data!$C2, 0))," ")

Мне нужно, чтобы он всегда выводил, начиная с ячейки A2, и последовательно двигался вниз.

1 Ответ

0 голосов
/ 29 января 2019

Я уверен, что метод, который вы пытались использовать OFFSET, мог бы работать.Как только я зарылся в нее, я пошел другим путем.Я уверен, что это не самый элегантный, но он работает.

Я понимаю, что ваш запрос:

  • С учетом ввода в A1

  • Дан лист с именем Данные, содержащий таблицу строк идентификаторов в столбце А, соответствующую данным в столбце С, для сравнения с вводом в Листе1! А1

Вы хотитеотображать каждый экземпляр входных данных в ячейках A2 по убыванию вниз?

Как и так? РЕДАКТИРОВАТЬ: обернуть с помощью IFERROR, чтобы устранить неприятные н / д, которые я забыл, прежде чем снимать скриншот1019 *

Мне удалось выполнить эту работу с данными образца:

001     random
002     words
003     sample
004     is
005     never
006     actually
007     random
008     actually
009     random
010     sample
011     words
012     are
013     not
014     easy
015     to
016     generate
017     random
018     words
019     actually
020     sample
021     sample

Формула в ячейке A2 (тривиальная):

=INDEX(Data!$A$1:$A$99, MATCH($A$1, Data!$C$1:$C$99, 0))

Ячейка A3:

=INDEX(INDIRECT("Data!$A$"&MATCH(A2,Data!A:A,0)+1&":$A$99"), MATCH($A$1, INDIRECT("Data!$C"&MATCH(A2,Data!A:A,0)+1&":$C$99"), 0))

Эта формула копирует вниз.

Обратите внимание на предположение, что источник данных не более 99 строк.

Я использовал функцию INDIRECT, чтобы переопределить диапазон, который ищется n+ 1-й поиск для поиска массива, который начинается со строки сразу после результата, возвращенного n-м поиском.Не уверен, насколько это масштабируемо, но это лучше, чем иметь вспомогательные строки для стольких строк, сколько у вас есть данных, - так я бы подошел к этой проблеме год назад ...

РЕДАКТИРОВАТЬ в ответ на ваш комментарий - яответил на этот вопрос, основываясь в первую очередь на последней строке вашего вопроса: «Мне нужно, чтобы он всегда выводился, начиная с ячейки A2, и последовательно проходил путь вниз».что вы хотели увидеть столбец ячеек с одним идентификатором на ячейку.Я полагаю, что это открыто для интерпретации.Вместо того, чтобы пытаться написать здесь одну формулу Бога, я, вероятно, просто напишу формулу в B1 до CONCATENATE значений в A2..A с запятыми между ними, если вы ищете один выводимый список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...