Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск ближайшей даты к сегодняшнему дню - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Поиск ближайшей даты к сегодняшнему дню
makeypp Дата: Пятница, 28.11.2014, 16:23 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Прошу помочь в решении следующей задачи.
Ведётся реестр договоров, по которым идут поставки (количество и даты поставок у всех разные). Нужно, чтобы в столбце "Ближайшая дата поставки" отображалась дата поставки близкая к сегодняшнему дню. Прошедшие даты не интересуют. только ожидаемые.
 
Ответить
СообщениеДобрый день!
Прошу помочь в решении следующей задачи.
Ведётся реестр договоров, по которым идут поставки (количество и даты поставок у всех разные). Нужно, чтобы в столбце "Ближайшая дата поставки" отображалась дата поставки близкая к сегодняшнему дню. Прошедшие даты не интересуют. только ожидаемые.

Автор - makeypp
Дата добавления - 28.11.2014 в 16:23
buchlotnik Дата: Пятница, 28.11.2014, 16:25 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
файл?
 
Ответить
Сообщениефайл?

Автор - buchlotnik
Дата добавления - 28.11.2014 в 16:25
makeypp Дата: Пятница, 28.11.2014, 16:32 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Не прикрепляется
К сообщению приложен файл: __1.xls (24.5 Kb)
 
Ответить
СообщениеНе прикрепляется

Автор - makeypp
Дата добавления - 28.11.2014 в 16:32
buchlotnik Дата: Пятница, 28.11.2014, 16:40 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Опять намудрил B) массивная
Код
=МИН(ЕСЛИ(C3:G3-СЕГОДНЯ()>=0;C3:G3;9^9))
К сообщению приложен файл: _1.xls (26.0 Kb)


Сообщение отредактировал buchlotnik - Пятница, 28.11.2014, 16:45
 
Ответить
СообщениеОпять намудрил B) массивная
Код
=МИН(ЕСЛИ(C3:G3-СЕГОДНЯ()>=0;C3:G3;9^9))

Автор - buchlotnik
Дата добавления - 28.11.2014 в 16:40
makeypp Дата: Пятница, 28.11.2014, 17:11 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А если слегка видоизменить таблицу и добавить в неё дополнительные столбцы, но оставить поставленную задачу (вывод ближайшей даты), то как будет выглядеть формула?
К сообщению приложен файл: 5419146.xls (25.5 Kb)
 
Ответить
СообщениеА если слегка видоизменить таблицу и добавить в неё дополнительные столбцы, но оставить поставленную задачу (вывод ближайшей даты), то как будет выглядеть формула?

Автор - makeypp
Дата добавления - 28.11.2014 в 17:11
buchlotnik Дата: Пятница, 28.11.2014, 17:46 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
тогда так
Код
=МИН(ЕСЛИ(C4:Q4-СЕГОДНЯ()>=0;C4:Q4;9^9)*ЕСЛИ($C$3:$Q$3="дата";1;9^9))
К сообщению приложен файл: 5419146-1-.xls (28.0 Kb)
 
Ответить
Сообщениетогда так
Код
=МИН(ЕСЛИ(C4:Q4-СЕГОДНЯ()>=0;C4:Q4;9^9)*ЕСЛИ($C$3:$Q$3="дата";1;9^9))

Автор - buchlotnik
Дата добавления - 28.11.2014 в 17:46
makeypp Дата: Пятница, 28.11.2014, 17:58 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
buchlotnik, Спасибо!!! Вы просто гений! А что в данной формуле означает 9^9? В остальном вроде бы разобрался.
 
Ответить
Сообщениеbuchlotnik, Спасибо!!! Вы просто гений! А что в данной формуле означает 9^9? В остальном вроде бы разобрался.

Автор - makeypp
Дата добавления - 28.11.2014 в 17:58
Pelena Дата: Пятница, 28.11.2014, 18:01 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
Немного короче, тоже массивная
Код
=МИН(ЕСЛИ((C4:Q4>=СЕГОДНЯ())*($C$3:$Q$3="дата");C4:Q4))


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНемного короче, тоже массивная
Код
=МИН(ЕСЛИ((C4:Q4>=СЕГОДНЯ())*($C$3:$Q$3="дата");C4:Q4))

Автор - Pelena
Дата добавления - 28.11.2014 в 18:01
buchlotnik Дата: Пятница, 28.11.2014, 18:02 | Сообщение № 9
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
что в данной формуле означает 9^9?
это просто очень большое число. даты с таким значением в Excel просто не существует, поэтому при работае функции МИН() ячейка, не соответствующая условиям, выдаст очень большое значение, гарантированно превышающее любую дату
Цитата
Немного короче
Елена, может не прав, но специально усложнил, чтоб ноль не генерился


Сообщение отредактировал buchlotnik - Пятница, 28.11.2014, 18:23
 
Ответить
Сообщение
Цитата
что в данной формуле означает 9^9?
это просто очень большое число. даты с таким значением в Excel просто не существует, поэтому при работае функции МИН() ячейка, не соответствующая условиям, выдаст очень большое значение, гарантированно превышающее любую дату
Цитата
Немного короче
Елена, может не прав, но специально усложнил, чтоб ноль не генерился

Автор - buchlotnik
Дата добавления - 28.11.2014 в 18:02
Pelena Дата: Пятница, 28.11.2014, 18:27 | Сообщение № 10
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
Ноль получается, только если нет дат, позже сегодняшней. Его легко убрать форматом или условным форматированием


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНоль получается, только если нет дат, позже сегодняшней. Его легко убрать форматом или условным форматированием

Автор - Pelena
Дата добавления - 28.11.2014 в 18:27
buchlotnik Дата: Пятница, 28.11.2014, 18:37 | Сообщение № 11
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Pelena, согласен, так проще
 
Ответить
СообщениеPelena, согласен, так проще

Автор - buchlotnik
Дата добавления - 28.11.2014 в 18:37
Nic70y Дата: Суббота, 29.11.2014, 08:49 | Сообщение № 12
Группа: Друзья
Ранг: Экселист
Сообщений: 8996
Репутация: 2365 ±
Замечаний: 0% ±

Excel 2010
длинная, но не массивная:
Код
=СУММПРОИЗВ(НАИБОЛЬШИЙ((C$3:Q$3="дата")*(C4:Q4>=СЕГОДНЯ())*C4:Q4;МАКС(1;СЧЁТ(1/((C$3:Q$3="дата")*(C4:Q4>=СЕГОДНЯ())*C4:Q4)))))


ЮMoney 41001841029809
 
Ответить
Сообщениедлинная, но не массивная:
Код
=СУММПРОИЗВ(НАИБОЛЬШИЙ((C$3:Q$3="дата")*(C4:Q4>=СЕГОДНЯ())*C4:Q4;МАКС(1;СЧЁТ(1/((C$3:Q$3="дата")*(C4:Q4>=СЕГОДНЯ())*C4:Q4)))))

Автор - Nic70y
Дата добавления - 29.11.2014 в 08:49
makeypp Дата: Понедельник, 01.12.2014, 12:07 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Pelena, Почему-то Ваш вариант не работает. Можете вставить формулу в мой файл и прислать?
 
Ответить
СообщениеPelena, Почему-то Ваш вариант не работает. Можете вставить формулу в мой файл и прислать?

Автор - makeypp
Дата добавления - 01.12.2014 в 12:07
Pelena Дата: Понедельник, 01.12.2014, 12:13 | Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
Смотрите. Нули убраны форматом числа
К сообщению приложен файл: 2716667.xls (27.5 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеСмотрите. Нули убраны форматом числа

Автор - Pelena
Дата добавления - 01.12.2014 в 12:13
dickist Дата: Среда, 29.04.2015, 03:41 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Смотрите. Нули убраны форматом числа


Pelena, Ваша формула (массива)
Код
=МИН(ЕСЛИ((C6:Q6>=СЕГОДНЯ())*($C$3:$Q$3="дата");C6:Q6))
мне тоже подходит, но смущал формат даты. Я решил проверить, как рассчитанная "ближайшая дата" в таком формате, поведет себя в других расчетах.
К "ближайшей дате" из строки 5 прибавил "количество дней" - 5 и получил "новую дату" - 1900.01.00, т.е. 0 (в формате числа) !!!???
Решил избавиться от необходимости менять формат даты, "немного" утяжелив формулу:
Код
=ЕСЛИ(МИН(C13:Q13<СЕГОДНЯ())*($C$3:$Q$3="дата");" ";МИН(ЕСЛИ((C13:Q13>=СЕГОДНЯ())*($C$3:$Q$3="дата");C13:Q13)))

(Я применил ее в 3х последних строках приложенной таблицы - 0 не выводится, и формат даты не отличается от привычного для глаза).
Проверил получение новой даты: К "ближайшей дате" из строки 15 прибавил "количество дней" - 5 и получил "новую дату" - Правильную.
Проверил другую "Ближайшую дату" в строке 6 (рассчитанную по Вашей формуле) - новая дата Правильная!
Формулы для 5 и 6 строк - одинаковы, форматы - одинаковы, но 6 ситается правильно, а в 5 - какая-то ошибка.
Помогите, пожалуйста, разобраться, что "не так" с 5 строкой!
(даже, если беру эту дату (15.05.2015) в числовом формате (42139) и прибавляю 5 получаю 0, т.е. 1900.01.00)
Заранее благодарен!
К сообщению приложен файл: 1172614.jpg (44.7 Kb) · -2_1.xls (30.5 Kb)
 
Ответить
Сообщение
Смотрите. Нули убраны форматом числа


Pelena, Ваша формула (массива)
Код
=МИН(ЕСЛИ((C6:Q6>=СЕГОДНЯ())*($C$3:$Q$3="дата");C6:Q6))
мне тоже подходит, но смущал формат даты. Я решил проверить, как рассчитанная "ближайшая дата" в таком формате, поведет себя в других расчетах.
К "ближайшей дате" из строки 5 прибавил "количество дней" - 5 и получил "новую дату" - 1900.01.00, т.е. 0 (в формате числа) !!!???
Решил избавиться от необходимости менять формат даты, "немного" утяжелив формулу:
Код
=ЕСЛИ(МИН(C13:Q13<СЕГОДНЯ())*($C$3:$Q$3="дата");" ";МИН(ЕСЛИ((C13:Q13>=СЕГОДНЯ())*($C$3:$Q$3="дата");C13:Q13)))

(Я применил ее в 3х последних строках приложенной таблицы - 0 не выводится, и формат даты не отличается от привычного для глаза).
Проверил получение новой даты: К "ближайшей дате" из строки 15 прибавил "количество дней" - 5 и получил "новую дату" - Правильную.
Проверил другую "Ближайшую дату" в строке 6 (рассчитанную по Вашей формуле) - новая дата Правильная!
Формулы для 5 и 6 строк - одинаковы, форматы - одинаковы, но 6 ситается правильно, а в 5 - какая-то ошибка.
Помогите, пожалуйста, разобраться, что "не так" с 5 строкой!
(даже, если беру эту дату (15.05.2015) в числовом формате (42139) и прибавляю 5 получаю 0, т.е. 1900.01.00)
Заранее благодарен!

Автор - dickist
Дата добавления - 29.04.2015 в 03:41
buchlotnik Дата: Среда, 29.04.2015, 04:39 | Сообщение № 16
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
что "не так" с 5 строкой
циклическая ссылка
 
Ответить
Сообщение
Цитата
что "не так" с 5 строкой
циклическая ссылка

Автор - buchlotnik
Дата добавления - 29.04.2015 в 04:39
dickist Дата: Среда, 29.04.2015, 15:00 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
циклическая ссылка

buchlotnik, спасибо, но я новичок не только на форуме, но и в Excel, который тоже ругается на "циклическую ошибку", и пишет: "...однако не удается отобразить источник ошибки".
Поясните, пожалуйста, почему формула Pelen'ы нормально работает в других строках, а в 5-й появляется "циклическая ошибка". Откуда она берется, и что надо изменить, чтобы избежать такой ошибки.
Спасибо, если найдете время подробно ответить.
 
Ответить
Сообщение
циклическая ссылка

buchlotnik, спасибо, но я новичок не только на форуме, но и в Excel, который тоже ругается на "циклическую ошибку", и пишет: "...однако не удается отобразить источник ошибки".
Поясните, пожалуйста, почему формула Pelen'ы нормально работает в других строках, а в 5-й появляется "циклическая ошибка". Откуда она берется, и что надо изменить, чтобы избежать такой ошибки.
Спасибо, если найдете время подробно ответить.

Автор - dickist
Дата добавления - 29.04.2015 в 15:00
Pelena Дата: Среда, 29.04.2015, 15:09 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
Потому что формула из ячейки В5 ссылается на диапазон С5:Q5, а Вы одновременно пытаетесь в ячейку Е5, которая входит в этот диапазон, написать формулу, ссылающуюся на В5. Вот и получается замкнутый круг.
Если у Вас есть конкретная задача, сформулируйте её в новой теме, будем разбираться, как обойти циклическую ссылку


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПотому что формула из ячейки В5 ссылается на диапазон С5:Q5, а Вы одновременно пытаетесь в ячейку Е5, которая входит в этот диапазон, написать формулу, ссылающуюся на В5. Вот и получается замкнутый круг.
Если у Вас есть конкретная задача, сформулируйте её в новой теме, будем разбираться, как обойти циклическую ссылку

Автор - Pelena
Дата добавления - 29.04.2015 в 15:09
dickist Дата: Среда, 29.04.2015, 18:17 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Огромное спасибо, Pelena!
Я пытаюсь разобраться как работает Ваша формула.
1. Я думал, что
Код
*($C$3:$Q$3="дата")
в формуле
Код
=МИН(ЕСЛИ((C5:Q5>=СЕГОДНЯ())*($C$3:$Q$3="дата");C5:Q5))

ограничивает диапазон сравнения колонками "дата". Это не так?
2. Если значение "сумма по накладной" в ячейке Е5 (входящей в диапазон C5:Q5) рассчитывается по формуле, например,
Код
=(F5-С5)*5
, (ячейки F5 и C5 входят в диапазон, но значения в них постоянны), то это никак не влияет на результат.
Также не повлияет на результат, если мы введем в ячейку D5 (накладная) значение больше СЕГОДНЯ [ЕСЛИ((C5:Q5>=СЕГОДНЯ())], например, 42124, что соответствует 2015.04.30 (а сегодня 04.29), т.к. D5 не относится к "дата".
Но стоит ввести в формулу в ячейке (Е5 или D5) ссылку на В5 - Кранты!

То есть, Excel сравнивает с условием ячейки из колонок, имеющих заголовок "дата" в диапазоне C5:Q5 и выводит из них минимальную, но физически проверяет все ячейки диапазона, и не допускает в них ссылку на результат расчетов.
Я правильно понял?
Если что-то не так, поправьте, пожалуйста.

p.s. У меня есть конкретная задача, и в ее решении возникли проблемы, по-моему, они не касаются зацикливания.
Ее можно также назвать "Поиск ближайшей даты к сегодняшнему дню", разве, что добавить "с дополнительным условием".
Стоит ее выносить в отдельную тему, или можно обсудить здесь?


Сообщение отредактировал dickist - Среда, 29.04.2015, 18:20
 
Ответить
СообщениеОгромное спасибо, Pelena!
Я пытаюсь разобраться как работает Ваша формула.
1. Я думал, что
Код
*($C$3:$Q$3="дата")
в формуле
Код
=МИН(ЕСЛИ((C5:Q5>=СЕГОДНЯ())*($C$3:$Q$3="дата");C5:Q5))

ограничивает диапазон сравнения колонками "дата". Это не так?
2. Если значение "сумма по накладной" в ячейке Е5 (входящей в диапазон C5:Q5) рассчитывается по формуле, например,
Код
=(F5-С5)*5
, (ячейки F5 и C5 входят в диапазон, но значения в них постоянны), то это никак не влияет на результат.
Также не повлияет на результат, если мы введем в ячейку D5 (накладная) значение больше СЕГОДНЯ [ЕСЛИ((C5:Q5>=СЕГОДНЯ())], например, 42124, что соответствует 2015.04.30 (а сегодня 04.29), т.к. D5 не относится к "дата".
Но стоит ввести в формулу в ячейке (Е5 или D5) ссылку на В5 - Кранты!

То есть, Excel сравнивает с условием ячейки из колонок, имеющих заголовок "дата" в диапазоне C5:Q5 и выводит из них минимальную, но физически проверяет все ячейки диапазона, и не допускает в них ссылку на результат расчетов.
Я правильно понял?
Если что-то не так, поправьте, пожалуйста.

p.s. У меня есть конкретная задача, и в ее решении возникли проблемы, по-моему, они не касаются зацикливания.
Ее можно также назвать "Поиск ближайшей даты к сегодняшнему дню", разве, что добавить "с дополнительным условием".
Стоит ее выносить в отдельную тему, или можно обсудить здесь?

Автор - dickist
Дата добавления - 29.04.2015 в 18:17
Pelena Дата: Среда, 29.04.2015, 19:24 | Сообщение № 20
Группа: Админы
Ранг: Местный житель
Сообщений: 19401
Репутация: 4549 ±
Замечаний: ±

Excel 365 & Mac Excel
Это не так?
Сравниваются все ячейки диапазона со значением "дата", в результате получается массив из элементов ИСТИНА/ЛОЖЬ. Чтобы его увидеть, можно в строке формул выделить фрагмент $C$3:$Q$3="дата" и нажать клавишу F9. Чтобы вернуть формуле первоначальный вид, нажать ESC.
это никак не влияет на результат
На результат влияет не это. Циклическая ссылка получается, если одна ячейка ссылается на другую, а эта другая ссылается на первую.
проверяет все ячейки диапазона
Да, именно так

Возможно, Вам будет полезна статья Как разобраться в работе сложной формулы


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Это не так?
Сравниваются все ячейки диапазона со значением "дата", в результате получается массив из элементов ИСТИНА/ЛОЖЬ. Чтобы его увидеть, можно в строке формул выделить фрагмент $C$3:$Q$3="дата" и нажать клавишу F9. Чтобы вернуть формуле первоначальный вид, нажать ESC.
это никак не влияет на результат
На результат влияет не это. Циклическая ссылка получается, если одна ячейка ссылается на другую, а эта другая ссылается на первую.
проверяет все ячейки диапазона
Да, именно так

Возможно, Вам будет полезна статья Как разобраться в работе сложной формулы

Автор - Pelena
Дата добавления - 29.04.2015 в 19:24
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!