Wie geht Excel mit der Zusammensetzung von Funktionen um?


21

Ich habe versucht, Funktionen zu verwenden, um den heutigen Tag als Zahl in Excel abzurufen. Als ich zum Beispiel diese Frage schrieb, hätte ich $ 18 $ erhalten sollen.

Ich habe versucht zu benutzen:

  1. die Funktion, TODAY()die das heutige Datum in einem Datumsformat zurückgibt.
  2. Day(<date>)das gibt die Tageszahl von zurück <date>. Das ist DAY(19/05/1984)sollte 19 zurückgeben.

Daher die Formel

=DAY(TODAY())

sollte das Ergebnis geben, das ich wollte.

Diese Rückkehr 18/01/1900 (bei Verwendung der Funktion heute)

Wenn ich benutze

=TODAY()

in Zelle A1 und dann

=DAY(A1)

In einer anderen Zelle erhalte ich das richtige Ergebnis.

Warum liefert DAY (TODAY ()) nicht das erwartete Ergebnis?

Aus meiner Erfahrung als Mathematiker und Hobby-Programmierer (in Maple, Java und einigen Pythons) scheint meine Funktionskomposition in Ordnung zu sein.

Wie geht Excel generell mit der Zusammensetzung von Formeln um?


11
Die richtige Antwort ist "schlecht".
Carl Witthoft

Office-Unterstützung für Excel-Funktionen .. es heißt sogar: =DAY(TODAY())... Gibt den aktuellen Tag des Monats (1 - 31) zurück ..
txtechhelp

Antworten:


40

Ihre Formel ist korrekt. Es ist verwirrend, wie Excel Zellen formatiert. Wenn Sie beispielsweise einen Zellenwert manuell auf festlegen 18und dann das Format in ein Datum ändern, wird dies als angezeigt January 18, 1900.

Wenn Sie das Format der Zelle mit Ihrer Formel in "Allgemein" ändern, sollte das erwartete Ergebnis angezeigt werden.


3
Es kann hilfreich sein, zu erklären, warum die Formatierung dies tut. Excel speichert Zeitstempel als "Tage seit 00:00:00 0.01.1900", mit Stunden, Minuten und Sekunden als Dezimalstellen eines Tages (Mittag am 01.01.1900 ist "1,5").
Carl Kevinson

Und Excel wird standardmäßig mit Datum oder Uhrzeit formatiert, sobald ein beliebiger Datums- / Uhrzeitwert verwendet wird. Das kann entweder eine andere Zelle sein, die so formatiert ist, oder funktioniert so TODAY(). Wirklich ärgerlich, wenn man sie nur in Dekompositionsfunktionen einsetzt und die Formatierung zurückschalten muss.
Ratschenfreak

1
Tangential relevant: sciencemag.org/news/2016/08/… [ Jede fünfte Genetik-Veröffentlichung enthält Fehler dank Microsoft Excel]
Darren Ringer

@ DarrenRinger Ich habe immer gelesen, dass "ihre Werkzeuge beschuldigen" - der Schlüsselpunkt des Papiers, wachsam zu sein und zu bleiben . Ähnliches ist mir passiert (wenn auch nicht in Bezug auf die Genetik) und wie alle anderen denke ich, "Excel hat diese Zahl in ... geändert", obwohl ich mir sagen sollte ", verdammt, ich habe nicht berücksichtigt, dass sich diese Zahl ändern würde bis ..... "
Darren Bartrup-Cook

9

Ich glaube, Sie könnten verwirrt sein, wenn Sie glauben, Excel manipuliere Datumswerte: Das tut es nicht.

Verwendung von Datums- und Uhrzeitangaben in Excel

In Excel werden Zahlen zur Darstellung von Datumsangaben verwendet (die möglicherweise nach Bruchteilen angegebene Anzahl von Tagen seit dem 0.01.1900). Sie werden jedoch von Excel als Zahlen gespeichert und bearbeitet. HEUTE () ist eine Funktion mit Zahlenwerten, und TAG () ist eine Funktion von einem numerischen Argument zu einem numerischen Ergebnis.

In Ihrem Fall hat DAY (TODAY ()) 18 (eine Zahl) korrekt zurückgegeben, die Sie vermutlich einer Zelle zugewiesen haben, die so formatiert ist, dass sie ein Datum in Kurzform anzeigt - so dass 18 als 18.01.1900 angezeigt wird. Für Excel bedeutet dies, wenn 18 als Datum interpretiert wird.

Wenn Sie diese Zelle in ein numerisches Format formatieren, wird die Antwort wie erwartet angezeigt, z. B. 18.


2

Mit Ihrer Formel stimmt nichts nicht. Was ich Ihnen vorschlagen möchte, wenn die Formel nicht das erwartete Ergebnis liefert, dann liefert sie entweder Fehler oder das falsche Ergebnis. Da hast du nicht erwähnt, was die Formel zu kochen hat!

In der Zwischenzeit möchte ich Ihnen zeigen, welche Möglichkeiten es gibt, den DAY-Wert in Number in Excel zu erhalten.

Überprüfen Sie den Screenshot unten.

Holen Sie sich Tag in Nummer

NB:

Datum ist in Zelle E166 . Die 2. Spalte F hat Ergebnisse und die 3. Spalte G zeigt die Formel, für die ich verwendet habe.

Sie können auch die TEXT-Funktion verwenden, um den Tageswert als Textdaten abzurufen.

Der Wert ist ROT. Die Farbe hat das benutzerdefinierte Zellenformat DD. Sie können auf die Zelle (n) anwenden, um nur die Tageswerte des Datums (n) anzuzeigen.

Beachten Sie, dass ich Ihnen alle Möglichkeiten vorgeschlagen habe, da Sie erwähnt haben, dass Sie im Grunde kein Excel-Benutzer sind.

Hoffe, dies hilft dir, vergiss nicht, den FEHLER, den deine Formel gegeben hat, zu posten.


1

Ihre Formel ist richtig zusammengestellt. Das unerwartete Ergebnis ist darauf zurückzuführen, wie unterschiedliche Datentypen in Excel gespeichert werden.

Es gibt zwei ähnliche Systeme, die Excel zum Speichern von Daten verwendet, basierend auf einer Einstellung auf Arbeitsmappenebene.

Das 1900 Datumssystem

Im 1900-Datumssystem wird als erster Tag der 1. Januar 1900 unterstützt. Wenn Sie ein Datum eingeben, wird das Datum in eine Seriennummer umgewandelt, die die Anzahl der seit dem 1. Januar 1900 verstrichenen Tage angibt. Beispiel: Wenn Sie Geben Sie den 5. Juli 1998 ein, konvertiert Excel das Datum in die Seriennummer 35981.

Standardmäßig verwendet Microsoft Excel für Windows das 1900-Datumssystem. Das 1900-Datumssystem ermöglicht eine bessere Kompatibilität zwischen Excel und anderen Tabellenkalkulationsprogrammen wie Lotus 1-2-3, die für die Ausführung unter MS-DOS oder Microsoft Windows entwickelt wurden.

Das 1904 Datumssystem

Im 1904-Datumssystem wird als erster Tag der 1. Januar 1904 unterstützt. Wenn Sie ein Datum eingeben, wird das Datum in eine Seriennummer umgewandelt, die die Anzahl der seit dem 1. Januar 1904 verstrichenen Tage angibt. Zum Beispiel, wenn Sie 5. Juli 1998 eingeben, konvertiert Excel das Datum in die Seriennummer 34519.

Standardmäßig verwendet Microsoft Excel für den Macintosh das 1904-Datumssystem. Aufgrund des Designs früher Macintosh-Computer wurden Daten vor dem 1. Januar 1904 nicht unterstützt. Mit diesem Entwurf sollten Probleme vermieden werden, die damit zusammenhängen, dass 1900 kein Schaltjahr war. Wenn Sie zum 1900-Datumssystem wechseln, unterstützt Excel für den Macintosh Datumsangaben bereits ab dem 1. Januar 1900.

Diese Auszüge wurden entnommen aus: https://support.microsoft.com/en-us/help/214330/differences-between-the-1900-and-the--1904-date-system-in-excel

Die Seriennummer ist eine einfache fortlaufende Zählung der Anzahl der Daten seit dem 1. Januar 1900, einschließlich des fiktiven Datums 29. Februar 1900. Die DAY-Funktion kann jedoch auch als Datentypkonvertierungsfunktion angesehen werden. Es nimmt eine Datumsseriennummer als Eingabe und gibt eine Ganzzahl als Ausgabe zurück. Wenn wir in Ihrem Beispiel davon ausgehen, dass 18 eine Datumsreihe darstellt und ab dem 1. Januar 1900 18 Tage vorwärts gezählt werden, erhalten wir den 18. Januar 1900.

Die einfache Lösung für das Front-End besteht darin, das Zellenformat in ein anderes Format wie Number oder General zu ändern . Dadurch wird Excel angewiesen, es Ihnen als Ganzzahl anzuzeigen, anstatt zu versuchen, es als Datumsserie zu interpretieren. Am hinteren Ende ist alles gut zu gehen. Das ganzzahlige Ergebnis kann in jeder anderen Formel verwendet werden und verhält sich korrekt.

Nehmen wir als Beispiel an, wir wollten eine bedingte Formel erstellen, die angibt, ob der 15. im aktuellen Monat verstrichen ist oder nicht. Wir können dies tun mit:

=IF(DAY(TODAY())>15,"The 15th has passed","It is not yet the 15th")

Es wäre viel schwieriger, dasselbe Ergebnis mit einer Datumsserie zu erzielen, sodass die DAY-Funktion, die eine Ganzzahl zurückgibt, im Kontext der üblichen Anwendungsfälle von Excel nützlicher ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.