Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Проблема при сравнении дат в Excel

Ответить
Настройки темы
Разное - Проблема при сравнении дат в Excel

Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте!

Через программу выгружаю заданный массив данных в Excel и уже провожу различные вычисления в Excel. Возникла проблема, следующего вида:

Сравниваю две даты через функцию "ЕСЛИ". Последняя дата в колонке должна быть больше первой, если это так, то пишется "правда", а если нет, то "ложь". Как видим на скрине 01.04 больше, чем 23.03, но при это пишется "ложь!", вместо "правда".


Далее идем в первую сравниваемую колонку и просто нажимаем на нее (редактируем) и нажимаем снова "enter" (сохраняем изменения)


и видим следующее:


Выражение считает уже правильно!!!
Менять формат ячеек - не помогает. Пробовал в разных версиях работать - 2003 и 2007, но результат один и тот. В ручную каждую запись изменять и проводить такие операции, когда записей тысячи и на постоянной основе обработка идет - не вариант... Если даты в одном месяце, то сравнение идет по умолчания правильное. Может кто подскажет, как можно выйти из данной ситуации. За ранее спасибо!!!

Отправлено: 12:38, 13-04-2015

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


ДмитрийБел, дело за малым — упакуйте образец Вашей рабочей книги, приведённой на скриншоте, в архив и выложите последний здесь или на RGhost.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:12, 13-04-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот:

Последний раз редактировалось ДмитрийБел, 14-04-2015 в 15:42.


Отправлено: 13:51, 13-04-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


ДмитрийБел, у Вас в столбце «IssueDate» не числовые данные, а текстовые. Посему никакие манипуляции с форматом отображения не дадут результата.

Самый простой способ перевести из текста в число (коим и является в реальности дата) следующий:
  • введите в какую-либо пустую ячейку (например, в «L2») число «1»;
  • скопируйте эту ячейку в буфер обмена;
  • выделите потребный диапазон («I2:I48»);
  • сделайте специальную вставку (\Правка\Специальная вставка… — для Office 2003);
  • в диалоговом окне «Специальная вставка…» укажите следующее:
Скрытый текст

Затем отформатируйте числовые значения в ячейках как дату.

Конечно, самым правильным будет по возможности настроить Ваше приложение, из которого Вы осуществляете экспорт, так, чтобы в ячейках с датой были именно числовые значения дат, а не текст в виде даты.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:18, 13-04-2015 | #4


Модератор


Moderator


Сообщения: 16832
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


ДмитрийБел, попробуйте перед J2 и I2 в вашей формуле сравнения поставить "--", т.е.
Код: Выделить весь код
=если(--J2>--I2;"правда";"ложь!")

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:34, 13-04-2015 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


okshef, правильно ли я понимаю, что:
  1. Это тоже попытка перевода в число.
  2. И автору достаточно будет «--» только перед «I2»?

Отправлено: 14:43, 13-04-2015 | #6


Модератор


Moderator


Сообщения: 16832
Благодарности: 3245

Профиль | Сайт | Отправить PM | Цитировать


1. Да
2. Я поправил пост

Возможно (не на чем сейчас проверить) достаточно даже J2-I2>0

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:07, 13-04-2015 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


okshef, спасибо, ясно. Значит, итоговый вывод таков: необходимо и достаточно любым возможным способом привести текстовое значение к числу.

Цитата okshef:
Возможно (не на чем сейчас проверить) достаточно даже J2-I2>0 »
Да, достаточно. Я проверил.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:21, 13-04-2015 | #8


Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо большое!!!
Можно использовать одно на выбор из двух вариантов?

=ЕСЛИ(--J2>--I2;"правда";"ложь")
или
=ЕСЛИ(J2-I2>0;"правда";"ложь")

Последнее выражение не понятно, но главное работает!

Может ещё подскажете два вопроса:
1) можно ли вместо "ложь", чтобы ячейка закрашивалась в красный цвет, к примеру? Нашел формулу для определения цвета заливки ячейки, а на заливку нет.
2) можно ли через "ЕСЛИ" сравнивать два значения в одной ячейке т.е. J2>I2 и J2>H2 - если сохраняются два условия сразу, то "правда"?

Последний раз редактировалось ДмитрийБел, 13-04-2015 в 23:57.


Отправлено: 18:34, 13-04-2015 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата ДмитрийБел:
Последнее выражение не понятно, но главное работает! »
Любое. И там, и там происходит то же самое, что я описал выше, но только на уровне формулы, а не исходной ячейки.

В первом случае происходит перевод текстового содержимого ячейки в число посредством двух унарных операций «-» (насколько я это понимаю), причём для обеих целевых ячеек. Во втором случае также происходит неявное преобразование в процессе вычисления разницы между значениями ячеек — как я понимаю, среда производит попытку неявного преобразования значения ячеек из текста в число.

Цитата ДмитрийБел:
1) можно ли вместо "ложь", чтобы ячейка закрашивалась в красный цвет, к примеру? Нашел формулу для определения цвета заливки ячейки, а на заливку нет. »
Можно. Задайте результат не как текст, а, например, как булевы значения:
Код: Выделить весь код
=ЕСЛИ(--J2>--I2;ИСТИНА;ЛОЖЬ)
или даже просто:
Код: Выделить весь код
=--J2>--I2
затем используйте для ячеек «Условное форматирование».
Цитата ДмитрийБел:
2) можно ли через "ЕСЛИ" сравнивать два значения в одной ячейке т.е. J2>I2 и J2>H2 »
Нет, нельзя. Используйте такую функцию рабочего листа для операции:
Код: Выделить весь код
=И(--J2>--I2;--J2>--H2)
и соответственно вся формула будет выглядеть как:
Код: Выделить весь код
=ЕСЛИ(И(--J2>--I2;--J2>--H2);ИСТИНА;ЛОЖЬ)
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:01, 13-04-2015 | #10



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » Разное - Проблема при сравнении дат в Excel

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ошибка - Чудеса при форматировании, копировании и сравнении Swarn Microsoft Windows 2000/XP 12 12-10-2013 18:46
2010 - Excel 2010 зависает при открытии файла Excel 2003 dinzhevatov Microsoft Office (Word, Excel, Outlook и т.д.) 9 18-06-2013 21:45
Delphi - Сравнение дат Radik_Assasin Программирование и базы данных 5 21-08-2011 13:49
Кеш Nehalem в сравнении с Deneb futureuser Процесcоры 0 24-03-2008 01:04
GPRS в сравнении с Dial-Up'ом :) german r Мобильные ОС, смартфоны и планшеты 6 16-01-2003 00:35




 
Переход