Ihre Firma möchte gerne einen Kalender haben. In diesem sollen die Geburtstage der Mitarbeiter eingetragen sein. Die Daten sind aus einer bestehenden Tabelle zu entnehmen welche die Daten ohne Jahr erfasst hat.
Quelldaten:
Datum | Jubilar |
---|---|
22.6. | Karl |
2.5. | Gustav |
22.6. | Erik |
2.5. | Tessa |
13.4. | Thomas |
12.1. | Kusi |
Zu erstellen ist nun ein Kalender in der Form:
Datum | Jubilar(e) |
---|---|
1.5. | |
2.5. | Gustav, Tessa |
3.5. | |
4.5. | |
6.5. |
Erklären Sie, warum die Funktion sVerweis in diesem Fall nicht weiterhelfen kann.
Function Feiernde(JubiDatum) 'Alle Jubilare werden zurück gegeben JubiWert = Day(JubiDatum) & "." & Month(JubiDatum) x = 0 For Each c In Range("Geburtstage") JTag = Day(c.Value) & "." & Month(c.Value) If JTag = JubiWert Then If x = 1 Then Feiernde = Feiernde + ", " Feiernde = Feiernde + c.Offset(0, 1).Value x = x + 1 End If Next c End Function
Der Bereich Geburtstage wird im Funktionsaufruf übergeben um eine fortlaufende Neuberechnung zu garantieren wenn eine neue Person den Betrieb betritt.
For Each c In Range("Geburtstage") kann übersetzt werden mit: Für alle Zellen im Bereich Geburtstage. Also durchlaufe alle Zellen des Bereiches Geburtstag. Dazu muss natürlich der Bereich Geburtstag existieren.
Nullwerte können unterdrückt werden indem die Variable JUBI zu Beginn der Funktion auf "" gesetzt wird.
Versuchen Sie eine Lösung zu produzieren um das schliessende Komma zu eliminieren.