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

Вход

Регистрация

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

 

= Мир MS Excel/Вывод "текста" (при условии) вместо ближайшей к сегодня даты - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Вывод "текста" (при условии) вместо ближайшей к сегодня даты
dickist Дата: Пятница, 15.05.2015, 06:57 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Я определяю ближайшую к Сегодня (б'ольшую) дату (в прикрепленных таблицах - "Ближ.Срок Возврата") по формуле:
Код
=МИН(ЕСЛИ((F6:F12>=F2);F6:F12))
(массивная) (Табл.1).
Но, если, в диапазоне, только даты меньше Сегодня, возвращается дата 1900.01.00, которую можно превратить в ноль условным форматированием (как я сделал в Табл.2):
Код
=ЕСЛИ($F15=0;1)
, то формат - числовой.
Это не совсем то, что мне нужно.
Мне нужно, чтобы, при отсутствии дат > или = Сегодня, выводился текст типа "Нет Даты".
Я попробовал сделать формулу массива основываясь на такой логике:
Если значения в массиве < Сегодня; возвращаем "текст"; иначе - ищем ближ. дату по формуле (как в Табл.1)
Код
=ЕСЛИ(F30:F36<F26;"Нет Даты";МИН(ЕСЛИ((F30:F36>=F26);F30:F36)))
(массивная) (Табл.3).
Но это моё "великое изобретение" возвращает в любом случае только текст, и отказывается находить даты > или = Сегодня!?
1. Подскажите, пожалуйста, что я сделал неправильно (если такой подход вообще имеет право на существование).
2. Как еще можно решить такую задачу.
Заранее благодарен за помощь!
К сообщению приложен файл: sample_1.xls (37.0 Kb) · sample_1.xlsx (13.0 Kb)
 
Ответить
СообщениеЯ определяю ближайшую к Сегодня (б'ольшую) дату (в прикрепленных таблицах - "Ближ.Срок Возврата") по формуле:
Код
=МИН(ЕСЛИ((F6:F12>=F2);F6:F12))
(массивная) (Табл.1).
Но, если, в диапазоне, только даты меньше Сегодня, возвращается дата 1900.01.00, которую можно превратить в ноль условным форматированием (как я сделал в Табл.2):
Код
=ЕСЛИ($F15=0;1)
, то формат - числовой.
Это не совсем то, что мне нужно.
Мне нужно, чтобы, при отсутствии дат > или = Сегодня, выводился текст типа "Нет Даты".
Я попробовал сделать формулу массива основываясь на такой логике:
Если значения в массиве < Сегодня; возвращаем "текст"; иначе - ищем ближ. дату по формуле (как в Табл.1)
Код
=ЕСЛИ(F30:F36<F26;"Нет Даты";МИН(ЕСЛИ((F30:F36>=F26);F30:F36)))
(массивная) (Табл.3).
Но это моё "великое изобретение" возвращает в любом случае только текст, и отказывается находить даты > или = Сегодня!?
1. Подскажите, пожалуйста, что я сделал неправильно (если такой подход вообще имеет право на существование).
2. Как еще можно решить такую задачу.
Заранее благодарен за помощь!

Автор - dickist
Дата добавления - 15.05.2015 в 06:57
gling Дата: Пятница, 15.05.2015, 07:34 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2643
Репутация: 739 ±
Замечаний: 0% ±

2010
Если всегда даты отсортированы как в примере можно использовать
Код
=ПРОСМОТР(F2;F6:F12;F6:F12)
или
Код
=ВПР(F14;F18:F24;1)


ЯД-41001506838083

Сообщение отредактировал gling - Пятница, 15.05.2015, 07:36
 
Ответить
СообщениеЕсли всегда даты отсортированы как в примере можно использовать
Код
=ПРОСМОТР(F2;F6:F12;F6:F12)
или
Код
=ВПР(F14;F18:F24;1)

Автор - gling
Дата добавления - 15.05.2015 в 07:34
Serge_007 Дата: Пятница, 15.05.2015, 07:42 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Код
=ЕСЛИ(ВПР(F26;F30:F36;1)<F26;"Нет даты";ВПР(F26;F30:F36;1))


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Код
=ЕСЛИ(ВПР(F26;F30:F36;1)<F26;"Нет даты";ВПР(F26;F30:F36;1))

Автор - Serge_007
Дата добавления - 15.05.2015 в 07:42
МВТ Дата: Пятница, 15.05.2015, 11:01 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Формула массивная, работает для несортированного диапазона
Код
=ЕСЛИ(МИН(ЕСЛИ((F18:F24>=F14);F18:F24));МИН(ЕСЛИ((F18:F24>=F14);F18:F24));"Нет даты")
 
Ответить
СообщениеФормула массивная, работает для несортированного диапазона
Код
=ЕСЛИ(МИН(ЕСЛИ((F18:F24>=F14);F18:F24));МИН(ЕСЛИ((F18:F24>=F14);F18:F24));"Нет даты")

Автор - МВТ
Дата добавления - 15.05.2015 в 11:01
dickist Дата: Пятница, 15.05.2015, 18:03 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
gling, извините, что ввел в заблуждение, у меня всегда несортированный список. В примере получился отсортированным случайно.
Serge_007 и МВТ, Спасибо! Ваши формулы, в моем случае работают отлично!

Ели возможно, поясните, пожалуйста какую принципиальную ошибку я допустил в формуле:
Если значения в массиве < Сегодня; возвращаем "текст"; иначе - ищем ближ. дату по формуле (как в Табл.1)
[Перевод / Translate]
Код
=ЕСЛИ(F30:F36<F26;"Нет Даты";МИН(ЕСЛИ((F30:F36>=F26);F30:F36)))

(массивная) (Табл.3).

Хочу понять, чтобы не делать таких ошибок в дальнейшем
И, вопрос к МВТ. Я правильно понимаю логику Вашей формулы:
Код
=ЕСЛИ(МИН(ЕСЛИ((F30:FF36>=F26);F30:F36));МИН(ЕСЛИ((F30:F36>=F26);F30:F36));"Нет даты")

Если (находим мин. значения из диапазона, если значения в диапазоне > или = F26); то (находим мин. значения из диапазона, если значения в диапазоне > или = F26); иначе (то есть, если не находим таких мин. значений) выводим "текст"?
К сообщению приложен файл: 8609248.xlsx (14.1 Kb)
 
Ответить
Сообщениеgling, извините, что ввел в заблуждение, у меня всегда несортированный список. В примере получился отсортированным случайно.
Serge_007 и МВТ, Спасибо! Ваши формулы, в моем случае работают отлично!

Ели возможно, поясните, пожалуйста какую принципиальную ошибку я допустил в формуле:
Если значения в массиве < Сегодня; возвращаем "текст"; иначе - ищем ближ. дату по формуле (как в Табл.1)
[Перевод / Translate]
Код
=ЕСЛИ(F30:F36<F26;"Нет Даты";МИН(ЕСЛИ((F30:F36>=F26);F30:F36)))

(массивная) (Табл.3).

Хочу понять, чтобы не делать таких ошибок в дальнейшем
И, вопрос к МВТ. Я правильно понимаю логику Вашей формулы:
Код
=ЕСЛИ(МИН(ЕСЛИ((F30:FF36>=F26);F30:F36));МИН(ЕСЛИ((F30:F36>=F26);F30:F36));"Нет даты")

Если (находим мин. значения из диапазона, если значения в диапазоне > или = F26); то (находим мин. значения из диапазона, если значения в диапазоне > или = F26); иначе (то есть, если не находим таких мин. значений) выводим "текст"?

Автор - dickist
Дата добавления - 15.05.2015 в 18:03
Serge_007 Дата: Пятница, 15.05.2015, 20:08 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
какую принципиальную ошибку я допустил в формуле
Смотрите:
Выражение F30:F36<F26 возвращает в первый аргумент ЕСЛИ массив
{ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ЛОЖЬ:ЛОЖЬ}
При этом функция ЕСЛИ, после указанной замены ИСТИНА на "Нет даты" и ЛОЖЬ на МИН(ЕСЛИ((F30:F36>=F26);F30:F36)) возвращает нам массив {"Нет Даты":"Нет Даты":"Нет Даты":"Нет Даты":"Нет Даты":42139:42139}
Вы вводите формулу массива, которая возвращает массив значений, в одну ячейку. Какого результата Вы ждете? По определению, в одной ячейке листа Excel может быть только одно значение. Какое именно из массива? Первое слева и сверху (для двумерного массива). Именно его и возвращает формула


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
какую принципиальную ошибку я допустил в формуле
Смотрите:
Выражение F30:F36<F26 возвращает в первый аргумент ЕСЛИ массив
{ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ЛОЖЬ:ЛОЖЬ}
При этом функция ЕСЛИ, после указанной замены ИСТИНА на "Нет даты" и ЛОЖЬ на МИН(ЕСЛИ((F30:F36>=F26);F30:F36)) возвращает нам массив {"Нет Даты":"Нет Даты":"Нет Даты":"Нет Даты":"Нет Даты":42139:42139}
Вы вводите формулу массива, которая возвращает массив значений, в одну ячейку. Какого результата Вы ждете? По определению, в одной ячейке листа Excel может быть только одно значение. Какое именно из массива? Первое слева и сверху (для двумерного массива). Именно его и возвращает формула

Автор - Serge_007
Дата добавления - 15.05.2015 в 20:08
МВТ Дата: Пятница, 15.05.2015, 20:15 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
И, вопрос к МВТ. Я правильно понимаю логику Вашей формулы:

Проще говоря, если данная формула не находит соответствующей даты, то возвращает 0 (при отображении в виде даты - 00.01.1900). Но, с точки зрения логических значений, 0 = ЛОЖЬ. Т.о., ЕСЛИ(ИСТИНА; Значение_Если_Истина; Значение_Если_Ложь)
 
Ответить
Сообщение
И, вопрос к МВТ. Я правильно понимаю логику Вашей формулы:

Проще говоря, если данная формула не находит соответствующей даты, то возвращает 0 (при отображении в виде даты - 00.01.1900). Но, с точки зрения логических значений, 0 = ЛОЖЬ. Т.о., ЕСЛИ(ИСТИНА; Значение_Если_Истина; Значение_Если_Ложь)

Автор - МВТ
Дата добавления - 15.05.2015 в 20:15
Serge_007 Дата: Пятница, 15.05.2015, 20:33 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Не заметил сразу:
у меня всегда несортированный список
Ваши формулы, в моем случае работают отлично
В таком случае моя формула не будет работать правильно

[p.s.]Зачем Вы привели пример, который не соответствует действительности? Что в правилах написано?[/p.s.]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеНе заметил сразу:
у меня всегда несортированный список
Ваши формулы, в моем случае работают отлично
В таком случае моя формула не будет работать правильно

[p.s.]Зачем Вы привели пример, который не соответствует действительности? Что в правилах написано?[/p.s.]

Автор - Serge_007
Дата добавления - 15.05.2015 в 20:33
dickist Дата: Пятница, 15.05.2015, 22:53 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Serge_007, прошу прощения - это случайность, я привел пример, выбрав маленькую часть реальной таблицы, где встречается сегодняшняя и большая дата, и в этой части, совершенно случайно оказались даты в порядке возрастания, а я не заметил этого, зная, что весь список несортирован.
Потом скопировал ее дважды и менял даты, чтобы проверить формулы. И сам был удивлен когда увидел, что Ваша формула (с ВПР) дважды (при изменении дат) дала правильный результат с несортированным списком, (тоже случайность!) т.к. читал (сам не имея опыта ее применения), что результат с несортированным списком - непредсказуем. После Вашего замечания, что она работать не будет с несортированным списком, проверил 3й раз - работать перестала!
Еще раз большое спасибо Вам и МВТ за подробные разъяснения и уделенное время! Вы мне очень помогли!
 
Ответить
СообщениеSerge_007, прошу прощения - это случайность, я привел пример, выбрав маленькую часть реальной таблицы, где встречается сегодняшняя и большая дата, и в этой части, совершенно случайно оказались даты в порядке возрастания, а я не заметил этого, зная, что весь список несортирован.
Потом скопировал ее дважды и менял даты, чтобы проверить формулы. И сам был удивлен когда увидел, что Ваша формула (с ВПР) дважды (при изменении дат) дала правильный результат с несортированным списком, (тоже случайность!) т.к. читал (сам не имея опыта ее применения), что результат с несортированным списком - непредсказуем. После Вашего замечания, что она работать не будет с несортированным списком, проверил 3й раз - работать перестала!
Еще раз большое спасибо Вам и МВТ за подробные разъяснения и уделенное время! Вы мне очень помогли!

Автор - dickist
Дата добавления - 15.05.2015 в 22:53
  • Страница 1 из 1
  • 1
Поиск:

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