Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Verweis für Ferienkalender

Verweis für Ferienkalender
29.08.2022 14:10:53
Markus
Hi zusammen,
ich möchte einen Ferienkalender erstellen, der anhand des jeweiligen von- und bis-Datums in einer Stammdatenliste den Feriennamen zieht und in jeden einzelnen Tag der in den Kalender überträgt. Und zwar auch in Abhängigkeit vom jeweiligen Bundesland.
Etwas knifflig ist dabei, dass es, meistens bei den Pfingstferien, einzelne zusätzliche Tage gibt. Bsp. 13.05. - 18.05. + 26.05.
Mit der Beispieldatei wir es hoffentlich klarer.
https://www.herber.de/bbs/user/154862.xlsx
Danke euch vorab!
VG Markus
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachfrage...
29.08.2022 14:51:16
{Boris}
Hi,
wäre auch eine Ergebnisausgabe in dieser Form möglich?

Datum	      Bayern	       Thüringen	      NRW            ...usw
01.01.2022
02.01.2022
03.01.2022
...usw. 

Unter den Bundesländern steht dann zu jedem Datum, ob und welche Ferien gerade sind.
VG, Boris
Anzeige
AW: Nachfrage...
29.08.2022 14:54:36
Markus
Hey Boris,
klar, würde auch gehen. Kann mir dann die Werte per Index-Formel ziehen.
Wie gehe ich da vor?
Vielen Dank schon mal!
VG Markus
Beispieldatei...
29.08.2022 14:57:58
{Boris}
Hi,
...anbei. Formel aus I3 ist sowohl nach unten als auch nach rechts kopierbar.
https://www.herber.de/bbs/user/154864.xlsx
Den Eingabebereich für die "Stammdaten" hab ich erstmal bis Zeile 100 vorgesehen.
Schau mal, ob das so passt.
VG, Boris
Anzeige
AW: Beispieldatei...
29.08.2022 15:53:28
Markus
Oh man, die hat es mal in sich. Tut aber was sie soll..
LET und SEQUENZ sind mir völlig neu. Muss ich mir bei Gelegenheit genauer anschauen.
Vielen Dank dir für die schnelle Hilfe und evtl bis demnächst =)
VG Markus
Du kannst aber auch mal...
29.08.2022 16:06:20
{Boris}
Hi,
...den Vorschlag von Daniel umsetzen. Ist - wie er ja schreibt - etwas mehr Vorarbeit, dafür ist die Formel einfacher.
Andererseits ist meine gepostete Formel gar nicht soooo wahnsinnig schwer verständlich:
=LET(
x;($A$3:$A$100=I$2)*($C$3:$C$100=$H3)+($A$3:$A$100=I$2)*($E$3:$E$100=$H3);
WENN(SUMME(x);INDEX($B$3:$B$100;MIN(WENN(x;SEQUENZ(98))));""))
LET ist ja erstmal hauptsächlich dafür da, um Redundanzen zu vermeiden.
Der fett gedruckte Teil (reine Matrixberechnungen - hier Multiplikation / Addition von Wahrheitswerten - wie man sie schon immer macht) wird dabei zu Beginn der Variablen x zugewiesen, auf die in der eigentlichen Formel (WENN(SUMME(...)) 2 mal zurückgegriffen wird.
Ohne LET würde die Formel halt länger (und noch unübersichtlicher),
SEQUENZ ist eine sehr simple Funktion zur Erzeugung von Zahlenreihen-/folgen. Vormals hat man das mit ZEILE($1:$98) formuliert (geht natürlich auch so in xl365).
VG, Boris
Anzeige
AW: Verweis für Ferienkalender
29.08.2022 15:25:44
Daniel
Hi
Andere Lösungsmöglichkeit, die etwas mehr Vorbereitung erfordert, dafür eine einfache Formel ermöglicht:
Die Stammdatentabelle musst du so für jedes Bundesland aufbauen:
In der ersten Spalte immer abwechselnd das Datum des ersten Arbeitstagesund das Datum des ersten Ferientags.
In der zweiten Spalte schreibt du daneben beim ersten Arbeitstag nichts und beim ersten Ferientag den Feriennamen.
Sind die Ferien in zwei Blöcke geteilt, dann wiederholt du einfach den Feriennamen, auch einzeltage kannst du so eingeben.
Wichtig ist nur, dass die Liste nach Datum aufsteigend sortiert ist.
Dh die Liste muss in etwa so aussehen:

01.01.22 |
10.04.22 | Osterferien
17.04.22 |
05.05.22 | Pfingstferien
12.05.22 |
23.05.22 | Pfingstferien
24.05.22 |
So eine Liste erstellst du für jedes Bundesland.
Dann markiert du jede Liste und vergibst ihr einen Excel-Namen, am besten nimmt du den Namen des jeweigen Bundeslandes, den du auch in deiner Übersicht in Spalte G verwendest:
Die Formel in deiner Übersicht sieht dann so aus, in deiner Beispieldatei in Zelle I3:

=SVerweis(H3;Indirekt(G3);2;Wahr)&""
Gruß Daniel
Anzeige
AW: Verweis für Ferienkalender
29.08.2022 16:42:08
Daniel
Noch ne Variante, die uneingeschränkt für deine Vorliegenden Daten funktioniert und dabei einfach ist:
Die Reihenfolge in der Liste ist egal.

=FILTER($B$3:$B$7;($A$3:$A$7=G3)*(($C$3:$C$7=H3)+($E$3:$E$7=H3));"")
In der Bedingungsprüfung steht + für ODER und * für UND
0 ist in Berechnungen äquivalent FALSCH und 1 bzw jede andere Zahl äquivalent WAHR
Gruß Daniel
Anzeige
Viel besser...
29.08.2022 18:09:24
{Boris}
Hi Daniel,
...weil viel einfacher :-)
@Markus: Nimm die Filtervariante von Daniel.
VG, Boris
Angepasst...
29.08.2022 18:12:04
{Boris}
Hi Markus,
..auf meine Beispieldatei in I3:
=FILTER($B$3:$B$100;($A$3:$A$100=I$2)*(($C$3:$C$100=$H3)+($E$3:$E$100=$H3));"")
und sowohl runter als auch nach rechts kopieren.
VG, Boris
Anzeige
AW: Viel besser...
30.08.2022 10:48:44
Markus
Hey ihr beiden,
ich habe jetzt deine Variante tatsächlich bereits umgesetzt, Boris. Musste leider schnell gehen. Aber trotzdem dir natürlich auch vielen Dank, Daniel! Hab mir deine Vorschläge notiert.
Mit den üblichen Standards komme ich grundsätzlich gut klar. Bei logischen Verknüpfen von Bereichen fehlt mir allerdings noch die Übung. Hatte dazu lediglich mal mit dem Summenprodukt rumprobiert. Werd ich aber auf jeden Fall vertiefen..
Also vielen Dank nochmal euch beiden!
VG Markus
Anzeige
VBA?
29.08.2022 17:35:05
Yal
Moin,
Vielleicht ist in dem Fall VBA nicht so sehr abwägig...

Sub Datum_transformieren()
Dim Z As Range 'Z wie Zelle
Dim R As Long ' R wie Row
Dim i
With Worksheets("Tabelle1")
For Each Z In Range(.Range("A3"), .Cells(Rows.Count, "A").End(xlUp))
Set Z = Z.EntireRow
'Von-Bis
For i = Z.Range("C1").Value To Z.Range("D1").Value 'relative Adresse: "1" ist immer die Zeile von Z
R = .Cells(Rows.Count, "G").End(xlUp).Row + 1
.Cells(R, "G") = Z.Range("A1").Value
.Cells(R, "H") = CDate(i)
.Cells(R, "I") = Z.Range("B1").Value
Next
'EinzelDatum, Falls vorhanden
If Z.Range("E1")  "" Then
R = .Cells(Rows.Count, "G").End(xlUp).Row + 1
.Cells(R, "G") = Z.Range("A1").Value
.Cells(R, "H") = Z.Range("E1").Value
.Cells(R, "I") = Z.Range("B1").Value
End If
Next
End With
End Sub
Mein Tipp, um VBA-Versteher zu werden: den Code auf Deutsch laut lesen. Hört sich bescheuert an, aber beschleunigt das Verstehen ungemein :-)
VG
Yal
Anzeige
AW: VBA?
30.08.2022 10:55:26
Markus
Hi Yal,
ich hab Boris Lösung jetzt tatsächlich schon umgesetzt, da es schnell gehen musste. Trotzdem auch dir danke für deinen Vorschlag!
Bzgl VBA bin ich aber ohnehin noch relativ schwach auf der Brust. Wollte da aber eh auch endlich mal einsteigen. Also danke auch für den Tipp mit dem laut Vorlesen! =)
VG Markus
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Verweis für Ferienkalender in Excel


Schritt-für-Schritt-Anleitung

  1. Stammdaten erstellen: Erstelle eine Tabelle mit den relevanten Daten, wie das Start- und Enddatum der Ferien sowie die Feriennamen für jedes Bundesland. Diese Tabelle wird die Grundlage für deinen Ferienkalender sein.

  2. Formel zur Abfrage der Ferien: Nutze die FILTER-Funktion oder SVERWEIS, um die Daten für den jeweiligen Tag abzurufen. Eine Beispiel-Formel könnte so aussehen:

    =FILTER($B$3:$B$100;($A$3:$A$100=I$2)*(($C$3:$C$100=$H3)+($E$3:$E$100=$H3));"")
  3. Kalender erstellen: Erstelle deinen Kalender für das Jahr 2023 in Excel und fülle die Zellen mit den entsprechenden Feriennamen, indem du die oben genannte Formel verwendest.

  4. Überprüfung: Stelle sicher, dass die Daten korrekt sind und die Formeln die richtigen Ergebnisse liefern.


Häufige Fehler und Lösungen

  • Excel SEQUENZ Funktion fehlt: Wenn die SEQUENZ-Funktion nicht verfügbar ist, könnte es daran liegen, dass du eine ältere Excel-Version verwendest. Diese Funktion ist nur in Excel 365 oder Excel 2021 verfügbar.

  • Formel gibt Fehler zurück: Überprüfe, ob deine Bereichsbezüge korrekt sind. Eine häufige Fehlerursache ist, dass die Daten nicht im richtigen Format vorliegen oder die Bereiche nicht richtig definiert sind.


Alternative Methoden

  • VBA zur Automatisierung: Eine VBA-Lösung kann helfen, die Daten automatisch zu verarbeiten. Hier ist ein einfaches Beispiel:

    Sub FerienKalenderErstellen()
       ' Dein VBA Code hier
    End Sub

    Dies könnte nützlich sein, wenn du regelmäßig Ferien berechnen möchtest.

  • Manuelle Eingabe: Eine einfache Möglichkeit, die Ferien zu berechnen, besteht darin, die Daten manuell in eine Tabelle einzugeben und dann mit SVERWEIS oder FILTER zu arbeiten.


Praktische Beispiele

  • Ferienkalender Bayern: Du kannst einen speziellen Ferienkalender für Bayern erstellen, indem du die entsprechenden Daten für die Schulferien in Bayern in deine Stammdaten eingibst.

  • Kalender 2023 Bayern Excel: Erstelle eine Tabelle für das Jahr 2023, in der du die Feiertage und Schulferien für Bayern auflistest. Verwende die oben genannten Formeln, um die Ferien automatisch in deinen Kalender einzufügen.


Tipps für Profis

  • Namen vergeben: Vergib deinen Datenbereichen Namen, um die Formeln übersichtlicher zu gestalten. Anstatt $A$3:$A$100 zu verwenden, könntest du FerienBayern verwenden.

  • Kombination von Funktionen: Experimentiere mit der Kombination von verschiedenen Excel-Funktionen wie LET, FILTER und SVERWEIS, um komplexe Abfragen zu erstellen.


FAQ: Häufige Fragen

1. Wie kann ich die Schulferien für verschiedene Bundesländer berechnen?
Du kannst für jedes Bundesland eine separate Stammdatentabelle erstellen und dann die entsprechenden Formeln verwenden.

2. Was tun, wenn die SEQUENZ-Funktion nicht funktioniert?
Überprüfe, ob du die richtige Excel-Version verwendest. Die Funktion ist nur in Excel 365 und 2021 verfügbar. Wenn sie nicht verfügbar ist, kannst du alternative Methoden wie ZEILE verwenden.

3. Kann ich VBA verwenden, um meinen Ferienkalender zu erstellen?
Ja, VBA kann eine nützliche Methode sein, um Daten zu verarbeiten und automatisierte Berechnungen durchzuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige