Сравнение двух массивов дат при использовании INDEX, SMALL и ROW для получения n-х совпадений

217
pjc

У меня есть диапазон дат, а затем большой список писем, в которых есть даты отправки. Я хотел бы иметь формулу, которая находит первое совпадение между двумя массивами дат, а затем скопировать его вниз и отобразить первое совпадение, второе совпадение, третье совпадение и т. Д.

Я дошел до этого (изменив значение в конце на n-е число):

{=INDEX($D$2:$D$100,SMALL(IF($A$2:$A$100=$Q$1,ROW($A$2:$A$100)-ROW(INDEX($A$2:$A$100,1,1))+1),1))} 

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

У меня есть ощущение, что я могу идти в неправильном направлении, и начинаю думать, что это будет намного лучше, если использовать VBA, но я действительно чувствую, что есть способ сделать это где-нибудь, используя формулу.

Я пытался IF($A$2:$A$100=$Q$1:$Q$10, но это не сработало (и не ожидал)

Любые идеи будут оценены.

0
Я взял трещину в этом, но это стало довольно волосатым. В столбце дат отправки будет несколько совпадений для каждой даты. Таким образом, промежуточным результатом может быть двумерный массив с датой на одной оси и датой отправки на другой, с row_num в каждой ячейке, где есть совпадение. Вы можете получить такой двумерный массив с помощью `= IF (TRANSPOSE (Q1: Q10) = (A1: A100), ROW (A1: 100)`. Вот где он становится волосатым. `SMALL ()` не может обрабатывать 2Ds и просто перечисляет первую строку. `AGGREGATE ()` тоже. Преобразование 2D-массива в 1D * очень * очень важно. VBA будет намного проще, поэтому я рекомендую такой подход. Bandersnatch 5 лет назад 0
Вы хотите сказать, что у идентификатора почты есть две совпадающие даты? Не могли бы вы загрузить некоторые образцы данных? Rajesh S 5 лет назад 1

0 ответов на вопрос

Похожие вопросы