Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nächsten kleineren und größeren Wert finden

Nächsten kleineren und größeren Wert finden
02.08.2004 15:10:49
Karsten
Hallo zusammen,
In Spalte A (Zeile 18 bis zur ersten Leerzelle) stehen Zahlenwerte in aufsteigender Reihenfolge. Wie kann ich per VBA den jeweils nächst kleineren und nächst höheren Wert zu einem von mir vorgegebenen Suchwert (Zelle C3) finden? Von diesen Werte benötige ich die Zeilen und-Spaltennummer.
Bin für jede Hilfe dankbar.
Karsten
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Nächsten kleineren und größeren Wert finden
Boris
Hi Karsten,
z.B. so:
Option Explicit

Sub test()
Dim strMax As String
Dim strMin As String
Dim lR As Long
lR = [a18].End(xlDown).Row
strMax = "MAX((A18:A" & lR & "<C3)*A18:A" & lR & ")"
strMin = "MIN(IF(A18:A" & lR & ">C3,A18:A" & lR & "))"
MsgBox "Nächst kleinerer: " & Evaluate(strMax) & vbLf & _
"In Zeile " & Application.Match(Evaluate(strMax), Range("A18:A" & lR), 0) + 17
MsgBox "Nächst größerer: " & Evaluate(strMin) & vbLf & _
"In Zeile " & Application.Match(Evaluate(strMin), Range("A18:A" & lR), 0) + 17
End Sub

Grüße Boris
Anzeige
AW: Nächsten kleineren und größeren Wert finden
Karsten
Herzlichen Dank Boris,
ich muß es jetzt mal austesten.
Karsten
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Nächsten kleineren und größeren Wert in Excel finden


Schritt-für-Schritt-Anleitung

Um den nächst kleineren und größeren Wert in Excel zu finden, kannst Du den folgenden VBA-Code verwenden. Dieser Code sucht in einer aufsteigenden Liste von Zahlenwerten (Spalte A, Zeile 18 bis zur ersten Leerzelle) nach dem nächst kleineren und größeren Wert im Vergleich zu einem vorgegebenen Suchwert in Zelle C3.

  1. Öffne Excel und aktiviere die Entwicklertools.
  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.
  3. Erstelle ein neues Modul und füge den folgenden Code ein:
Option Explicit

Sub NächsteWerteFinden()
    Dim strMax As String
    Dim strMin As String
    Dim lR As Long
    lR = [A18].End(xlDown).Row
    strMax = "MAX((A18:A" & lR & "<C3)*A18:A" & lR & ")"
    strMin = "MIN(IF(A18:A" & lR & ">C3,A18:A" & lR & "))"

    MsgBox "Nächst kleinerer Wert: " & Evaluate(strMax) & vbLf & _
           "In Zeile: " & Application.Match(Evaluate(strMax), Range("A18:A" & lR), 0) + 17
    MsgBox "Nächst größerer Wert: " & Evaluate(strMin) & vbLf & _
           "In Zeile: " & Application.Match(Evaluate(strMin), Range("A18:A" & lR), 0) + 17
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro NächsteWerteFinden aus, um den nächst kleineren Wert sowie den nächst größeren Wert zu erhalten.

Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung" beim Ausführen des Makros.

    • Lösung: Stelle sicher, dass die Werte in Spalte A Zahlen sind und nicht als Text formatiert sind.
  • Fehler: Makro wird nicht ausgeführt.

    • Lösung: Überprüfe, ob Makros in Deinen Excel-Einstellungen aktiviert sind.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch Formeln nutzen:

  • Für den nächst kleineren Wert:

    =MAX(WENN(A18:A100<C3; A18:A100))
  • Für den nächst größeren Wert:

    =MIN(WENN(A18:A100>C3; A18:A100))

Verwende diese Formeln als Array-Formeln, indem Du die Eingabe mit Strg + Shift + Enter bestätigst.


Praktische Beispiele

Angenommen, Du hast folgende Werte in Spalte A (A18 bis A22):

A18: 10
A19: 20
A20: 30
A21: 40
A22: 50

Wenn Du in Zelle C3 den Wert 25 eingibst und das Makro ausführst, wirst Du als Ergebnis den nächst kleineren Wert 20 und den nächst größeren Wert 30 erhalten.


Tipps für Profis

  • Um die Leistung des Makros zu verbessern, achte darauf, nur den benötigten Zellbereich in den Formeln zu verwenden.
  • Du kannst den Code erweitern, um die gefundenen Werte in spezifische Zellen zu schreiben, anstatt sie in einer MessageBox anzuzeigen.
  • Experimentiere mit dem SVERWEIS, um den nächst größeren Wert in Kombination mit anderen Funktionen zu finden.

FAQ: Häufige Fragen

1. Wie kann ich den nächst kleineren Wert in einer Liste finden, die nicht sortiert ist?
Du kannst die AGGREGAT-Funktion in Kombination mit WENN verwenden, um den nächst kleineren Wert zu ermitteln.

2. Kann ich den Code auch in Excel Online verwenden?
Leider unterstützt Excel Online keine VBA-Makros. Stattdessen musst Du die Formeln verwenden, die in diesem Tutorial beschrieben sind.

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