Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Höchste Version in Zeile farbig kennzeichnen
#1
Hallo zusammen,

ich habe zu folgender Beispiel-Liste ein Problem:

Modellreihen
MU-L
MU-L 180 02 l 00016871-14
MU-L 180 03 l 00016871-14
MU-L 200 02 l 00016864-14
MU-L 220 02 l 00016850-16
MU-L 250 02 l 00016843-14
MU-L 280 02 l 00016821-13
MU-Pro
MU-Pro 250 01 l 00040441-07
MU-Pro 280 01 l 00040060-06
MU-Pro 300 01 l 00040100-06
MU-Pro 300 02 l 00040100-06
MU-Pro 320 01 l 00040134-06

Dies ist nur ein Beispiel. die Liste ist bedeutend länger.

Die Gliederung im Text bedeutet:

MU-L  =  Modellreihe
180    =  Arbeitsbreite
01      =  Revision

Es kann also das gleiche Modell mit gleicher Arbeitsbreite in mehreren Revisionen geben.
Ich möchte, dass die höchste Revision markiert wird. Zum Beispiel durch eine andere Farbe in der Zelle.

Ich habe aber überhaupt keinen Ansatz, wie ich das machen könnte.

Daher würde ich mich hier über jede Hilfe sehr freuen!

Danke im Voraus und Gruß aus Westfalen!

Thomas

Ich habe gleiche Frage hier gestellt: https://www.herber.de/forum/messages/1935665.html
Antworten Top
#2
Hallo,

ich würde ein Dictionary nutzen:

key: Modellreihe + Länge
item: Revision

Das würde sicher funtionieren, ist aber an Komplexität kaum zu überbieten.

Mal schauen, was die Anderen vorschlagen.


mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Dressler
Antworten Top
#3
Hi,

ich würde Modellreihe/Breite und Revision in zwei getrennte Spalten schreiben.
Modellreihe: =TEXTVERKETTEN(" ";WAHR;ÜBERNEHMEN(TEXTTEILEN(A1;" ");;2))
Revision: =WENNFEHLER(--SPALTENWAHL(TEXTTEILEN(A1;" ");3);"")
Die Revision wird damit direkt als Zahl abgetrennt.

Jetzt kannst du deine bed.Form mit folgender Formel erstellen:
=ZelleMitRevision=MAXWENNS(SpalteMitReision;SpalteMitModellreihe;ZelleMitModellreihe)
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • Dressler
Antworten Top
#4
Hallo Helmut,

vielen Dank für die gute und einfache Lösung.
Ich habe das in einer Reihe allerdings nur dann hinbekommen, wenn ich die Regel auf jede einzelne Zelle kopiere.
Das hat mit Variablen über die Spalte nicht funktioniert.
Antworten Top
#5
Hi,

lade mal eine Beispieldatei mit deinem Versuch hoch. Vermutlich hast du da irgendwo irgendwas ungeschickt verformelt.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#6
Hallo Helmut,

erst einmal finde ich es klasse, dass DU mir so viel hilfst!
Das musste ich erstmal loswerden!

Anbei die Liste mit den Regeln.
.xlsx   Test1.xlsx (Größe: 14,06 KB / Downloads: 7)
Antworten Top
#7
Hi,

wie ich es mir gedacht hatte: Falsch gesetzte Dollarzeichen. Die Formel muss lauten

=$C4=MAXWENNS($C:$C;$B:$B;$B4)

Beachte das fehlende $-Zeichen jeweils vor der Zeilennummer.

Und wenn leere Zellen nicht gefärbt werden sollen, dann machst du eine weitere Prüfung, z.B. dass die Revision >0 sein muss (leere Wellen werden als 0 gewertet).

=($C4>0)*($C4=MAXWENNS($C:$C;$B:$B;$B4))
oder auch (da jede Zahl <>0 als WAHR angesehen wird)
=$C4*($C4=MAXWENNS($C:$C;$B:$B;$B4))
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • Dressler
Antworten Top
#8
Hallo

aus einer Sache bin ich in beiden Foren bisher nicht schlau geworden. Bitte erkläre es uns noch mal.

Es gibt offenbar einen Höchstwert in MU-L = MU-L 220 03 l 00016850-16  Das ist Eindeutig!
Was ist bitte mit anderen Modellreihen, z.B. MU-Pro = MU-Pro 250 01 l 00040441-07  Soll die nicht markiert werden? 
Und geht es dabei immer um die höchste Revision, unabhängig von der Arbeitsbreite??

mfg Gast 123
Antworten Top
#9
Hi,

also meine Formeln ignorieren alles ab dem 3. Leerzeichen (also ab " | 00...") und werten die komplette Zahl direkt davor aus. Natürlich wird die Breite und die Modellreihe berücksichtigt.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#10
Hier ein Vorschlag mit VBA:

Code:
Sub T_1()
Dim DD: Set DD = CreateObject("Scripting.Dictionary")
Dim Ar, Tx As String, Ta As String

For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
    If Len(Cells(i, 1)) > 8 Then
        Tx = Replace(Cells(i, 1), Chr(108), "|")
        Ar = Split(Tx, "|")
        Ta = Replace(Ar(0), " ", Chr(160), , 1)
            DD(Split(Ta)(0)) = Split(Ta)(1)
        'Debug.Print i, Trim(Ar(0)), Split(Ta)(0), Split(Ta)(1)
        
    End If
Next i

i = 0
For Each k In DD.keys
    i = i + 1
    Cells(i, 4) = k
    Cells(i, 5) = DD(k)
Next k

End Sub

Die grün markierten Zeilen konnte ich nicht nachvollziehen. Mein Ergebnis:

MU-L 180 3
MU-L 200 2
MU-L 220 3
MU-L 250 2
MU-L 280 2
MU-Pro 250 1
MU-Pro 280 1
MU-Pro 300 1
MU-Pro 320 1

mfg

PS: Ein "l" (kleines L) als Trennzeichen zu nehmen, hat etwas ...


Angehängte Dateien
.xlsm   Dressler Mulch.xlsm (Größe: 17,34 KB / Downloads: 2)
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Dressler
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste