Вопрос или проблема
У меня есть очень большая таблица с множеством дат в каждой строке в формате ДД-МММ-ГГГГ. Я хотел бы вернуть “ДА” для всех строк с датами, меньшими определенной даты (которая будет изменяться), и ничего не возвращать, если значение больше этой даты.
Например, если я хочу вернуть все даты в строке, меньшие 01-Мар-2018. Я попробовал эту формулу:
=ЕСЛИ((J377:X377)
Есть идеи, что я делаю не так? Спасибо, Скотт!
Вам нужно использовать формулу для каждой даты, которую вы хотите проверить, например:
A1: 01-Mar-2018
B1: другая дата, которую вы хотите проверить по сравнению с первой датой (в A1)
C1: другая дата, которую вы хотите проверить по сравнению с первой датой (в A1)
D1: =ЕСЛИ(A1<B1,"ДА","")
E1: =ЕСЛИ(A1<C1,"ДА","")
Предполагая, что все ваши даты действительно хранятся как целые числа, а не строки, следующая формула проверит каждую строку на наличие даты, которая включена в указанный диапазон максимума/минимума:
=ЕСЛИ(СУММПРОИЗВ(($B4:$D4>=$G$5)*($B4:$D4<=$G$4))>=1,"Да","Нет")
Скопируйте формулу вниз рядом с каждой строкой. Поскольку СУММПРОИЗВ выполняет вычисления, похожие на массив, избегайте полных ссылок на столбцы/строки, таких как A:A или 1:1, вместо этого ограничьтесь данными, которые вы рассматриваете.
Мое решение основано на обоих возможных форматах.
- Когда даты находятся только в одном столбце.
- Когда даты находятся в нескольких столбцах.
Формула в ячейке B3
, когда даты находятся только в одном столбце.
=ЕСЛИ($C$2>A3,"Да","")
Формула в ячейке E14
, когда даты находятся в нескольких столбцах.
=ЕСЛИ(СЧЕТЕСЛИ(A14:C14,"<"&$C$2)=3,"Да","")
Примечание:
- Параметр
=3
редактируемый, зависит от числа значений даты в столбцах. - Ячейка
C2
содержит критерий01-Mar-2018
. - Протяните обе формулы вниз, пока это необходимо.
- При необходимости отредактируйте ссылки на ячейки в формуле.
Ответ или решение
Для решения вашей задачи в Excel с использованием формулы IF для проверки дат в строках и возврата ‘YES’ для всех дат, меньше определенной даты (которая может изменяться), можно использовать различные подходы в зависимости от того, как у вас организованы данные. Рассмотрим два случая:
1. Когда даты находятся только в одном столбце
Предположим, ваши даты находятся в столбце A, а пороговая дата (та, с которой вы сравниваете) находится в ячейке C2. В этом случае вы можете использовать следующую формулу:
=IF(A1<C$2, "YES", "")
Поместите эту формулу в ячейку B1 и протяните её вниз, чтобы проверить все даты в столбце A по отношению к пороговой дате в C2. Если дата в ячейке A1 меньше, чем дата в ячейке C2, будет возвращено "YES", в противном случае будет возвращено пустое значение.
2. Когда даты находятся в нескольких столбцах
Если ваши даты распределены по нескольким столбцам (например, A, B и C), и вы хотите проверить все даты в строке, можно использовать формулу, которая считает, сколько из этих дат меньше пороговой даты.
В этом случае вы можете использовать следующую формулу в ячейке D1 (или в другом столбце):
=IF(COUNTIF(A1:C1, "<" & C$2) > 0, "YES", "")
Это означает, что если хотя бы одна из дат в диапазоне A1:C1 меньше, чем значение в C2, будет возвращено "YES", в противном случае — пустое значение.
Дополнительные советы
- Обратите внимание, что даты в Excel должны быть действительно форматом даты, а не текстом. Чтобы это проверить, вы можете попробовать отформатировать ячейки с датами как "Дата".
- Убедитесь, что обрабатываемые диапазоны не слишком большие, чтобы избежать проблем с производительностью, особенно при использовании массивных проверок, таких как COUNTIF или SUMPRODUCT.
- После ввода формул вы можете перетаскивать их вниз, чтобы скопировать их на остальные строки.
Заключение
Вышеописанные формулы должны помочь вам эффективно фильтровать даты в вашем Excel, возвращая "YES" для всех дат, меньших установленной. Не забудьте корректировать ссылки на ячейки в зависимости от ваших данных.