2.3k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,
ich habe in einer Spalte eine variable Anzahl von Werten und möchte jeweils den kleinsten freien ermitteln, also den kleinsten Wert, der in der Datenreihe noch nicht vorhanden ist.
Hat jemand einen Tipp? Danke und Gruß! A.

18 Antworten

0 Punkte
Beantwortet von
Hallo Andreas,

Deckt Deine Formel auch Mehrfachdiferenzen ab?

Gruß
Paul1
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ich hatte es so verstanden

2 3 4 5 7 Ergebnis = 1
1 2 3 4 6 Ergebnis = 5

Paul hat das Problem zufriedenstellend gelöst :-)
Dann dient dir das Makro zumindestens fuer experimentelle zwecke ^^

gruss nighty
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,
die Formel ermittelt jeweils den kleinsten "freien" Wert. Mit dem letzten Parameter kann man allerdings den Rang variieren.

Nighty, der Code liefert in deinem zweiten Beispiel nicht die 5 sondern auch die 1....?
Gruß A.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Andreas ^^

du solltest softwaretester werden :-)

ich dachte da viel zu kompliziert glaube ich

ich glaub so geht es auch :-)

gruss nighty

Sub Kleinste()
Range("B2") = ""
Dim Index As Long, Zaehler As Long
Columns("A:A").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ReDim Datt(ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row - 1) As Variant
Datt() = Range("A2:A" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row)
For Zaehler = 1 To UBound(Datt())
Index = Index + 1
If Index <> Datt(Zaehler, 1) Then
Range("B2") = Index
Exit For
End If
Next Zaehler
End Sub
0 Punkte
Beantwortet von
Hallo Andreas,

Kann die Formel nicht nachvollziehen, zumal ich das "BereichHistorie" in der Formel nicht zuordnen kann, Hauptsache es geht für Dich in Ordnung.

Somit gestatte ich mir mich hier auszuklinken.

schönen Tag noch (auch an nighty)

Gruß
Paul1
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Paul1,

sorry, ich hatte es mir etwas einfach gemacht und die Formel aus meiner Anwendung kopiert. Dort hatte ich ZellBereiche definiert, die die Formel für Außenstehende unübersichtlich machen. Hier die abgespeckte einfache getestete Version. Daten stehen in Spalte "A":

=KKLEINSTE(WENN(ZÄHLENWENN($A:$A;ZEILE($A:$A))=0;ZEILE($A:$A));1)


Die Formel muss als Matrixformel bestätigt werden (ctl+Umsch+Ent).
Gruß A.
0 Punkte
Beantwortet von
Hallo Andreas,

ja, die Formel wirft den kleinsten fehlenden Wert einer fortlaufenden Zahlenfolge aus.

Selbst mit Excel 2003 dauert es Urlange (ca. 3 bis 4min.) bis das Ergebnis da ist, eine Anpassung auf die tatsächliche Zeilenanzahl wäre hir angebracht, aber das weißt Du sicher selber.

nochmals schöne Grüße

Paul1
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo nighty,

es tut mir leid aber ich kriege immer noch "1" heraus bei der Folge 1,2,3,4,6=1 anstelle von "5"...
Gruß A.
...