191 Aufrufe
Gefragt in Tabellenkalkulation von petra65 Experte (1.8k Punkte)

Guten Morgen,

oh je - ich weiss mal wieder was ich will, bekomme es aber nicht hin crying

Ich habe hier einen Dienstplan mit 3 Tabellenblättern. Im Blatt Mai 20 möchte ich nun in AJ die Summe der verplanten Stunden bilden. Die Zeiten sind im Blatt Dienste vorgegeben..

Mein Problem ist nun, wie bekomme ich die Summe, wenn 10x Am-f vorkommt + 5x K1-s + ... ...

Ich stehe total auf dem Schlauch und hoffe mal wieder auf Hilfe.

LG

3 Antworten

0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)
+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)
ausgewählt von petra65
 
Beste Antwort

Hallo Petra,

wenn du das mit Formeln machen willst, dann so:

=WENNFEHLER(SVERWEIS(D4;Dienste!$C$3:$G$32;5;FALSCH);0)+WENNFEHLER(SVERWEIS(E4;Dienste!$C$3:$G$32;5;FALSCH);0)+WENNFEHLER(SVERWEIS(F4;Dienste!$C$3:$G$32;5;FALSCH);0)+WENNFEHLER(SVERWEIS(G4;Dienste!$C$3:$G$32;5;FALSCH);0)

Ist jetzt nur für ein paar Zellen und wird bei 31 Tage lang und unübersichtlich.

Da du ja sowieso ein Makro in der Tabelle hast, kannst du das einfacher mit der folgenden Funktion machen.

Kopiere das Makro in dein allgemeines Modul:

Function Dienstzeit(ByVal rngBereich As Range) As Double

Dim rngZelle As Range
Dim rngSuche As Range
Dim rngSuchbereich As Range

'Suchbereich definieren
Set rngSuchbereich = Worksheets("Dienste").Range("C3:G25")

'Übergebenen Bereich durchlaufen
For Each rngZelle In rngBereich
  'nur nichtleere Zellen ansprechen
  If rngZelle <> "" Then
    'prüfen, ob Kürzel im Suchbereich gefunden wird
    Set rngSuche = rngSuchbereich.Columns(1).Find(what:=rngZelle.Value, Lookat:=xlWhole, LookIn:=xlValues)
    If Not rngSuche Is Nothing Then
      'falls ja, dann gefundene Arbeitszeit zur Dienstzeit addieren
      Dienstzeit = Dienstzeit + Worksheets("Dienste").Cells(rngSuche.Row, rngSuche.Column + 4).Value
      'Variable für Suche wieder zurücksetzen
      Set rngSuche = Nothing
    End If
  End If
Next rngZelle

'Suchbereich Zurücksetzen
Set rngSuchbereich = Nothing

End Function

Dann schreibst du in Zelle AJ4 die folgende Formel: =Dienstzeit(D4:AH4)

Diese kannst du soweit bei benötigt nach unten ziehen.

Gruß

M.O.

0 Punkte
Beantwortet von petra65 Experte (1.8k Punkte)

Hallo M.O.,

das nenne ich mal genial yes

Beide Lösungen funktionieren perfekt ( freu * freu * freu ).

Ganz, ganz herzlichen Dank.

Petra

...