Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2022, 12:54   #1
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 184
По умолчанию ФОРМУЛОЙ проверка входит ли дата в диапазон дат

Добрый день )
Подскажите пожалуйста, как проверить входит ли дата в множества диапазонов дат выше в столбцах?

Простые проверки дата чтобы не повторялась, не была меньше - это понимаю как.
Но как проверить диапазоны?
Пример :
01.01.2022-10.01.2022
15.01.2022-18.01.2022

Дата к проверке :

17.01.22 - входит
12.01.22- не входит

И еще проверить по объекту (т.е. диапазоны не могут совпадать по одинаковым объектам)

Файл для примера во вложении.
*Пробовала применить Счётеслимн(диапазон;"<дата"), но почему-то не работает (
______

Буду рада любым идеям )
Вложения
Тип файла: xlsx ПРИМЕР ДАТЫ.xlsx (9.6 Кб, 6 просмотров)
АННА-ЕАО вне форума Ответить с цитированием
Старый 24.09.2022, 13:39   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,213
По умолчанию

Может так
Код:
=СЧЁТЕСЛИМН(E$3:$E7;СЦЕПИТЬ("<"; C7))
Если я правильно помню, то условие задается в виде текста, а не "условия". У вас же написана фигня, а не текст. При использовании СЦЕПИТЬ дата автоматически будет приведена к тексту и соединена с символом условия.

Последний раз редактировалось macomics; 24.09.2022 в 13:42.
macomics вне форума Ответить с цитированием
Старый 24.09.2022, 22:31   #3
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 184
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Может так
Код:
=СЧЁТЕСЛИМН(E$3:$E7;СЦЕПИТЬ("<"; C7))
Если я правильно помню, то условие задается в виде текста, а не "условия". У вас же написана фигня, а не текст. При использовании СЦЕПИТЬ дата автоматически будет приведена к тексту и соединена с символом условия.
Большое спасибо !!! буду теперь знать как с датами в подобной функцией работать )

но все же у меня далее не получается увы (
может быть знаете есть ли возможность проверки даты в диапазоне ?

например :
диапазон : 01.01.22-10.01.2022
для проверки : 09.01.2022
результат : входит в диапазон

как можно это сделать ?
АННА-ЕАО вне форума Ответить с цитированием
Старый 25.09.2022, 00:02   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,213
По умолчанию

Тут вся проблема будет заключаться в том, что написанное вами это просто текст, а не дата. Сама дата в ячейке это число, с которым Excel может работать (выполнять сравнения). В вашем случае это будет текст, который предварительно надо разделить на две даты (01.01.22 и 10.01.22), привести эти значения к типу даты и выполнить сравнение с требуемой датой (09.01.22) на предмет вхождения в этот диапазон.

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

Придется диапазон вручную разделить на даты и сравнить каждую с требуемой. Например так:
Код:
=ЕСЛИ(ДАТАЗНАЧ(ЛЕВ(A1;8))<B1; ЕСЛИ(B1<ДАТАЗНАЧ(ПРАВ(A1; 8)); 1; 0); 0)
8 взялась не случайно. Это количество символов. Если диапазон будет указан как 01.01.2022-10.01.22, тогда будет ошибка. Но можете 8 определить посчитав символы в строке до и после символа -. А это дополнительные сложности с вычислениями. Куда проще диапазон дат указывать в двух смежных ячейках, чтобы сам Excel их воспринимал как даты.
macomics вне форума Ответить с цитированием
Старый 25.09.2022, 00:13   #5
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 150
По умолчанию

Цитата:
Сообщение от АННА-ЕАО Посмотреть сообщение
ФОРМУЛОЙ проверка входит ли дата в диапазон дат
Добрый день )
Подскажите пожалуйста, как проверить входит ли дата в множества диапазонов дат выше в столбцах?
если не формулулой а макросом:
Вложения
Тип файла: xls ПРИМЕР ДАТЫ.xls (46.0 Кб, 3 просмотров)
Elixi вне форума Ответить с цитированием
Старый 25.09.2022, 21:22   #6
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 184
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Тут вся проблема будет заключаться в том, что написанное вами это просто текст, а не дата. Сама дата в ячейке это число, с которым Excel может работать (выполнять сравнения). В вашем случае это будет текст, который предварительно надо разделить на две даты (01.01.22 и 10.01.22), привести эти значения к типу даты и выполнить сравнение с требуемой датой (09.01.22) на предмет вхождения в этот диапазон.

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

Придется диапазон вручную разделить на даты и сравнить каждую с требуемой. Например так:
Код:
=ЕСЛИ(ДАТАЗНАЧ(ЛЕВ(A1;8))<B1; ЕСЛИ(B1<ДАТАЗНАЧ(ПРАВ(A1; 8)); 1; 0); 0)
8 взялась не случайно. Это количество символов. Если диапазон будет указан как 01.01.2022-10.01.22, тогда будет ошибка. Но можете 8 определить посчитав символы в строке до и после символа -. А это дополнительные сложности с вычислениями. Куда проще диапазон дат указывать в двух смежных ячейках, чтобы сам Excel их воспринимал как даты.

Спасибо за участие и ответ. Но почему пишите что мои даты записаны как текст ? в файле пример каждая дата начала и конца диапазона записана в отдельных ячейках и имеют формат "дата"..

как тогда их надо записать и какой формулой можно проверить входит ли проверяемая дата в диапазон ?

если не сложно, посмотрите пожалуйста файл пример )
АННА-ЕАО вне форума Ответить с цитированием
Старый 25.09.2022, 21:25   #7
АННА-ЕАО
Форумчанин
 
Аватар для АННА-ЕАО
 
Регистрация: 24.08.2011
Сообщений: 184
По умолчанию

Цитата:
Сообщение от Elixi Посмотреть сообщение
если не формулулой а макросом:
спасибо огромное ! завтра изучу повнимательнее )
попробую на разных вариантах.

но все же это странно. неужели ни кому ни когда не было необходимости проверить дату на вхождение ее в диапазон ? такой большой макрос вы написали это супер !!! но удивляет что в самом эксели нет подобных функций )
АННА-ЕАО вне форума Ответить с цитированием
Старый 25.09.2022, 22:08   #8
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,213
По умолчанию

Цитата:
Сообщение от АННА-ЕАО Посмотреть сообщение
Но почему пишите что мои даты записаны как текст ?
Я не брал даты из файл примера. Я взял диапазон, который вы напечатали в сообщении. И в таком формате он станет текстом. Если диапазон указан в столбцах A и B, а дата для проверки указана в столбце C, тогда проверить можно вот так.
Код:
=ЕСЛИ($A1<$C1; ЕСЛИ($C1<$B1; 1; 0); 0)
macomics вне форума Ответить с цитированием
Старый 26.09.2022, 09:49   #9
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 829
По умолчанию

Введя дату проверяемую в столбец F и формулы в столбец G

=ЕСЛИ(F3-C3<D3; ЕСЛИ(E3-F3<D3; "YES";"NO"); "NO")

и расширив: считает разности дат в строке

Код:
A	B	C		D	E		F		G
№	адрес	Заезд		Колич	Выезд		Результат	
1	а1	01.10.2022	22	23.10.2022	12.10.2022	YES
2	а1	16.10.2022	33	18.11.2022	19.08.2022	NO
3	а2	15.10.2022	2	17.10.2022	16.10.2022	YES
Дата в столбце F лежит ли между датами столбцов C & E

Сравнение нескольких: небось через формулы со знаком $

Однако то ли требовалось неясно
учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 ничего нерекомендую

Последний раз редактировалось сфинкс; 26.09.2022 в 11:18.
сфинкс вне форума Ответить с цитированием
Старый 26.09.2022, 10:16   #10
Elixi
Форумчанин
 
Регистрация: 10.05.2019
Сообщений: 150
По умолчанию

Цитата:
Сообщение от АННА-ЕАО Посмотреть сообщение
но все же это странно. неужели ни кому ни когда не было необходимости проверить дату на вхождение ее в диапазон ? такой большой макрос вы написали это супер !!! но удивляет что в самом эксели нет подобных функций )
Прoверить дату на вхoждение для oднoгo диапазoна, тут oсoбых прoблем нет.
Нo вы хoтите прoверить дату на вхoждение списка диапазoнoв. Тут слoжнее.
Пoхoже этo решаемo фoрмулами массива. С фoрмулами массива хoтя и встречался
и делал, нo мне личнo пoнятнее делать пoсредствoм макрoсoв.
Elixi вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать входит ли число в диапазон niockasd Общие вопросы Delphi 3 26.12.2018 17:40
Как в эксель посчитать входит ли введеная дата в промежуток дат, с последующим выделением Будущийумник Помощь студентам 5 04.03.2018 13:33
Как проверить, входит ли ячейка в заданный именованный диапазон? olga_arb Microsoft Office Excel 1 06.02.2013 10:08
Проверить входит ли текущая дата в диапазон дат? artemavd Общие вопросы Delphi 6 16.11.2012 21:32