IExcel не сравнивает даты должным образом

393
SalemTheCat

У меня есть таблица с двумя датами в следующем формате:

  • С1 Sep 21, 2017 10:22 AM
  • С2 Sep 28, 2017 10:09 AM

Если я запускаю следующее заявление if против них ...

=IF(M4<L4, "Fail", "Pass")

... тогда формула возвращается Pass. Однако, если две даты находятся в разных месяцах, формула не выполняется.

Например,

  • С1 [Sep 26, 2017 03:14 PM]
  • С2 [Oct 2, 2017 03:39 PM]
  • возвращается Fail.

Значение C1 ниже, чем C2, но формула все еще не работает.

Это не имеет значения для возвращаемого значения, если ячейка отформатирована как текст или дата. и =DateValue()функция не будет работать, она возвращает#VALUE

Есть идеи?

0
по сути, я хочу сравнить значения каждого столбца. c1 - это время, когда что-то было исправлено, а c2 - это время, которое требуется исправить. Если время, в которое она была исправлена, истекло, то формула должна ответить как неудачная, в противном случае это проход SalemTheCat 5 лет назад 0
Я думаю, что ваша последняя мысль о том, что `DateValue` не работает, является проблемой, если Excel не сможет разобрать текст в то, что он распознает как дату, то он, скорее всего, будет сравнивать текст, и, следовательно," O "- это <" S ». Попробуйте отформатировать данные так, чтобы DateValue анализировал. cjb110 5 лет назад 0
@SalemTheCat, так что я предполагаю, что C1 обозначает столбец 1, а C2 - столбец 2? То есть клетки, на которые вы ссылаетесь, на самом деле M4 и L4, верно? Albin 5 лет назад 0
@SalemTheCat вы должны не только записывать свои спецификации в комментарии, но и редактировать свой вопрос, чтобы его было легче читать. Я сделал это для тебя в этот раз. Albin 5 лет назад 0
@SalemTheCat Я обновил свой ответ, теперь он должен работать, по крайней мере, он работает в моей версии Excel. Albin 5 лет назад 0

2 ответа на вопрос

2
Albin

В вашей формуле вы сравниваете не C1 и C2, а M4 и L4. Если вы хотите сравнить C1 и C2 напрямую, вы должны также использовать эти значения в формуле.

Эта формула, например

=IF(C1<C2, "Fail", "Pass") 

покажет «Fail», если дата / время в ячейке C1 меньше, чем дата в ячейке C2. Если дата в С1 больше или равна, она покажет «Pass». Ячейки C1 и C2 должны быть отформатированы как дата, а не как текст. В обеих ячейках это должен быть дата или определенный пользователем формат (в котором используются переменные времени и даты, предлагаемые Excel, например, YYYY, MMM, DD и т. Д.). Если вы используете текстовый формат, «if-предложение» будет сравнивать не время / дату, а строки, что дает вам «забавные» результаты!

Функция DateValue () работает только с ячейками в текстовом формате и только в определенной области, она не работает с вашей нотацией. Это работает с, 31.07.2018 20:36но не работает с Jul 31, 2018 08:36 PM.

2
PeterH

Если утверждения работают следующим образом:

=IF( Logical Test, Value if test is TRUE, value if test is FALSE) 

Так что вы можете использовать:

=IF(C2<C1,"Pass",Fail") 

Я не 100% понимаю ваш вопрос, так что вам, возможно, придется поменять <на>

Логические операторы вы можете использовать:

  • >, Лучше чем
  • < Меньше, чем
  • = Равно
  • <= Меньше или равно
  • >= больше или равно
  • <> не равно

Похожие вопросы