Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

2t-kleinster Wert aus Auflistung, VBA

Forumthread: 2t-kleinster Wert aus Auflistung, VBA

2t-kleinster Wert aus Auflistung, VBA
Marc
Guten Morgen, Gemeinde!
Aus einer Reihe von Grenzwerten möchte ich den zweitkleinsten Wert ermitteln.
Das Problem mit "Rang" bzw .small ist, das der zweitkleinste Wert sich nicht tatsächlich vom kleinsten Wert unterscheiden muß, wenn der Wert mehrfach vorkommt.
Beispielwerte:
8
8
64
64
64
177,99
178
Zweitkleinster Rang = 8, gewünschtes Ergebnis ist aber 64!
Mit WorksheetFunction.Small komm ich nicht weiter, wäre dankbar für den entscheidenden Tip.
Danke für die Mühe
Gruß, Marc
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
geht auch mit Formeln
19.08.2011 09:49:46
Matthias
Hallo Marc
Könnte man so lösen
Tabelle1

 ABC
18 8
28864
364 177,99
464 178
56464 
6177,99177,99 
7178178 

Formeln der Tabelle
ZelleFormel
B1=WENN(1/ZÄHLENWENN($A1:$A$7;A1)=1;A1;"")
C1=KKLEINSTE($B$1:$B$7;1)
B2=WENN(1/ZÄHLENWENN($A2:$A$7;A2)=1;A2;"")
C2=KKLEINSTE($B$1:$B$7;2)
B3=WENN(1/ZÄHLENWENN($A3:$A$7;A3)=1;A3;"")
C3=KKLEINSTE($B$1:$B$7;3)
B4=WENN(1/ZÄHLENWENN($A4:$A$7;A4)=1;A4;"")
C4=KKLEINSTE($B$1:$B$7;4)
B5=WENN(1/ZÄHLENWENN($A5:$A$7;A5)=1;A5;"")
B6=WENN(1/ZÄHLENWENN($A6:$A$7;A6)=1;A6;"")
B7=WENN(1/ZÄHLENWENN($A7:$A$7;A7)=1;A7;"")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias
Anzeige
AW: 2t-kleinster Wert aus Auflistung, VBA
19.08.2011 09:53:07
Henrik
Hallo Marc,
hier mal eine Funktion für ein Modul.
Kannst du natürlich auch anders umbauen.
So könntets du sie auch als normale Funktion auf jedem Tabellenblatt verwenden. Public Function MiniZwei(rngZahlenbereich As Range) Dim lngMIN As Long, fncWKS As WorksheetFunction, lngAZ As Long Set fncWKS = WorksheetFunction lngMIN = fncWKS.Min(rngZahlenbereich) lngAZ = fncWKS.CountIf(rngZahlenbereich, lngMIN) MiniZwei = fncWKS.Small(rngZahlenbereich, lngAZ + 1) End Function
Gruß Henrik
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zweitkleinster Wert in Excel ermitteln


Schritt-für-Schritt-Anleitung

Um den zweitkleinsten Wert in Excel zu finden, kannst du folgende Schritte ausführen:

  1. Daten eingeben: Trage deine Werte in eine Excel-Tabelle ein. Zum Beispiel in Spalte A.

  2. Hilfsspalte erstellen: Erstelle in einer neuen Spalte (z.B. Spalte B) eine Hilfsspalte mit der folgenden Formel in B1:

    =WENN(1/ZÄHLENWENN($A$1:$A$7;A1)=1;A1;"")

    Ziehe die Formel bis zur letzten Zeile deiner Daten.

  3. Zweitkleinster Wert finden: In einer weiteren Zelle (z.B. C1) verwendest du die Formel:

    =KKLEINSTE($B$1:$B$7;2)

    Diese Formel gibt dir den zweitkleinsten Wert zurück.


Häufige Fehler und Lösungen

  • Fehler: "#WERT!"
    Lösung: Stelle sicher, dass du die richtigen Zellbezüge verwendest. Überprüfe, ob die Hilfsspalte korrekt gefüllt ist.

  • Problem mit mehrfachen Werten:
    Manchmal kann der zweitkleinste Wert gleich dem kleinsten Wert sein. Verwende die oben genannten Formeln, um sicherzustellen, dass du den richtigen Wert erhältst.


Alternative Methoden

Eine andere Möglichkeit, den zweitkleinsten Wert zu finden, ist die Verwendung von VBA. Du kannst eine benutzerdefinierte Funktion erstellen, die den zweitkleinsten Wert ermittelt:

Public Function MiniZwei(rngZahlenbereich As Range)
    Dim lngMIN As Long, fncWKS As WorksheetFunction, lngAZ As Long
    Set fncWKS = WorksheetFunction
    lngMIN = fncWKS.Min(rngZahlenbereich)
    lngAZ = fncWKS.CountIf(rngZahlenbereich, lngMIN)
    MiniZwei = fncWKS.Small(rngZahlenbereich, lngAZ + 1)
End Function

Füge diesen Code in ein Modul ein und verwende die Funktion =MiniZwei(A1:A7).


Praktische Beispiele

Angenommen, du hast folgende Werte in Spalte A:

A
8
8
64
64
64
177.99
178

Wenn du die oben beschriebenen Methoden anwendest, wird der zweitkleinste Wert korrekt als 64 angezeigt.


Tipps für Profis

  • Wenn du zweitkleinsten Wert mit Bedingung ermitteln möchtest, kannst du die WENN-Funktion in Kombination mit KKLEINSTE verwenden.
  • Achte darauf, dass deine Daten keine Leerzellen enthalten, um Fehler zu vermeiden.
  • Nutze die Funktion AGGREGAT, um auch bei Fehlern in den Daten den zweitkleinsten Wert zu finden.

FAQ: Häufige Fragen

1. Wie finde ich den zweitkleinsten Wert in einer großen Datenmenge?
Verwende die beschriebenen Formeln oder VBA-Funktionen, um Zeit zu sparen und Fehler zu minimieren.

2. Kann ich den zweitkleinsten Wert auch aus einer gefilterten Liste abrufen?
Ja, du kannst die Funktion AGGREGAT verwenden, um den zweitkleinsten Wert aus einer gefilterten Liste zu ermitteln, ohne die sichtbaren Zellen zu berücksichtigen.

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