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

Forumthread: Maximum aus Array

Maximum aus Array
15.08.2008 11:32:00
Bernd
Hallo Forum,
ich habe ein zweidimensionales Array steigung(i,j), nun möchte ich wissen, an welcher Stelle im Array in Zeile i der größte Wert steht. Den Wert selbst brauche ich nicht, ich möchte nur wissen in welcher Spalte das Maximum einer Zeile steht.
Vielen Dank!

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Maximum aus Array
15.08.2008 11:47:00
Rudi
Hallo,
da musst du mit ner Schleife durch.
Bsp:

Sub tt()
Dim Steigung
Steigung = Range("A1:F40")
MsgBox ZMax(Steigung)
End Sub



Function ZMax(myArray)
Dim i As Long, j As Long, vntMax
For i = LBound(myArray) To UBound(myArray)
For j = LBound(myArray, 2) To UBound(myArray, 2)
If myArray(i, j) > vntMax Then
ZMax = i
vntMax = myArray(i, j)
End If
Next
Next
End Function


Gruß
Rudi

Anzeige
AW: Maximum aus Array
15.08.2008 11:47:00
Daniel
Hi
du kannst dir mit "worksheetfunction.max(arr)" das Maximum deines Arrays ermitteln lassen.
jetzt musst du zwei schleifen (Zeilen und Spalten) das Array druchlaufen und dir den Spaltenzähler merken, wenn der Wert mit dem Maximum übereinstimmt.
Gruß, Daniel

AW: Maximum aus Array
15.08.2008 12:03:00
Tino
Hallo,
vielleicht gehts auch einfachen, aber hier mal ein Beispiel.

Dim strAr(10, 0) As Double
Dim Zeile As Double, ArIndex As Long
Dim A As Long
For A = 0 To 10
'Zufallszahl schreiben
strAr(A, 0) = [=ROUND(RAND()*100,2)]
Next A
For A = LBound(strAr) To UBound(strAr)
If strAr(A, 0) > Zeile Then Zeile = strAr(A, 0): ArIndex = A
Next A
MsgBox ArIndex


Gruß Tino

Anzeige
AW: Maximum aus Array
15.08.2008 12:08:00
Tino
Hallo,
besser ist es wahrscheinlich den ersten Wert aus der Matrix als Ausgangspunkt zu nehmen.

Dim strAr(10, 0) As Double
Dim Zeile As Double, ArIndex As Long
Dim A As Long
For A = 0 To 10
'Zufallszahl schreiben
strAr(A, 0) = [=ROUND(RAND()*100,2)]
Next A
Zeile = strAr(0, 0)
For A = LBound(strAr) To UBound(strAr)
If strAr(A, 0) > Zeile Then Zeile = strAr(A, 0): ArIndex = A
Next A
MsgBox ArIndex


Gruß Tino

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Maximum aus Array in Excel ermitteln


Schritt-für-Schritt-Anleitung

Um das Maximum aus einem zweidimensionalen Array in Excel zu ermitteln, kannst du folgende Schritte ausführen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste im Projektfenster auf „VBAProject“ und wähle „Einfügen“ > „Modul“.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub MaximumAusArray()
        Dim Steigung
        Dim MaxIndex As Long
        Dim MaxWert As Double
        Dim i As Long
    
        Steigung = Range("A1:F40") ' Dein Datenbereich
        MaxWert = Steigung(1, 1) ' Setze den ersten Wert als Maximum
    
        For i = 1 To UBound(Steigung, 1)
            If Application.WorksheetFunction.Max(Steigung, i) > MaxWert Then
                MaxWert = Application.WorksheetFunction.Max(Steigung, i)
                MaxIndex = i
            End If
        Next i
    
        MsgBox "Das Maximum befindet sich in Zeile: " & MaxIndex
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um das Maximum und die Zeile zu erhalten.


Häufige Fehler und Lösungen

  • Fehler: „Typ nicht definiert“
    Lösung: Stelle sicher, dass du die richtigen Datentypen verwendest. Überprüfe auch, dass dein Array korrekt definiert ist.

  • Fehler: „Bereich nicht gefunden“
    Lösung: Überprüfe den angegebenen Bereich in Range("A1:F40"). Stelle sicher, dass die Daten in diesem Bereich vorhanden sind.

  • Fehler: „Lbound außerhalb des Bereichs“
    Lösung: Achte darauf, dass das Array nicht leer ist, bevor du die Schleifen durchläufst.


Alternative Methoden

Wenn du keine VBA verwenden möchtest, kannst du auch die Excel-Funktion MAX in Kombination mit den Funktionen VERGLEICH und INDEX nutzen, um das Maximum zu ermitteln und die Position auszulesen:

  1. Maximalwert finden: Benutze =MAX(A1:F40) in einer Zelle, um den maximalen Wert zu finden.
  2. Position des Maximums: Verwende =VERGLEICH(MAX(A1:F40), A1:F40, 0), um die Position des Maximums zu ermitteln.

Diese Methode ist besonders nützlich, wenn du keine Programmierkenntnisse hast.


Praktische Beispiele

Hier sind zwei Beispiele, die dir helfen, das Maximum aus einem Array zu ermitteln:

  1. Beispiel mit Zufallszahlen:

    Dim strAr(10, 0) As Double
    Dim A As Long
    For A = 0 To 10
        strAr(A, 0) = Round(Rnd() * 100, 2)
    Next A
    MsgBox "Das Maximum befindet sich in Zeile: " & ZMax(strAr)
  2. Beispiel mit festen Werten:

    Dim myArray(2, 2) As Double
    myArray(0, 0) = 10
    myArray(0, 1) = 20
    myArray(0, 2) = 30
    myArray(1, 0) = 5
    myArray(1, 1) = 25
    myArray(1, 2) = 15
    myArray(2, 0) = 8
    myArray(2, 1) = 13
    myArray(2, 2) = 9
    MsgBox "Das Maximum befindet sich in Zeile: " & ZMax(myArray)

Tipps für Profis

  • Verwende Application.Max für eine schnellere Berechnung, wenn du mit großen Arrays arbeitest.
  • Nutze die Funktion Application.Match, um schnell die Position des Maximums zu finden.
  • Stelle sicher, dass dein Array korrekt dimensioniert ist, um Laufzeitfehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Maximum in einem VBA-Array finden?
Verwende eine Schleife, um durch das Array zu iterieren und den größten Wert zu ermitteln.

2. Kann ich das Maximum eines Arrays ohne VBA ermitteln?
Ja, du kannst die Excel-Funktion MAX verwenden, um das Maximum aus einem Bereich zu ermitteln.

3. Wie gebe ich das Array Maximum aus?
Du kannst das Maximum in einer Message Box ausgeben oder in eine Zelle schreiben, indem du MsgBox oder Cells(i, j).Value verwendest.

4. Welche Excel-Version benötige ich?
Die Beispiele und Funktionen sind in Excel 2010 und späteren Versionen verfügbar.

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