Определите 3-й самый маленький элемент в списке с критериями, которые включают частичное совпадение строки - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть две таблицы: 1. В таблице 1 есть список вакансий с уникальным идентификатором (например, «284628»). 2. В таблице 2 есть список кандидатов, включая различные отметки времени (отобранные, собеседования и т. Д.).У каждой записи кандидата также есть поле для поля вакансии из таблицы1.Однако иногда это поле включает несколько идентификаторов вакансий (например, «485923; 139042»).Есть много строк-кандидатов с одинаковыми идентификаторами вакансий.

Я хочу вытащить 3-ю наименьшую отметку времени из столбца «Опрошенные» в Таблице 2 в Таблицу 1 для соответствующего идентификатора вакансии.

Как сделатьЯ создаю эту формулу?

У меня есть две части головоломки, но я не знаю, как они могут работать вместе.

Частичное совпадение в строке:

    =INDEX($B$2:$B$9999,MATCH("*"&D2&"*",""&$A$2:$A$9999,0))

3-е значение:

    {=IFERROR(SMALL(IF(Table2[ID]=[@[ID]];IF(Table2[Date]="";"";Table2[Date]));3);"")}

Большое спасибо всем, кто помогает - я думаю, что это дразнилка мозга:)

По запросу образцы данных можно скачать здесь: https://docs.google.com/spreadsheets/d/11rtyR4eKOok_M4zDi45_D_NvhhRnzBvT9MYZp-WOMKw/edit?usp=sharing

1 Ответ

0 голосов
/ 12 февраля 2019

Это может быть то, что вы ищете:

=SMALL(IF(ISERR(FIND([@ID],Table2[ID],1)),999999,Table2[Date]),3)

введено как формула массива [CTRL-SHIFT-ENTER].

Объяснение

FIND([@ID],Table2[ID],1) ищет ID из Table1 в столбце ID в Table2.FIND возвращает Integer в случае успеха и #VALUE в случае неудачи.Так как это формула массива, мы получаем массив Integer или #VALUE, по одному значению для каждой строки в Table2.

. Оберну вышеупомянутое в ISERR(above), который дает массивзначения, которые TRUE (если ID было НЕ найдено) или FALSE (если ID было найдено).

Все это обернуто IF(above,999999,Table2[Date]): если TRUE мы возвращаем 999999 (любое число больше вашей максимальной даты);если FALSE, мы возвращаем Date из Table2.Снова получаем массив значений.

Наконец, оберните предыдущий результат в SMALL(above,3), чтобы вернуть 3-е наименьшее из массива.

Надеюсь, что поможет

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