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

Forumthread: Größte Werte suchen bei Text?!

Größte Werte suchen bei Text?!
17.03.2006 20:57:38
Tomy
Hallo Zusammen,
ich muss mir meine Daten mal ein wenig bearbeiten und brauche da eine Funktion, die mir immer sagen kann, welches von den Werten, die unten stehen, der größte ist.
GJ 2002/2003
GJ 2003/2004
GJ 2004/2005
GJ 2005/2006
Es kommen immer diese Werte vor(also zumindest in dieser Schreibweise), aber man kann nicht genau sagen, ob auch alle immer da sind. Gibt es da ne Möglichkeit? Mit max, maxa, kgrößte klappt es schonmal nicht.
Würd mich freuen, wenn einer von euch ne Lösung hätte.
Ach so "Text in Spalten" ist schlecht, bräuchte die Werte so! Und es sind so ca 25.000, so dass ich die nicht eben mal alle trennen und wieder zusammenfügen möchte ;-)
Danke.
Gruss Tomy
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Größte Werte suchen bei Text?!
17.03.2006 21:16:36
chris
Hallo Tommy, das wird wohl nur mit einer Array formel gehen.
Versuchs mal hiermit.Die geschweiften klammern nicht mit eingeben.Formel bestätigen mit STRG+Shift+Enter
{=MAX((WERT(RECHTS(A1:A10;4))))}
Rückmeldung ob erfolgreich.
gruß Christian
AW: Größte Werte suchen bei Text?!
17.03.2006 21:26:28
Tomy
Hallo Christian,
ich bekomme da als lösung "2004" also nur das letzte jahr(hatte nicht den ganzen bereich gewählt,deshalb auch nicht 2006). ich bräuchte aber dann "GJ 2003/2004"
wofür ist denn die bestätigung mit strg+shift+enter? ;-)
sorry, kenn ich nicht.
kann ich das sonst auch in ein makro einpflegen?
trotzdem schonmal danke.
gruss tomy
Anzeige
AW: Größte Werte suchen bei Text?!
17.03.2006 21:42:15
Peter
Servus,
versuchs in etwa so.
Strg+Umsch+Return wird von Excel als Matrixformel gesehen. Geht in dem Fall nicht anders.
Tabelle1
 AB
1GJ 2002/2003GJ 2003/2008
2GJ 2003/2008 
3GJ 2004/2005 
4GJ 2005/2006 
5GJ 2006/2007 
Formeln der Tabelle
B1 : {=INDIREKT("A"&VERGLEICH("GJ*"&MAX(--RECHTS(A1:A5;4))&"*";A1:A5;0))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
MfG Peter
Anzeige
AW: Größte Werte suchen bei Text?!
17.03.2006 21:49:10
Tomy
hallo peter,
habe schon weiter mit meinen beschränkten kenntnissen gespielt. also wenn ich die letzte zahl untersuche, klappt das auch. dann baue ich mir die daten halt nachher wieder zusammen.
hatte ich noch nicht wirklich drüber nachgedacht.
kann ich diese matrixformel denn einfach so in den vba-code übernehmen? wenn ja, wäre das die lösung meines problems.
wie gesagt, baue mir die daten dann selber zusammen, da es sich immer um aufeinanderfolgende jahreszahlen handelt.
tomy
gruss
Anzeige
AW: Größte Werte suchen bei Text?!
17.03.2006 22:07:42
Tomy
hallo,
ja ich schon wieder. wie kann ich denn die formel da oben flexibel gestalten? also wenn ich die letzte zelle in spalte A nicht kenne?
wenn ich das mit :
x = Cells(Rows.Count, 1).End(xlUp).Row
Range("P9").Select
Selection.FormulaArray = "=MAX((VALUE(RIGHT(A12:A &x,4))))"
mache, will er das nicht wirklich. geht das auch anders? oder wie muss ich die zellbezüge ändern? wenn ich das habe, entlasse ich euch auch ins we ;-)
danke schonmal an alle.
gruss tomy
Anzeige
AW: Größte Werte suchen bei Text?!
17.03.2006 21:26:44
Ramses
Hallo
Meinst du so
 
 ABC
1GJ 2002/2003FALSCH 
2GJ 2003/2004FALSCH 
3GJ 2004/2005FALSCH 
4GJ 2005/2006WAHR 
5   
6   
7   
8GJ 2002/2003  
9GJ 2003/2004  
10GJ 2004/2005  
11GJ 2005/2006  
12   
Formeln der Tabelle
B1 : =check_max_year(A1;$A$1:$A$4)
B2 : =check_max_year(A2;$A$1:$A$4)
B3 : =check_max_year(A3;$A$1:$A$4)
B4 : =check_max_year(A4;$A$1:$A$4)
Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
A81. / Formel ist =check_max_year(A8;$A$8:$A$11)=WAHRAbc
A91. / Formel ist =check_max_year(A9;$A$8:$A$11)=WAHRAbc
A101. / Formel ist =check_max_year(A10;$A$8:$A$11)=WAHRAbc
A111. / Formel ist =check_max_year(A11;$A$8:$A$11)=WAHRAbc
 

Dazu brauchst du diese beiden Funktionen die in einem Modul deiner Tabelle stehen
Function Check_Max_Year(myTar As Range, chkRange As Range) As Boolean
    Dim tmp As Variant
    tmp = Val(Replace(Right(myTar.Value, Len(myTar.Value) - InStr(1, myTar.Value, " ")), "/", "", 1))
    If Check_Max_Range(Val(tmp), chkRange) Then
        Check_Max_Year = True
    Else
        Check_Max_Year = False
    End If
End Function

Function Check_Max_Range(myCheck As Double, chkRange As Range) As Boolean
    Dim myC As Range
    Dim tmp As Double
    For Each myC In chkRange
        If myCheck < Val(Replace(Right(myC.Value, Len(myC.Value) - InStr(1, myC.Value, " ")), "/", "", 1)) Then
            Check_Max_Range = False
            Exit Function
        End If
    Next
    Check_Max_Range = True
End Function


Gruss Rainer
Anzeige
AW: Größte Werte suchen bei Text?!
17.03.2006 21:33:55
Tomy
Hallo Rainer,
ja so in der art, nur dass ich leider den überblick verloren habe. ;-)
also ich muss wissen, welcher wert der größte ist und diesen kann in eine celle oder eine variable speichern, damit ich im nächsten schritt damit arbeiten kann.
ich möchte die letzten 5 GJs betrachten, wobei sich das halt schonmal ändern kann. dafür halt den größten, vorhandenen wert rausziehen.
frage zur replace funktion: macht die das wirklich also schreibt sie das ganze in mehrere zeilen oder macht die das nur in der programmierung?
danke schonmal.
gruss tomy
Anzeige
Hilfe:habe nun mit allen Varianten probiert;aber
18.03.2006 11:11:37
Tomy
.. nicht so wirklich erfolgreich. :-( die version von ramses ist klasse, aber ich weiß nicht, wie ich dne wert da rausholen kann. bzw. wie ich das makro ändern soll, damit den wert bekommen kann. ich brauche den wert ja in einer zelle oder in einer variablen. hier wird sie ja nur markiert durch die bedingte formatierung. was auch schon klasse ist, aber ich kanns ja nicht so gut gebrauchen ;-)
die beiden anderen sachen sind auch klasse, aber ich brauche das ja in einem makro und da funktioniert das ja nicht so ganz. könnte mir noch einer helfen, wie ich das in die makro-sprache umwandeln kann? das letzte mal?
danke.
wünsche euch ein schönes, sonnenverwöhntes we
gruss tomy
Anzeige
AW: Hilfe:habe nun mit allen Varianten probiert;ab
18.03.2006 11:18:56
Peter
Servus,
hier eine Option wie du das ganze aus VBA heraus lösen kannst, aber auch als Excel Function.


'#  Ort:    Modul
Option Explicit
Private Function GetMax_Num(ByVal Bereich As Range, Optional Text As BooleanAs Variant
    Dim rng As Range, rngGef As Range
    Dim dblMax As Double
    For Each rng In Bereich
        If --Right(rng.Text, 4) > dblMax Then
            dblMax = --Right(rng.Text, 4)
            If Not rngGef Is Nothing Then Set rngGef = Nothing
            Set rngGef = rng
        End If
        If --Mid(rng.Text, 4, 4) > dblMax Then
            dblMax = --Mid(rng.Text, 4, 4)
            If Not rngGef Is Nothing Then Set rngGef = Nothing
            Set rngGef = rng
        End If
    Next
    If Text Then GetMax_Num = rngGef.Text Else: GetMax_Num = dblMax
End Function
'Aufruf aus VBA herraus
Sub test()
MsgBox GetMax_Num(Sheets("Tabelle1").Range("A1:A5"), True)
End Sub
'oder aus Excel heraus


Tabelle1
 AB
1GJ 2002/2003GJ 2009/2007
2GJ 2003/20082009
3GJ 2004/2005
4GJ 2005/2006
5GJ 2009/2007
Formeln der Tabelle
B1 : =GetMax_Num(A1:A5;WAHR)
B2 : =GetMax_Num(A1:A5;)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
MfG Peter
Anzeige
AW: Hilfe:habe nun mit allen Varianten probiert;ab
18.03.2006 11:38:18
Tomy
oh nein, ich schon wieder. also ich habe die funktion in ein modul kopiert. ist ja egal welches oder? dann habe ich mir den button test, den ich ja schon hatte ;-), etwas abgewandelt wie oben eingerichtet.
Private Sub test_Click() x = Cells(Rows.Count, 1).End(xlUp).Row MsgBox GetMax_Num(Sheets("Tabelle1").Range("A12:A" & x), True) End Sub
dann kommt bei mir immer nur sub oder function nicht definiert. bin ich jetzt schon zu doof dafür?! wie gesagt, die funktion steht in einem modul (ich glaub Modul13) genau so, wie sie hier auch drin steht?!
ich glaub ich gebs auf und schmeiß den rechner weg ;-)
gruss tomy
Anzeige
mal ne andere idee,die aber nicht funktioniert ;-)
18.03.2006 12:08:59
Tomy
Wie wäre es denn mit sowas?
Bereich = Range("A12:A20000")
a = WorksheetFunction.Max(Value(Right(Bereich, 4)))
Range("P9") = a
dann nehme ich nur die letzten 4 zeichen aus dem text. leider sagt der mir dann aber, dass das ganze nicht funktioniert, weil es die funktion value nicht gibt. hat einer ne idee, wie ich das umschreiben kann?
hoffentlich kann ich die ganzen arbeit auch mal wiedergutmachen, die ich auch gemacht habe...
gruss tomy
Anzeige
AW: mal ne andere idee,die aber nicht funktioniert
18.03.2006 14:01:21
Ramses
Hallo
ungetestet, aber es müsste auf jeden Fall
a = WorksheetFunction.Max(Val(Right(Bereich, 4)))
lauten
Gruss Rainer
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Größte Werte in Excel finden: Text mit Jahreszahlen analysieren


Schritt-für-Schritt-Anleitung

Um die größte Zahl in Excel zu finden, die in einem Textformat vorliegt (z.B. "GJ 2003/2004"), kannst du folgende Schritte befolgen:

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in einer einzigen Spalte (z.B. Spalte A) vorliegen. Deine Daten könnten wie folgt aussehen:

    A1: GJ 2002/2003
    A2: GJ 2003/2004
    A3: GJ 2004/2005
    A4: GJ 2005/2006
  2. Matrixformel eingeben: Wähle eine leere Zelle (z.B. B1) und gib die folgende Formel ein:

    {=INDIREKT("A"&VERGLEICH(MAX(--RECHTS(A1:A10;4));--RECHTS(A1:A10;4);0))}

    Drücke STRG + SHIFT + ENTER, um die Formel als Matrixformel zu bestätigen. Dies ist wichtig, da Excel Matrixformeln anders behandelt.

  3. Ergebnis: Diese Formel wird dir die größte Zahl anzeigen, die in deinem Text vorkommt.


Häufige Fehler und Lösungen

  • Fehler: "Sub oder Function nicht definiert": Stelle sicher, dass die Funktion im richtigen Modul steht und korrekt eingegeben ist. Überprüfe, ob du die Funktion in einem Modul und nicht in einem Arbeitsblattmodul gespeichert hast.

  • Problem mit der Matrixformel: Wenn du das Ergebnis nicht erhältst, überprüfe, ob du die geschweifte Klammer {} manuell eingegeben hast. Diese sollten nur durch STRG + SHIFT + ENTER hinzugefügt werden.


Alternative Methoden

Falls du keine Matrixformeln verwenden möchtest, kannst du VBA nutzen:

  1. VBA-Code: Füge folgenden Code in ein Modul ein:

    Function GetMaxNum(ByVal Bereich As Range) As Variant
       Dim rng As Range
       Dim dblMax As Double
       For Each rng In Bereich
           If Val(Right(rng.Text, 4)) > dblMax Then
               dblMax = Val(Right(rng.Text, 4))
           End If
       Next
       GetMaxNum = dblMax
    End Function
  2. Aufruf der Funktion: Verwende die Funktion in einer Zelle:

    =GetMaxNum(A1:A10)

Praktische Beispiele

Hier ist ein Beispiel, wie du die größte Zahl in Excel finden kannst:

  1. Angenommene Daten:

    A1: GJ 2002/2003
    A2: GJ 2003/2004
    A3: GJ 2004/2005
    A4: GJ 2005/2006
  2. Verwende die Formel:

    {=INDIREKT("A"&VERGLEICH(MAX(--RECHTS(A1:A4;4));--RECHTS(A1:A4;4);0))}
  3. Das Ergebnis wird "GJ 2005/2006" sein, da dies das höchste Jahr ist.


Tipps für Profis

  • Nutze Datenüberprüfung und Bedingte Formatierungen, um deine Zellen visuell hervorzuheben, wenn sie eine bestimmte Bedingung erfüllen, wie z.B. die größte Zahl.

  • Verwende Dynamische Bereiche in deinen Formeln, um sicherzustellen, dass deine Analysen auch bei neuen Daten aktuell bleiben.


FAQ: Häufige Fragen

1. Wie kann ich die Formel anpassen, wenn ich nicht weiß, wie viele Zeilen ich habe? Du kannst die letzte Zeile dynamisch ermitteln, indem du x = Cells(Rows.Count, 1).End(xlUp).Row verwendest und die Formel entsprechend anpasst.

2. Was ist der Unterschied zwischen STRG + ENTER und STRG + SHIFT + ENTER? STRG + ENTER fügt eine normale Formel ein, während STRG + SHIFT + ENTER die Formel als Matrixformel behandelt, was für die Verwendung von Arrays erforderlich ist.

3. Kann ich die größte Zahl in Excel auch ohne VBA finden? Ja, du kannst die Funktion MAX und Matrixformeln verwenden, um die größte Zahl in Textformat zu finden, ohne VBA zu verwenden.

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