Формула IF в Excel для поиска строк, которые меньше определенной даты

Вопрос или проблема

У меня есть очень большая таблица с множеством дат в каждой строке в формате ДД-МММ-ГГГГ. Я хотел бы вернуть “ДА” для всех строк с датами, меньшими определенной даты (которая будет изменяться), и ничего не возвращать, если значение больше этой даты.

Например, если я хочу вернуть все даты в строке, меньшие 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, вместо этого ограничьтесь данными, которые вы рассматриваете.

POC

Мое решение основано на обоих возможных форматах.

  1. Когда даты находятся только в одном столбце.
  2. Когда даты находятся в нескольких столбцах.

вставьте описание изображения здесь

Формула в ячейке B3, когда даты находятся только в одном столбце.

=ЕСЛИ($C$2>A3,"Да","")

Формула в ячейке E14, когда даты находятся в нескольких столбцах.

=ЕСЛИ(СЧЕТЕСЛИ(A14:C14,"<"&$C$2)=3,"Да","")

Примечание:

  1. Параметр =3 редактируемый, зависит от числа значений даты в столбцах.
  2. Ячейка C2 содержит критерий 01-Mar-2018.
  3. Протяните обе формулы вниз, пока это необходимо.
  4. При необходимости отредактируйте ссылки на ячейки в формуле.

Ответ или решение

Для решения вашей задачи в 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" для всех дат, меньших установленной. Не забудьте корректировать ссылки на ячейки в зависимости от ваших данных.

Оцените материал
Добавить комментарий

Капча загружается...