it-swarm.com.de

Wie geht Excel mit der Zusammensetzung von Funktionen um?

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>), die die Tagesnummer von <date> zurückgibt. Das ist, dass DAY(19/05/1984) den Wert 19 zurückgeben sollte.

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?

21
Taladris

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

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

40
apple9321

Ich denke, Sie könnten verwirrt sein, wenn Sie glauben, Excel manipuliert Datumswerte.

Verwenden von Datums- und Uhrzeitangaben in Excel

In Excel werden Zahlen verwendet, um Datumsangaben darzustellen (die möglicherweise gebrochene Anzahl von Tagen seit dem 0.01.1900), aber sie werden 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 meiner Meinung nach 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, d. H. 18.

9
Spike0xff

Mit deiner Formel stimmt nichts nicht. Was ich Ihnen vorschlagen möchte, wenn die Formel nicht das erwartete Ergebnis liefert, dann liefert sie entweder einen 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.

Get Day in Number

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.

Hinweis, Ich habe Ihnen alle Möglichkeiten vorgeschlagen, 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.

2
Rajesh S

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 1900er 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. Zum Beispiel, wenn Sie Wenn Sie den 5. Juli 1998 eingeben, 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 1904er 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 verwendet eine Datumsseriennummer als Eingabe und gibt eine Ganzzahl als Ausgabe zurück. Wenn wir in Ihrem Beispiel 18 als Datumsserie betrachten und ab dem 1. Januar 1900 18 Tage vorwärts zählen, erhalten wir den 18. Januar 1900.

Die einfache Lösung für das Front-End besteht darin, Ihr Zellenformat in etwas anderes 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.

1
Skoddie