Registriert seit: 10.04.2014
Version(en): Office 2019
Hallo @ all, durch eine Quiz-Show, die Montag auf RTL lief, wurde ich inspiriert folgende Übung mal durch zu spielen. Es ging dort um den 5. Montag im Monat Februar. (Eine der Auswahlmöglichkeiten). Das nächste Mal, wann es 5 Montage im Februar gibt. Meine kleine Übung: Wie oft trifft es zu, dass es 5 Montage im Februar gibt - in einem definierten Zeitraum und in welchen Jahren ist dies der Fall. Gegeben sind nur ein Start- und ein Enddatum. Siehe kleiner Tabellenausschnitt. Mich würde interessieren, wie ihr das lösen würdet. Ich für mich habe das mit Power Query gelöst. Es würde mich freuen, wenn es den einen oder anderen gibt, der sich hier beteiligt. Ob VBA oder Formel oder Power Query ist egal... Arbeitsblatt mit dem Namen 'Tabelle3' | | A | B | C | D | 1 | 01.01.1900 | | | | 2 | 31.12.2150 | | in welchen Jahren | Anzahl | 3 | | | | | 4 | | | | | 5 | | | | | 6 | | | | | 7 | | | | | 8 | | | | | 9 | | | | | 10 | | | | | 11 | | | | |
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016 | Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg |
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hi Jörg, mit VBA: Sub AnzahlFebruareMitFuenfMontagen() Dim lngAnzahlJahre As Long Dim lngJahr As Long Dim datBis As Date Dim datVon As Date Dim varJahre As Variant datVon = Range("A1").Value datBis = Range("A2").Value ReDim varJahre(1 To Year(datBis) - Year(datVon), 1 To 1) For lngJahr = Year(datVon) To Year(datBis) If Day(DateSerial(lngJahr, 2, 29)) = 29 Then If Weekday(DateSerial(lngJahr, 2, 29), 2) = 1 Then lngAnzahlJahre = lngAnzahlJahre + 1 varJahre(lngAnzahlJahre, 1) = lngJahr End If End If Next lngJahr Range("C3").Resize(UBound(varJahre)).Value = varJahre Range("D3").Value = lngAnzahlJahre End Sub Gruß Uwe
Registriert seit: 10.04.2014
Version(en): Office 2019
Moin Uwe, das ging ja rasant. Und ist richtig - was sonst. (^_-) toll...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 10.04.2014
Version(en): Office 2019
Hallo, bislang habe ich zwei Varianten zur Lösung der kleinen Übung bekommen. Eine per PN. Beide mit dem richtigen Ergebnis - die eine VBA, die andere mit Power Query. Danke schon mal dafür. Ich warte noch ein wenig. Es gibt ja keine Auswertung mit Wertung und kein Preis... Trotzdem würde ich den thread am Sonntag Abend schliessen - und dann meinen Vorschlag einbringen. Mal sehen - vielleicht tut sich ja noch etwas. Eine Formelvariante vielleicht, obwohl: das glaube ich eher weniger. (Aber trotzdem) Danke fürs mitgrübeln...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
| A | B | C | D | 1 | 01.01.1901 | | | | 2 | 31.12.2150 | | In welchen Jahren | | 3 | | | 1904 | 9 | 4 | | | 1932 | | 5 | | | 1960 | | 6 | | | 1988 | | 7 | | | 2016 | | 8 | | | 2044 | | 9 | | | 2072 | | 10 | | | 2112 | | 11 | | | 2140 | |
Zelle | Formel | C3 | =WENNFEHLER(AGGREGAT(15;6;(1900+ZEILE($A$1:$A$250))/((TAG(("1.3."&1900+ZEILE($A$1:$A$250))-1)=29)*(REST("1.2."&1900+ZEILE($A$1:$A$250);7)=2));ZEILE(A1));"") | D3 | =ANZAHL($C$3:$C$15) |
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010 | Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg |
Gruß Michael
Registriert seit: 10.04.2014
Version(en): Office 2019
16.01.2019, 19:36
(Dieser Beitrag wurde zuletzt bearbeitet: 16.01.2019, 19:36 von Jockel.)
Moin Michael, danke für deinen Beitrag. Sieht auf den ersten Blick super aus. ABER: Der definierte Zeitraum soll frei definierbar sein, also auch unterjährig... Das ist jetzt unschön - von mir wegen der ungenauen Vorgabe... Beim Testen habe ich festgestellt, dass das auch Uwe's Beitrag betrifft... SORRY.... Auch die Power Query Lösung aus der PN ist betroffen... Oje...
Bitte nicht böse sein, wegen der offensichtlich schwachen Formulierung...
Also wenn der Start nach dem Februar ist oder das Ende im Januar liegt sollte das jeweils betroffene Jahr nicht mit aufgeführt werden...
Ja, Fragen stellen ist manchmal schwerer, als sie zu beantworten...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hi Jörg, (16.01.2019, 19:21)Jockel schrieb: Der definierte Zeitraum soll frei definierbar sein, also auch unterjährig... auch kein Problem:  Sub AnzahlFebruareMitFuenfMontagen() Dim lngAnzahlJahre As Long Dim lngJahr As Long Dim datBis As Date Dim datVon As Date Dim varJahre As Variant datVon = Range("A1").Value datBis = Range("A2").Value ReDim varJahre(1 To Year(datBis) - Year(datVon), 1 To 1) For lngJahr = Year(datVon) To Year(datBis) If DateSerial(lngJahr, 2, 1) >= datVon And DateSerial(lngJahr, 2, 29) <= datBis Then If Day(DateSerial(lngJahr, 2, 29)) = 29 Then If Weekday(DateSerial(lngJahr, 2, 29), 2) = 1 Then lngAnzahlJahre = lngAnzahlJahre + 1 varJahre(lngAnzahlJahre, 1) = lngJahr End If End If End If Next lngJahr Range("C3").Resize(UBound(varJahre)).Value = varJahre Range("D3").Value = lngAnzahlJahre End Sub Gruß Uwe
Registriert seit: 10.04.2014
Version(en): Office 2019
Hi Uwe, für dich nicht! Passt perfekt. Toll. Da ist wohl ein Bierchen fällig beim nächsten Treffen.
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 10.04.2014
Version(en): Office 2019
20.01.2019, 14:47
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2019, 14:47 von Jockel.)
Hallo, werte Mitleser. Heute möchte ich meinen Lösungsansatz zeigen. Leider wird's beim zeigen bleiben, denn: Die, die mich kennen, wissen, dass ich kein Erklär-Bär bin. Es ist ein Ansatz. Nicht mehr und nicht weniger... Es geht sicher besser - auf jeden Fall anders. Ich habe einiges Interessante gesehen und gelernt. Wenn es Fragen gibt, versuche ich sie natürlichzu beantworten... So, bin gleich afk - es wird kulturell in Bad Arolsen...
Übung_5ter_Montag_im_Februar_mit_PQ.xlsb (Größe: 18,67 KB / Downloads: 7)
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
|