Ergebnis für WENN-Funktion nutzen

aero

Lieutenant
Registriert
Juni 2008
Beiträge
554
Ich nutze Excel von Office 2016.

Ausgangssituation:
  • Ich habe eine große Anzahl an langen Zeichen-/Buchstabenketten und brauche aus diesen nur die letzten 3 Ziffern/Buchstaben. Einfach gesprochen: Aus der Kette sollen immer die letzten 3 Ziffern genutzt werden (also 000 bis 999), davor stehende Buchstaben/Ziffern sind irrelevant
  • die Zahlenkombinationen zwischen 000 bis 999 sind dann verschieden aufzuteilen: 000-099 = A; 100-199 = B; 200-299 = C etc.
  • Ziel ist also: Jede dieser langen Zeichen-/Buchstabenketten entsprechend der 3 letzten Ziffern allein A, B, C etc. zuzuordnen.
Wie mache ich das am besten? Ich habe 2 Wege, die ich bisher nicht richtig verbinden kann.

Ich isoliere die 3 letzten Ziffern aus der langen Zeichenkette in Zelle B1 rein mittels
=RECHTS(A1; 3)

Die Zuordnung der 3er-Reihen mache ich dann mit einer WENN-Funktion
=WENN(B1>=300;"D";WENN(B1>=200;"C";WENN(B1>=100;"B";WENN(B1>=0;"A"))))

Das Problem: Die 3er Werte in Zelle B1 werden nicht erkannt. Zwar steht in der Zelle z.B. 152, aber mir scheint, dass die WENN Funtkion nicht die 152 ausliest, sondern die Funktion =RECHTS(A1, 3) und mit dieser nicht weiterarbeitet, weil =RECHTS(A1, 3) eben nicht 3 Ziffern sind. Was übersehe ich? Oder gibt es einen besseren Weg? Wenn was unklar sein sollte, sagt bitte einfach Bescheid. =)

VIelen Dank für eure Hinweise
aero
 
Dein Problem ist vermutlich, dass du einen String mit einer Zahl vergleichst, du musst dein Dreierblock noch in eine Zahl umwandeln, dann sollte es passen
 
  • Gefällt mir
Reaktionen: Flomek
Scheint so, dass das Ergebnis deines
Code:
=RECHTS(A1; 3)
als Text interpretiert wird. Caste das Ergebnis als Zahl, dann sollte auch die WENN-Funktion klappen:
Code:
=WERT(RECHTS(A1;3))
 
  • Gefällt mir
Reaktionen: Flomek
da war jemand schneller ;-)

=WERT(RECHTS(A1;3)) , dann funktionierts (hab's gerade ausprobiert)
 
  • Gefällt mir
Reaktionen: Flomek
BTW, falls du das ganze eleganter schreiben willst, schau dir mal die Funktion SWITCH (im Deutschen anscheinend ERSTERWERT) an. Dann musst du nicht so viel if schachteln und kannst dir an sich sogar die Hilfszelle sparen
 
oh, toll. probiere ich gleich aus. geht es auch, dass ich diese zwischenzeile mit den 3 zahlen garnicht erst nutzen muss? also dass direkt aus der langen zeichenkette die wenn funktion gezogen wird?

EDIT
@Christmasman
Eben erst gelesen. Das sagt mir erstmal garnichts, aber ich schau es mir mal an. Hab vielen Dank!
 
@Christmasman
=Ersterwert() geht aber nur bei Excel 365 und Excel 2019. Daher hat es auch bei mir (2010) nicht funktioniert.

@aero
klar kannst Du auf das Extrahieren der drei letzten Zeichen verzichten, dann wird es aber wohl nicht gerade übersichtlicher.
Man kann das Ganze sicherlich auch total elegant mit sverweis umsetzen, aber für quick and dirty ist die erste Variante wohl ganz ok
 

Im Video wird die SWITCH-Funktion vorgestellt, aber darauf verwiesen, dass <, > etc damit nicht funktioniert und ich dann wohl keine Werte für x<200 etc. nutzen kann. Schade. Dann doch der davor genannte Weg.

@Maaspuck
Wie kann ich das denn direkt in eine Formel packen? Nur für mich zum Verständnis. Das ist mir gerade wirklich nicht klar und ich sitz hier seit einer guten Weile dran...
 
Würde dann so aussehen:
Code:
=WENN(WERT(RECHTS(A1;3))>=300;"D";WENN(WERT(RECHTS(A1;3))>=200;"C";WENN(WERT(RECHTS(A1;3))>=100;"B";WENN(WERT(RECHTS(A1;3))>=0;"A"))))
 
Hmm, da hat mich wohl meine Erinnerung getäuscht, aber dann immerhin schön dass Excel was in der Richtung bekommt. Ich dachte ich hätte auch früher so ne Art Case-Funktion benutzt aber das war dann wohl woanders ;)
 
Danke für die Formel! Letzte Frage, dann bin ich wunschlos glücklich: Wenn ich nun die gesamte Spalte mit dieser Formel formatiere, links aber keine Zahlenkombination steht, aus der die 3 Zahlen gezogen werden, erscheint in der zweiten (Ergebnis)spalte #WERT!. Wie kann ich es so machen, dass wenn links keine Zahl eingetragen ist, die rechte Spalte keinen #WERT! anzeigt, sondern einfach eine leere Zelle?
 
Die Funktion ISTFehler mit einbauen
 
Die Wahl() Funktion geht auch ganz gut....

=WENN(B8<300;WAHL(KÜRZEN((B8+100)/100;0);G8;G9;G10);"D")

mit B8 ="=WERT(RECHTS(A8;3))

und

G8 = "A"
G9 = "B"
G10 = "C"
 
Super, danke euch.

Leider ist mir eben noch ein Problem aufgefallen: Ich habe nun in Zelle A die lange Zahlenkette, in Zelle B die gewünschte Zuordnung für die 3 letzten Zahlen (z.b. D). Nun wollte ich in Zelle C noch den Bereich für D definieren. Beispiel:

Zelle A: 65060NFKW6F355 [<= Zahlenreihe]
Zelle B: D [<= Zuordnung für 355 = D gilt beispielsweise für alle Zahlen von 300-399]
Zelle C: 300-399 [<= Der Bereich, indem D (der Wert in Zelle B) gilt

Zelle C wollte ich mit folgender Formel erstellen:
=WENN(WERT(B2=D;"300-399"))

Das geht aber nicht. Ich erhalte ein pop-up-Fenster mit dem Hinweis "Sie haben zu viele Argumente für diese Funktion eingegeben."
 
Weil WERT nur 1 Argument hat... und in dem Fall auch Unsinn ist, in B2 steht ja keine Zahl
=WENN(B2="D";"300-399") sollte passen, wirst dann halt analog zur ersten Formel die WENN schachteln müssen um alle Bereiche abzudecken.

Vielleicht etwas mehr zum Verständnis:
erstmal ist in deiner Formel die Klammer falsch gesetzt
du versuchst aus (B2=D;"300-399") eine Zahl zu machen, das ergibt keinen Sinn.
=WENN(WERT(B2)="D";"300-399") kommt der Sache näher, dann stimmt zumindest die Syntax für das WENN, aber WERT(B2)="D" macht aus B2 eine Zahl und vergleicht sie mit "D" ... finde den Fehler ;)

@Maaspuck War meine Erinnerung doch nicht so falsch, dann wird das die Funktion sein, die ich im Sinn hatte ;)
 
Zuletzt bearbeitet:
Zurück
Oben