У меня более 500 000 строк данных на листе. В столбце D этого листа каждая строка имеет дату между 18 сентября 2016 года и 31 мая 2021 года. Я хочу использовать формулу массива для перечисления всех дат между этими датами, которые я только что указал, которые не представлены в столбце D. Редактировать: Я хотел бы использовать формулу, потому что моя дата окончания 31 мая 2021 года меняется на более позднюю дату каждый месяц.
Возможно ли это в Excel с предопределенными функциями, или мне нужно будет написать макрос? Я бы опубликовал то, с чего начал, если бы мог, но не знаю, с чего начать.
1 ответ
Выполнение этого с помощью формулы массива в Excel 2016 потребует значительных усилий.
Почему бы не использовать более простой подход, не требующий сложных формул или VBA?
Создайте список дат от даты начала до даты окончания. В следующем столбце используйте формулу соответствия, чтобы найти дату в ваших данных. Вы можете использовать формулу, которая возвращает результат ИСТИНА / ЛОЖЬ, например
=isnumber(Match(A1,$Z:$Z,0))
Если результатом совпадения является число, т. Е. Дата найдена, то формула возвращает ИСТИНА, в противном случае — ЛОЖЬ.
Теперь вам просто нужно отфильтровать список дат, чтобы в столбце формулы отображались только строки с «ЛОЖЬ».
Это намного быстрее, чем писать VBA или сложные массивы.
Примечание: это будет работать, только если ваши даты являются только датами, а не значениями даты / времени. Если у вас есть значения даты / времени (которые показывают десятичные дроби, если они отформатированы как General), вам понадобится вспомогательный столбец в вашем источнике данных, который извлекает только дату. Затем запустите Match () для этого столбца даты.
Если это помогло решить вашу проблему, отметьте ответ, как описано в обзоре. Если этого не произошло, оставьте комментарий, чтобы я мог следить.
— арфа
11 часов назад
Это будет работать, но не идеально, поскольку я периодически добавляю в базу данных. Последняя дата 31 мая 2021 года скоро будет 30 июня 2021 года. Но я ценю ваш творческий подход к решению этой проблемы.
— AnthonyJS
10 часов назад