Menschen, die mich an der Kasse vorlassen, weil sie sehen, dass ich es eilig habe und nur wenige Dinge in der Hand habe, kommen übrigens in den Himmel.

Bernhard hat mich darauf aufmerksam gemacht. Ist mir bislang nicht aufgefallen.

Die Funktion DATEDIF in Excel und die VBA-Funktion DateDiff rechnen unterschiedlich.

Trägt man in zwei Zellen die Datumsangaben 20.05.2021 und 01.06.2021 ein, so beträgt bei der Excelfunktion DATEDIF mit dem Parameter „M“ das Ergebnis 0, bei der VBA-Funktion dagegen 1.

Ich habe eine kleine Tabelle aufgebaut: im oberen Teil einige Datumsdifferenzen auf Basis des Monats:

Im unteren Teil verwende ich ein kleines VBA-Makro:

Sub BerechneDateDIFF()
     Dim intZeile As Integer
     Dim intSpalte As Integer

     For intZeile = 21 To 30
         For intSpalte = 2 To 20
             ActiveSheet.Cells(intZeile, intSpalte).Value = DateDiff("M", ActiveSheet.Cells(intZeile, 1).Value, ActiveSheet.Cells(20, intSpalte).Value)
         Next intSpalte
     Next intZeile

End Sub

Das Ergebnis:

Die Unterschiede habe ich mit einer bedingten Formatierung farblich hervorgehoben.

Ein Dankeschön für den wertvollen Hinweis an Bernhard Ramroth.

Das Auge liest mit!

Die Frage ist interessant: Aus einer Geburtstagsliste sollen all diejenigen angezeigt werden, die in dieser (laufenden Kalender-)Woche Geburtstag haben. Eine kleine Fingerübung, oder:

Zuerst wird das Geburtsdatum in ein Datum des aktuellen Jahres „transformiert“. Dann wird von diesem Datum und vom aktuellen Tag die ISOKALENDERWOCHE berechnet. Und schließlich beides miteinander verglichen:

Hallo Wolfgang,

und so geht es:

=WENN(ISOKALENDERWOCHE(HEUTE())=ISOKALENDERWOCHE(DATUM(JAHR(HEUTE());MONAT(K2);TAG(K2)));“x“;““)

Schau dir mal die Schritt in der angefügten Tabelle an

Viel Spaß mit KW und Geburtstag

Rene

Lieber René,

vielen Dank. Ich hatte es gleich gestern Abend noch nachgetüfftelt und bin zum Ergebnis gekommen, allerdings hatte ich das Datum anders umgewandelt.

Da sah dann so aus: =WENN(ISOKALENDERWOCHE(TAG(A1)&“.“&MONAT(A1)&“.“&JAHR(HEUTE()))=ISOKALENDERWOCHE(HEUTE());“Happy Birthday“;““)
Viele Grüße
Wolfgang

Ist auch richtig, Wolfgang – meine Lösung ist natürlich besser *lach*

Im Ernst: ich mag es nicht, wenn du ein Datum (intern eine Zahl) in einen Text umwandelst und diese implizit wieder in ein Datum konvertieren lässt. Bei sehr vielen Datensätzen dauert es länger als meine Lösung, die ein Datum als Datum lässt.

Liebe Grüße Rene

Am Ende des Geldes bleibt immer so viel Monat übrig

Hallo Herr Martin,

ich finde in Excel einfach keine Funktion QUARTALSENDE. Konkret: Ich benötige den letzten Tag (als Datum) des Quartals, in dem sich ein Datum befindet. Also beispielsweise:

1.1.2016 -> 31.03.2016

2.2.2016 -> 31.03.2016

5.5.2016 -> 30.06.2016

und so weiter.

Ist das Quartal nicht zu Ende?

Ist das Quartal nicht zu Ende?

Das ist richtig: DIESE Funktion gibt es in Excel leider nicht. Man muss sie zusammenbauen. Wenn in A1 das Datum steht, dann beispielsweise so:

=DATUM(JAHR(A1);MONAT(A1)-REST(MONAT(A1)+2;3)+3;1)-1

oder so:

=DATUM(JAHR(A1);OBERGRENZE(MONAT(A1);3)+1;1)-1

(beide Funktionen suchen den letzten Monat des Quartals, addieren 1 (also verwenden den nächsten Monat) und von diesem Monat den ersten Tag. Davon wird 1 abgezogen. Oder auch so:

=MONATSENDE(A1;REST(3-MONAT(A1);3))

Man ermittelt die Anzahl der Monate, die zu dem Datum dazu gezählt werden muss.

Datum funktioniert nicht

Ich wollte Datumsangaben im ISO-Format, also: jjjj-mm-tt formatieren, aber es funktioniert nicht.

Die Antwort: Excel unterscheidet (fast) an keiner Stelle zwischen Groß- und Kleinschreibung – eine der wenigen Stellen ist die Formatierung des Monats. Hier muss man ein großes „M“ schreiben. Ein kleines „m“ ist reserviert für Minuten.

Merkwürdige Darstellung von Datumsangaben

Merkwürdige Darstellung von Datumsangaben