Excel, bedingte Formatierung, Text. Der Textinhalt bestimmt den Text-Wert eines anderen Felds

...komplette Frage anzeigen

4 Antworten

Wenn das immer das dritte aus drei Wörtern ist (also das nach dem 2. Leerzeichen):

B2: =Teil(A2;finden("|";Wechseln(A2;" ";"|";2);1);99)
runterkopieren.

Wechseln(A2;" ";"|";2) ersetzt das zweite Leerzeichen im Suchstring durch hier | (als AltGr+<, es kann aber auch jedes andere seltene Zeichen verwendet werden, zB °, ▓, µ. )

Wenn man das Wort vorne UND hinten markieren muss, weils zwischendrin steht, eignen sich ►, ◄, allerdings ist die Formel dann um einiges komplizierter )

Finden liefert die Positionsnummer (identisch mit der des 2. Leerzeichens) und gibt sie an Teil() weiter, das dann den Rest des Strings ausgibt.

ich hoffe, dass so grundlegende Funktionen auch auf dem Mac identisch sind!

Iamiam 16.02.2015, 11:22

Du musst zu Finden() noch 1 dazuzählen, sonst kommt ein führendes Leerzeichen mit, also:
B2: =Teil(A2;finden("|";Wechseln(A2;" ";"|";2);1)+1;99)

0
Iamiam 16.02.2015, 11:31
@Iamiam

Noch was:
das ist keine bedingte Formatierung, sondern eine Textauflösung (Teiltext)

Bedingte Formatierung wäre, wenn Du alle Felder, die 2 Leerzeichen enthalten farblich kennzeichnen wolltest oder alle, die als drittes "Lizenz" enthalten, in Arial Black 14 dargestellt haben wolltest etc.

0
schmiddi1967 16.02.2015, 11:33
@Iamiam

Bei mir macht er bei deiner Formel bei Zeile 7 und 8 aber nicht CDP und Service sondern in beiden Auto ?

1
Iamiam 16.02.2015, 11:52
@schmiddi1967

richtig, ich hab nicht genau genug gelesen und dachte, es ginge um das dritte Wort!

0

... oder auch in B1 diese Formel schreiben und einfach runter ziehen:

=WENN(NICHT(ISTFEHLER(FINDEN("CDP";A1)));"CDP";WENN(NICHT(ISTFEHLER(FINDEN("Service";A1)));"Service";WENN(NICHT(ISTFEHLER(FINDEN("Lizenz";A1)));"Lizenz";)))  

dann findet XL auch die Worte, wenn sie am Anfang, mittendrin oder am Ende stehen.
(wie bei schmiddi)

Gruß aus Berlin

Iamiam 16.02.2015, 11:48

ich dachte zunächst, das dritte Wort sollte der Clou der Sache sein, hab aber nicht genau genug gelesen.
Zum Verketten s. Kommentar bei schmiddi.

0
Shero32 16.02.2015, 16:41
@Iamiam

die Position des Wortes ist unwichtig, es kann irgendwo auftauchen. Ich habe die Formel als kurz version ausprobiert und bekomme aber nur ein "false" als Ergebnis und nicht "CDP", liegt vielleicht auch an der Übersetzung.... =IF(NOT(ISERROR(FIND("CDP";A1)));"CDP")

0
Britzcontrol 16.02.2015, 17:21
@Shero32

Es fehlt der Dann (Then)-Teil, also vor der letzten schließenden Klammer mindestens noch ein Semikolon
oder ..."CDP";"nicht enthalten")

Gruß aus Berlin

0

Du kannst auch in B1 diese Formel schreiben und einfach runter ziehen:

=WENN(ISTZAHL(FINDEN("CDP";A2));"CDP";WENN(ISTZAHL(FINDEN("Service";A2));"Service";WENN(ISTZAHL(FINDEN("Lizenz";A2));"Lizenz";"")))

schmiddi1967 16.02.2015, 11:36

Ich meine natürlich A1 und nicht A2 in der Formel

=WENN(ISTZAHL(FINDEN("CDP";A1));"CDP";WENN(ISTZAHL(FINDEN("Service";A1));"Service";WENN(ISTZAHL(FINDEN("Lizenz";A1));"Lizenz";"")))

0
Iamiam 16.02.2015, 11:45

für begrenzte Begriff-Anzahl möglich, aber das an dritter Stelle geht dabei unter (wenns überhaupt gebraucht wird, hab das nur aus den Beispielen geschlossen)
Aber Du hast recht: das letzte Beispiel hat Service an erster Stelle!

Zur Erleichterung würde ich die WENN-Teile mit & aneinanderhängen:

=WENN(ISTZAHL(FINDEN("CDP";A2));"CDP";"")
&WENN(ISTZAHL(FINDEN("Service";A2));"Service";"")
&WENN(ISTZAHL(FINDEN("Lizenz";A2));"Lizenz";"")

Da würden dann auch zwei Wörter ausgegeben, falls zutreffend.
Vor allem aber: unverschachtelte Formeln sind übersichtlicher!

4
Ortogonn 16.02.2015, 13:43
@Iamiam

Ja, nicht verschachteln ist übersichtlicher.

Wenn der erste Treffer genügt, schau dir mal meine Formel an :)

1
Shero32 16.02.2015, 16:36
@Iamiam

Super, dies hier hat gut funktioniert. Ich musste es nur noch ins English überstezten

=IF(ISNUMBER(FIND("CDP";A2));"CDP";"")&IF(ISNUMBER(FIND("Lizenz";A2));"Lizenz";"")&IF(ISNUMBER(FIND("Support";A2));"Support";"")&IF(ISNUMBER(FIND("Service";A2));"Service";"")

2
schmiddi1967 16.02.2015, 16:40
@Shero32

Das freut mich, danke für die Rückmeldung :-))

Gehen sollten alle die hier stehen, sind alle auf dein Vorhaben abgestimmt.

1

Um einen weiteren Weg nach Rom hinzuzufügen; meine Lösung:

=WENNFEHLER(VERWEIS(2;1/FINDEN({"CDP"."Service"."Lizenz"};A2);{"CDP"."Service"."Lizenz"});"")

Läßt sich auch einfach um weitere Begriffe erweitern. Dafür die Begriffe in den beiden geschweiften Klammern ergänzen. Bei den anderen WENN-Kombinationen hier wird's irgendwann sehr unübersichtlich ^^

schmiddi1967 16.02.2015, 14:29

Ja bald haben wir Rom wie wir es wollen :-))

0
Iamiam 17.02.2015, 00:38
@schmiddi1967

Diesen Typ Lösung (aufgelistete Suchargumente innerhalb EINER Formel) hab ich heut wieder mal stundenlang vergeblich gesucht und nicht an eine Frank-Kabellösung gedacht, eher an Matrixformeln!

So kann man auch nach langen Listen von Wörtern suchen, liegt mir seit langem am Herzen!
ein ganz fettes

DH!

2
Iamiam 17.02.2015, 00:47
@Iamiam

"...Dafür die Begriffe in den beiden geschweiften Klammern ergänzen...":
oder eben die Absolut-Adresse einer Auflistung einfügen, zB anstatt {"CDP"."Service"."Lizenz"} einfach N$12:N$15
zusätzlicher Vorteil:
Die Antworten können einer anderen Liste entstammen als die Suchargumente!
Brauchbar für lange Überführungslisten.

1
Ortogonn 17.02.2015, 12:45
@Iamiam

Die Argumente in geschweiften Klammern sind ja eigentlich auch nur das, was man beim nachträglichen Aufruf der existierenden Formel im Formelassistenten sieht - auch bei Angabe einer Bezugsliste statt Arguemten.

Ich habe es mit den Arguemten gemacht, da ich das u.U. nötige Erläutern der Bezugsliste umgehen wollte.

Zu den Suchbegriffen verschiedene Antworten könn(t)en aber auch mit {} realisiert werden.

1
Shero32 17.02.2015, 13:23

ich habe es probiert und ins english übersetzt, mein mac hat eine english excel.. =IFERROR(LOOKUP(2;1/FIND({"CDP“.“Service“};A1);{"CDP“.“Service“});““) doch er findet einen Fehler und ich verstehe nicht wie lösen?

0
Iamiam 17.02.2015, 14:08
@Shero32

kann es sein, dass das englische xl ein anderes Trennzeichen innerhalb der Matritzen verwendet?
Probiers einfach mal mit Komma oder Semicolon!
Bitte Rückmeldung und DH für den Kommentar (da hab ich ja nichts von), damit ich das angezeigt kriege!

1
Shero32 19.02.2015, 16:20
@Iamiam

Hi, leider funktioniert es nicht, egal welches Trennungszeichen ich eintrage. selbst =IFERROR(LOOKUP(2;1/FIND("CDP";A3);"CDP");““) führt zu einem Fehler. was ist DH?

1
Ortogonn 19.02.2015, 21:55
@Shero32

Die Trennzeichen in der geschweiften Klammer könnten evtl. mit Punkten funktionieren. Die englischen Funktionen benutzen jedoch Kommata statt Semikola.

=IFERROR(LOOKUP(2,1/FIND(({"CDP"."Service"."Lizenz"},A2),{"CDP"."Service"."Lizenz"}),"")

ggf noch mit den Trennzeichen in den {} experimentieren.

0
Ortogonn 19.02.2015, 22:00
@Ortogonn

argh ... da hat sich eine Klammer zuviel eingeschlichen ^^

=IFERROR(LOOKUP(2,1/FIND({"CDP"."Service"."Lizenz"},A2),{"CDP"."Service"."Lizenz"}),"")

PS: ein DH steht für Daumen Hoch

0

Was möchtest Du wissen?