Спасибо, Тайлер.
Ваше предложение очень помогло мне направить усилия в правильном направлении.
Я сделал так:
- Сначала я отсортировал данные в порядке убывания даты, чтобы у меня были все самые последние данные вверху.
Range("AW4:BE999999").Sort Key1:=Range("BC4:BC999999"), order1:=xlDescending, Header:=xlYes
- С даты создания строки «ГОД» и «НЕДЕЛЯ». Таким образом, я смог сгруппировать все дни в определенную неделю. Используемая формула:
=(TEXT(BC5,"yyyy"))&(TEXT(WEEKNUM(BC5),"00"))
- Затем я дал уникальный номер каждой записи. Лучший способ, о котором я могу подумать, это дать номер строки, к которой относится запись.
=ROW(AY5)
- Теперь, используя функцию VLOOKUP, я получил все записи, соответствующие строке, которую я создал на шаге 2
=VLOOKUP(AZ5,AZ:BD,5,FALSE)
Я применил приведенную выше формулу, чтобы получить все нужные мне столбцы.
- Теперь я удалил все повторяющиеся строки, используя следующую формулу:
Cells.RemoveDuplicates Columns:=Array(1)
Теперь оставшиеся строки являются ожидаемыми.
Возможно, есть лучший способ сделать это, но я впервые с макросами и формулами Excel, поэтому чувствую себя счастливым.
Пожалуйста, прокомментируйте другие лучшие способы сделать это. Всегда хорошо продолжать улучшать нашу работу.