Anzeige
Archiv - Navigation
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
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
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
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige