Tabellenauswertung nach mehreren Zellen

Dieses Thema Tabellenauswertung nach mehreren Zellen im Forum "Microsoft Office Suite" wurde erstellt von Balu, 31. Jan. 2007.

Thema: Tabellenauswertung nach mehreren Zellen Hallo, mein Chef hat mich eben nach einer Excel-Formel für eine Abfrage gefragt und ich musste dicke Backen machen:...

  1. Hallo,
    mein Chef hat mich eben nach einer Excel-Formel für eine Abfrage gefragt und ich musste dicke Backen machen:

    In einer Tabelle sind Erfassungsgeräte aufgelistet. Die Geräte müssen zu unterschiedlichen Zeiten zur jährlichen Wartung. Das jeweilige Datum steht in einer Spalte.
    Als Ergebnis steht in einer Zelle dann, dass als nächstes das Gerät Nummer ... am (andere Zelle) ... zur Wartung fällig ist.

    Nun sind aber hin+wieder 2 oder mehrere Geräte am gleichen Datum zur Wartung fällig.
    ---> Es sollen dann in o.g. Zelle *alle* Gerätenummern, die als nächstes fällig sind (Datum) angegeben werden.

    Er hat's mit der Formel DBAUSZUG versucht, allerdings kommt dann die Fehlermeldung ZAHL!.

    Irgendwelche Tipps?

    Merci
     
  2. Mit Makro oder ohne ?  ::)

    Gruß Matjes  :)
     
  3.               :-\


    Wir wollten es als Formel schreiben, aber wenn's ein Makro gibt, dann auch das.
     
  4. Hallo Balu,

    zur Funktion bräuchte ich noch ein paar Erläuterungen.
    Ausgabe erfolgt also in 2 Zellen:
    -Zelle 1 hat welchen Offset zu Zelle 2 ?
    -ausgegeben wird das nächste fällige Datum in Zelle 2
    -ausgegeben werden die Gerätenummern in Zelle 1 zu diesem Datum
    -was ist mit Datumsangeben, die verkehrt sind oder leer
       sollen die als erste berücksichtigt werden ?
    - steht in der Liste unterhalb der Spalten mit Datum/Gerätenummer noch etwas anderes oder kann dort von unten nach oben nach dem letzten Eintrag gesucht werden ?

    Gruß Matjes :)
     
  5. Der Aufbau schaut so aus, dass in Spalte 1 die lfd. Nummer steht, Spalte 2 die Gerätebezeichnung, Spalte 3 das Datum.
    Es gibt keine leeren bzw. falschen Zellen.

    Unter der Liste stand bisher der Satz (damit des Ganze a Gsicht hat...), sinngemäß ...am [Datum] erfolgt Inspektion für Gerät/e [...].   wobei [die eckigen Klammern] jeweils für eigene Zellen stehen.
     
  6. Hallo Balu,

    folgende Function muß in einem Modul in der betreffenden Datei stehen:
    Code:
    Option Explicit
    
    Function NaechstesZuWartendesGeraet( _
                        GNrsAnzeigen As Boolean, _
                        Bereich_GNr As Range, _
                        Bereich_Datum As Range) As String
    
    
      Dim ws As Worksheet
      Dim lRowGNr As Long, lColGNr As Long, lRowsGNr As Long
      Dim lColDat As Long
      Dim sAnzGNrs As String, dDate As Date, dAnzDate As Date
      Dim x As Long
      
      On Error GoTo AUFRAEUMEN
      
     ->letzte Zeile mit Geraetenr feststellen
      NaechstesZuWartendesGeraet = FEHLER #1 RANGE GNR
      lRowGNr = Bereich_GNr.Row
      lColGNr = Bereich_GNr.Column
      lRowsGNr = Bereich_GNr.Row + Bereich_GNr.Rows.Count - 1
      Set ws = Bereich_GNr.Parent
      
     ->Spalte Datum
      NaechstesZuWartendesGeraet = FEHLER #2 RANGE DATUM
      lColDat = Bereich_Datum.Column
      
     ->kleinstes Datum suchen
      NaechstesZuWartendesGeraet = FEHLER #3 DATUM
      sAnzGNrs = 
      dAnzDate = #1/1/2039#
      For x = lRowGNr To lRowsGNr
        dDate = ws.Cells(x, lColDat).Value
        If dDate = dAnzDate Then
          sAnzGNrs = sAnzGNrs & ,  & ws.Cells(x, lColGNr).Value
          dAnzDate = dDate
        ElseIf dDate < dAnzDate Then
          sAnzGNrs = ws.Cells(x, lColGNr).Value
          dAnzDate = dDate
        End If
      Next
      
     ->Ausgabe
      If Not GNrsAnzeigen Then
       ->Datum ausgeben
        If sAnzGNrs =  Then
          NaechstesZuWartendesGeraet = #keine Geräte
        Else
          NaechstesZuWartendesGeraet = CStr(dAnzDate)
        End If
      Else
       ->Geräte ausgeben
        If sAnzGNrs =  Then sAnzGNrs = #keine Geräte
        NaechstesZuWartendesGeraet = sAnzGNrs
      End If
      
    AUFRAEUMEN:
      Err.Clear: On Error GoTo 0
      Set ws = Nothing
    End Function
    Beispiel für den Einsatz:
    a) GeräteNr stehen in B11:B26
    b) das jeweilige Wartungsdatum in C11:C26

    Dann sind die Formeln für

    - das Datum
    Code:
    =NaechstesZuWartendesGeraet(0;B11:B26;C11:C26)
      0 - keine GeräteNr anzeigen
      B11:B26 -  Bereich GeräteNr (ohne Überschrift)
      C11:C26 -  Bereich WDatum (ohne Überschrift)

    - GeräteNr/n
    Code:
    =NaechstesZuWartendesGeraet(1;B11:B26;C11:C26)
      1 - GeräteNr anzeigen
      B11:B26 -  Bereich GeräteNr (ohne Überschrift)
      C11:C26 -  Bereich WDatum (ohne Überschrift)

    Gruß Matjes :)
     
  7. Super,
    das hat prima geklappt.   mml mml mml

    Herzlichen Dank.
     
Die Seite wird geladen...

Tabellenauswertung nach mehreren Zellen - Ähnliche Themen

Forum Datum
Festplatte geht aus und danach nicht mehr an Windows 10 Forum Heute um 01:23 Uhr
EXE-Dateien nach einer Zeit nicht mehr ausführbar Windows 8 Forum Sonntag um 21:21 Uhr
Sperrbildschirm springt nach 3 min an Windows 10 Forum 18. Nov. 2016
Schwarzer Bildschirm nach Update auf Windows 10 Version 1607 Windows 10 Forum 4. Nov. 2016
nach eine Komplette Hardware-Wechsel kann ich meine Win 10Pro Lizenz wider aktivieren? Windows 10 Forum 20. Okt. 2016