Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MyMax - wo liegt der Hund begraben? Bitte um Input

MyMax - wo liegt der Hund begraben? Bitte um Input
12.08.2014 08:50:43
Thorben
Moinsen alle,
ich habe hier folgende Funktion:
  • 
    Function MyMax(rngK As Range, vntK, rngValues As Range)
    Dim iStart As Long, iEnde As Long, i As Long
    iStart = Application.Match(vntK, rngK, 0)
    iEnde = iStart + WorksheetFunction.CountIf(rngK, vntK) - 1
    MyMax = WorksheetFunction.Max(Range(rngValues(iStart, 1), rngValues(iEnde, 1)))
    End Function
    

  • Diese Rufe ich in meiner Mappe folgendermaßen auf:
  • =WENN(A2=A3;"";mymax($A$1:A2;A2;$E$1:E2))

  • Jetzt habe ich noch folgende schreibweise dieser Formel:
  • =WENN(A2=A3;"";mymax($A$2:$A$50000;A2;$E$2:$E$50000))

  • Diese wollte ich bevorzugen da etwas schneller und weniger zickig
    bei anschließendem Value = Value oder Clear.Contents
    Letztere gibt mir aber bei 56 von 809 Berechnungen falsche Werte zurück!
    Kann mir jemand sagen warum?
    In angehängter Datei I bis K runterkopieren und dann guckt euch die Unterschiede mal an.
    https://www.herber.de/bbs/user/92033.xlsm
    Ich kann es nicht erklären!
    Schnellere, bessere Lösungen, gerne auch VBA only, sind herzlich willkommen!
    Besten Dank schon mal im Voraus
    MfG
    Thorben

    3
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: MyMax - wo liegt der Hund begraben? Bitte um Input
    12.08.2014 10:06:44
    Daniel
    Hi
    die Erklärung warum hier unterschiedliche Werte rauskommen ist doch einfach:
    =WENN(A2=A3;"";mymax($A$2:$A$50000;A2;$E$2:$E$50000)) berücksichtig alle Zeilen der Tabelle
    =WENN(A2=A3;"";mymax($A$1:A2;A2;$E$1:E2)) berücksichtigt nur Werte, die oberhalb der Zeile stehen, in welcher sich die Formel befindet.
    kommt jetzt der Suchwert (2. Parameter, Zelle A2) unterhalb der Zeile nochmal vor, so verwendet die erste Formel diese Zeile auch, die zweiter Formel jedoch nicht.
    Das Problem ist also, dass deine Tabelle nicht nach Spalte A sortiert ist, und deswegen die Suchwerte an mehren Stellen vorkommen.
    eine deiner Formeln berücksichtigt unabhängig von der Sortierung alle Vorkommen des Suchbegriffs, die andere nur diejenigen Werte, die sich oberhalb der Formel befinden.
    Gruß Daniel

    Anzeige
    Daniel - danke!Vewaiste Doppelte nicht gesehen....
    12.08.2014 11:07:05
    Thorben
    wie doof und blind man manchmal ist...
    Vielen Dank

    geht das noch irgendwie schneller ?
    13.08.2014 17:32:05
    Thorben
    Moinsen,
    ich habe noch einmal die Datei angehängt.
    https://www.herber.de/bbs/user/92080.xlsm
    Darin befinden sich jetzt 3 Spalten die ermittelt werden.
    Danach Value2 = Value2
    Ich glaube seinerzeit hattest Du (Daniel) mich darauf gebracht mit Value2 zu arbeiten...!
    Wenn Ihr irgend eine Möglichkeit seht die Übernahme per Value2
    zu beschleunigen oder die Ermittlung abzuändern bin ich für alle Vorschläge / Lösungen sehr dankbar!
    Hintergrund ist das ich min 30000 und mehr Zeilen ermittelt muss und wenn möglich nicht auf eine Sanduhr starren möchte.
    Vielleicht habt ihr noch was in der Trickkiste!!!
    Vielen Dank schon mal
    MfG
    Thorben
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige