Office: (Office 2013) Maximalwert aus einer Array-Spalte auslesen

Helfe beim Thema Maximalwert aus einer Array-Spalte auslesen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, Ich habe ein Array mit mehreren Spalten. Nun würde ich gerne den Maximalwert aus der ersten Spalte meines Array's auslesen. Mein unterer Code... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Faultier_1982, 21. März 2015.

  1. Maximalwert aus einer Array-Spalte auslesen


    Hallo,

    Ich habe ein Array mit mehreren Spalten. Nun würde ich gerne den Maximalwert aus der ersten Spalte meines Array's auslesen.
    Mein unterer Code ließt den Maximalwert aus dem ganzen Array aus, wie kann ich das nun auf eine Spalte begrenzen, ohne über eine Schleife eine Spalte in ein neues Array zu schreiben?

    Code:
    Gruß Faultier

    :)
     
    Faultier_1982, 21. März 2015
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    wie wird das Array gefüllt?


    Maximalwert aus einer Array-Spalte auslesen grusz.gif
     
    Beverly, 23. März 2015
    #2
  3. Hallo Beverly

    das Array wird über eine Schleife gefüllt.

    Gruß
     
    Faultier_1982, 23. März 2015
    #3
  4. Beverly
    Beverly Erfahrener User

    Maximalwert aus einer Array-Spalte auslesen

    Hi,

    dann würde ich folgendes machen - beim Füllen des Haupt-Arrays parallel dazu ein Hilfsarray mit nur 1 Spalte und den relevanten Daten befüllen und daraus mittels Application.Max(Hilfsarray) das Maximum ermitteln.


    Maximalwert aus einer Array-Spalte auslesen grusz.gif
     
    Beverly, 23. März 2015
    #4
  5. Hallo Beverly,

    ok, vielen Dank.
    Ist eine "Application.Max(Hilfsarray)" besser oder schneller als "WorksheetFunction.Max(Hilfsarray)"

    Gruß Faultier
     
    Faultier_1982, 23. März 2015
    #5
  6. Moin,

    alternativ sollte auch folgendes gehen, falls Werte in C1:E5 :
    Code:
    Das Array ist hier wegen des direkten Bezuges 1-basiert, beim füllen per Schleife ist das wahrscheinlich 0-basiert; dann entsprechend anpassen.
     
    GMG-CC, 23. März 2015
    #6
  7. Hallo,

    Du kannst die Spalten im Array auch direkt ansprechen.
    Schau es dir mal an:

    Option Explicit

    Sub machs()
    Dim arr(1 To 10, 1 To 5) '10 Zeilen 5 Spalten
    Dim I As Integer
    Dim L As Long
    For I = 1 To 5 'das Array wird über eine Schleife gefüllt.
    For L = 1 To 10
    Randomize Timer
    arr(L, I) = Rnd
    Next
    Next
    Range("A1:E10") = arr 'Array Ausgeben
    With WorksheetFunction
    Range("A12") = .Max(.Index(arr, 0, 1)) 'Max-Werte der Spalten ausgeben
    Range("B12") = .Max(.Index(arr, 0, 2))
    Range("C12") = .Max(.Index(arr, 0, 3))
    Range("D12") = .Max(.Index(arr, 0, 4))
    Range("E12") = .Max(.Index(arr, 0, 5))
    End With
    End Sub


    ransi
     
  8. Beverly
    Beverly Erfahrener User

    Maximalwert aus einer Array-Spalte auslesen

    Hi,

    ich habe mir angewöhnt, generell nur Application zu verwenden, da diese Schreibweise teilweise Vorteile mit sich bringt - so löst z.B. WorksheetFunction.Match einen Fehler aus, wenn der Suchbegriff nicht gefunden wird, was man (meines Wissens) nicht abfangen kann außer mit On Error Resume Next. Benutzt man dagegen diese Zeile mit nur Application

    Code:
    dann kann man den Fehler auch ohne On Error abfangen. Würde man allerdings hier Application.Worksheetfunction.Match versuchen, löst das immer noch einen Fehler aus.


    Maximalwert aus einer Array-Spalte auslesen grusz.gif
     
    Beverly, 23. März 2015
    #8
  9. Beverly
    Beverly Erfahrener User
    Hi ransi,

    danach habe ich schon lange gesucht - mir war zwar bekannt, wie man mittels Index und Match ein bestimmtes Element in einem mehrspaltigen Array ansprechen kann, aber eben nicht, wie man sich auf eine bestimmte Spalte insgesamt beziehen kann.


    Maximalwert aus einer Array-Spalte auslesen grusz.gif
     
    Beverly, 23. März 2015
    #9
  10. Hallo an alle Helfer,

    Nun hab ich genau das, was ich gesucht habe.

    Vielen Dank

    Gruß Faultier
     
    Faultier_1982, 23. März 2015
    #10
  11. Hallo,

    mit dem Maximalwert hat das wunderbar funktioniert, warum geht das mit der Summe nicht?
    Code:
    Gruß Faultier
     
    Faultier_1982, 24. März 2015
    #11
  12. Hallo Faultier,

    wie zeigt sich das "Nichtfunktionieren"?

    Nebenbei: Worksheetfunction. bzw. Application.Index mag komfortabel sein, ist bei großen Datenmengen (Ausgangsarrays) allerdings wesentlich langsamer als die gesuchte Spalte / Zeile / Bereich "von Hand" per Schleífe in ein anderes Array zu schaufeln. Bereits bei einer zweispaltigen Matrix dauert es in einem einfachen Test doppelt so lange. Je mehr Spalten, umso größer wird die Differenz (ein Vielfaches!).
    Das Umschaufeln von Hand bleibt davon unbeeindruckt (und ist in einer kleinen Function schnell und übersichtlich ausgelagert).

    Grüße
    EarlFred
     
    EarlFred, 24. März 2015
    #12
  13. Beverly
    Beverly Erfahrener User

    Maximalwert aus einer Array-Spalte auslesen

    Hi,

    Da kann man auch gleich zu Beginn so vorgehen wie in meinem Beitrag von 23.03.2015 18:06 vorgeschlagen.


    Maximalwert aus einer Array-Spalte auslesen grusz.gif
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Beverly, 24. März 2015
    #13
  14. Hallo Karin,

    aber selbstverständlich kann man. Und mein Beitrag behauptet darüber hinaus: Man sollte es sogar. Wir reden hier ja von 90.001 Datensätzen mit 28 Spalten. Das mag bei einer einzelnen Berechnung noch nicht ins Gewicht fallen, aber bei bereits 10 Berechnungen sollte man es deutlich merken.

    Aber noch einen ganz anderen Vorteil besitzt die Methode "von Hand umschaufeln": Man ist nicht an Limitationen der Arbeitsblattfunktion gebunden. Das Datenfeld im Beispiel bekäme mein Excel (2003) garnicht mit Index bearbeitet, da ist bei 65k Zeilen (wie im Arbeitsblatt eben auch) Ende.

    Kurzer Code muss nicht immer besser sein (wobei jeder "besser" nach seinen Kriterien bestimmen mag).

    Grüße
    EarlFred
     
    EarlFred, 24. März 2015
    #14
  15. Sind alle Worksheetfunction. bzw. Application. Functionen langsamer als Schleifen oder nur die Index. Ich habe nämlich noch einige dieser Funktionen in meinem Code, weil ich dachte, eine Schleife dauert viel länger.
    -Application.WorksheetFunction.Max
    -Application.WorksheetFunction.Min
    -Application.WorksheetFunction.CountIf
    -Application.WorksheetFunction.Average
    -Application.WorksheetFunction.Sum


    Genau, deshalb habe ich das jetzt auch so gemacht.*wink.gif* Ich hatte die erforderliche Schleife sogar bereits in meinem Code, musste das nur mal erkennen und eine Zeile zufügen.

    Gruß Faultier
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Faultier_1982, 24. März 2015
    #15
Thema:

Maximalwert aus einer Array-Spalte auslesen

Die Seite wird geladen...
  1. Maximalwert aus einer Array-Spalte auslesen - Similar Threads - Maximalwert Array Spalte

  2. Datensätze mit mehreren % Inhalten - Maximalwert ermitteln

    in Microsoft Access Hilfe
    Datensätze mit mehreren % Inhalten - Maximalwert ermitteln: Hallo, aus folgenden einfacher Access-Tabelle: ID|Name|Linie|Prozent 5000|Ware1|Minaral|16% 5000|Ware1|Pharma|64% 5000|Ware1|Logistik|20% 5002|Ware2|Minaral|40% 5002|Ware2|Pharma|20%...
  3. Mit Abfragen Werte bis maximalen Wert erstellen

    in Microsoft Access Hilfe
    Mit Abfragen Werte bis maximalen Wert erstellen: Hallo, kann ich in Access mit einer (oder mehreren) Auswahlabfragen aus der Inputtabelle die Ergebnistabelle mit Werten bis zum Maximalwert generieren? Inputtabelle: IDNr | Maximalwert 1000 | 1...
  4. Mit Abfragen Werte bis maximalen Wert erstellen

    in Microsoft Excel Hilfe
    Mit Abfragen Werte bis maximalen Wert erstellen: Hallo, kann ich in Access mit einer (oder mehreren) Auswahlabfragen aus der Inputtabelle die Ergebnistabelle mit Werten bis zum Maximalwert generieren? Inputtabelle: IDNr | Maximalwert 1000 | 1...
  5. Max- Min- Mittelwert pro Tag

    in Microsoft Excel Hilfe
    Max- Min- Mittelwert pro Tag: Hallo, Ich habe eine ca. 145000 Zeilen lange Tabelle mit Temperaturwerten und dem jeweiligen Messtag. (Eine Temperaturmessung alle 15 Minuten über 8,5 Jahre) Nun möchte ich diese Daten auf den...
  6. Maximalwert, wenn Datum grösser oder kleiner als

    in Microsoft Excel Hilfe
    Maximalwert, wenn Datum grösser oder kleiner als: Hallo Zusammen Ich habe eine Tabelle mit einer Rubrik (Fall A-C), Datum und Werten. Ich möchte nun den Maximalwert ermittlen, wenn das Datum grösser ist als E2 und kleiner als F2 und der Fall in...
  7. Suche Maximalwert und gebe mir Überschrift zurück

    in Microsoft Excel Hilfe
    Suche Maximalwert und gebe mir Überschrift zurück: Guten Tag Ich suche in einer Spalte den Maximalwert und will mir die Überschrift ermitteln =INDEX($R$8:$KG$8;VERGLEICH(MAX(R11:KG11);R11:KG11;0)) Mein Problem die Überschriften stehen in...
  8. Datumssuche mit mehreren Kriterien

    in Microsoft Excel Hilfe
    Datumssuche mit mehreren Kriterien: Sehr geehrte Forumsmitglieder, ich habe mich schon ein wenig daran Versucht eine Lösung für mein Problem zu finden, auch mit Google etc., komme aber einfach nicht darauf. Ich habe eine Liste...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden