Wie funktioniert die logische Testfälle in einer Excel-if-Anweisung auswerten, Daten in verschiedenen Formaten?
Tabelle mit Beispiel-Daten verknüpft ist hier.
Angenommen, Sie haben 3 Termine "4/1/2015", "6/30/2015" und "5/1/2016" einstellen, um das Datum Zelle formatieren in Excel.
Können direkt miteinander verglichen werden die Daten mit Hilfe von logischen Operatoren (<, > usw.). Wenn "4/1/2015" wurde in Zelle A1 und "6/30/2015" wurde in Zelle A2, diese Formel =IF(A1>A2,"True","False")
wertet auf "False".
Aber man kann es nicht vergleichen ein Datum gegen ein string-literal (d.h. "3/31/2015"). Wenn "4/1/2015" wurde in die Zelle A1 mit dieser Formel =IF(AND(A1>="4/01/2015",A1<="6/30/2015"),"True","False")
immer wertet auf "False".
Mit den oben darauf hingewiesen, warum ist es, dass durch hinzufügen einer arithmetischen operation auf einem string-literal; Excel ermöglicht den Vergleich zwischen Daten in verschiedenen Formaten gespeichert? Zum Beispiel, wenn "4/1/2015" wurde in die Zelle A1 mit dieser Formel =IF(AND(A1>="4/01/2015"+0,A1<="6/30/2015"+0),"True","False")
wertet auf "True".
InformationsquelleAutor Mike Dexter | 2015-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Daten sind gespeichert als Double - die Anzahl der Tage vom Dec 31, 1899 plus einen Bruchteil, ist der Prozentsatz der Zeit, die verstrichen ist, seit Mitternacht. Gerade jetzt, ich Schreibe dies auf 42221.50049, die 42,221 Tagen seit 1899 und ein wenig nach Mittag.
Sehen Sie ein Datum-format nur, weil Sie ein Datumsformat angewendet, die Zelle. Es ist immer noch eine Nummer darunter. Aber dates sind etwas besonderes. Das Datum zeigt sich auch in der Excel-Formel bar, nicht als Zahl, sondern als Datum. Andere formatierte zahlen zeigen nicht auf diese Weise. Excel wird versuchen, zu Fuß eine feine Linie zwischen dem speichern von Daten als Verdoppelt und zeigt dem Benutzer das, was Sie erwarten zu sehen.
Excel hat eine eingebaute Typumwandlung. TC lässt Sie Dinge tun, ohne super-strengen über-Datentypen. Im Grunde, wenn Excel können herausfinden, wie zu tun, was Sie Fragen, wird Sie es tun. Wenn Sie Fragen zum hinzufügen von zwei strings,
"1" + "1"
Excel zwingen, jede dieser Zeichenfolgen zu einer Zahl, so kann Sie die operation und geben Sie2
. Wenn Sie Fragen"1" + "a"
, erhalten Sie ein #WERT-Fehler, weil Excel kann nicht herausfinden, wie zu zwingen, "a" in etwas, das ein Gültiger operand ist.Vergleiche nicht auslösen Zwang. So
="1"=1
False zurück - ein string ist nicht gleich eine Zahl und ein Vergleich der nicht-trigger Excel zu zwingen, entweder den Wert in einen anderen Typ.In Ihrem Fall
A1>="04/01/2015"
scheint wie eine große Chance für Excel zu zwingen, was aussieht wie ein Datum zu einem tatsächlichen Datum. Aber es funktioniert nicht. Das ist nur die Art, wie es funktioniert. Aber das hinzufügen null auf den Zeitpunkt (das denken ist nur ein Double), zwingt es in ein Datum und Sie sind Links-Vergleich A1 zu etwas gezwungen worden zu einem Zeitpunkt.String-Literale der Termine zu funktionieren scheinen, sich in viele Umgebungen wie SQL Server. Aber Sie in der Regel nicht in Excel. Es ist am besten, IMO, verwenden Sie die Funktion DATE (), wie in
A1>=DATE(2015,4,1)
.InformationsquelleAutor Dick Kusleika