PDA

Vollständige Version anzeigen : Zeichen zählen und ersetzen


ben123
05.09.2012, 09:15
Hallo zusammen,

ich habe eine Tabelle (siehe Anhang) in der manche Namen bestimmte Zeichen enthalten (z.B. Anna* oder Hans##).
In einer rechten Spalte will ich die Zeichen ändern, aber abhängig von der Anzahl der Zeichen in der linken Spalte!

D.h. Anna* soll Anna? werden
Hans## soll Hans*2 werden (und aus Hans# soll Hans*1 werden).

Ich habe mit WENN, SUCHEN und WECHSELN Befehl rumgespielt aber ich schaffe es nicht, die Zeichen anzupassen. Für eine Raute # darf nur *1 stehen. Für 2 Rauten # soll *2 stehen usw.. das klappt nicht.

Kann mir jemand helfen?

Excel Beispiel im Anhang (die Rechte Spalte ist das Ergebnis, manuell eingegeben. Das hätte ich aber gerne automatisch).

mücke
05.09.2012, 10:14
Moin Ben,

schau mal hier:
<b>Tabelle1</b><br /><br /><table border="1" cellspacing="0" cellpadding="0" style="font-family:Arial,Arial; font-size:10pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "> <colgroup><col style="font-weight:bold; width:30px; " /><col style="width:113px;" /><col style="width:121px;" /></colgroup><tr style="background-color:#cacaca; text-align:center; font-weight:bold; font-size:8pt; "><td >&nbsp;</td><td >A</td><td >B</td></tr><tr style="height:19px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >1</td><td style="font-weight:bold; ">Name</td><td style="font-weight:bold; ">Name 2</td></tr><tr style="height:27px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >2</td><td >Hans#</td><td >Hans*1</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >3</td><td >Hans##</td><td >Hans*2</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >4</td><td >Hans###</td><td >Hans*3</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >5</td><td >Hans(2A)Meier</td><td >Hans NEAR2 Meier</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >6</td><td >Hans(3A)Meier</td><td >Hans NEAR3 Meier</td></tr></table><br /><table style="font-family:Arial; font-size:10pt; border-style: groove ;border-color:#00ff00;background-color:#fffcf9; color:#000000; "><tr><td ><b>Formeln der Tabelle</b></td></tr><tr><td ><table border = "1" cellspacing="0" cellpadding="2" style="font-family:Arial; font-size:9pt;"><tr style="background-color:#cacaca; font-size:10pt;"><td >Zelle</td><td >Formel</td></tr><tr><td >B2</td><td >=WENNFEHLER(LINKS<span style=' color:008000; '>(A2;FINDEN<span style=' color:#0000ff; '>("#";A2)</span>-1)</span>&"*"&L&Auml;NGE<span style=' color:008000; '>(A2)</span>-L&Auml;NGE<span style=' color:008000; '>(WECHSELN<span style=' color:#0000ff; '>(A2;"#";"")</span>)</span>;LINKS<span style=' color:008000; '>(A2;FINDEN<span style=' color:#0000ff; '>("(";A2)</span>-1)</span>&" NEAR"&TEIL<span style=' color:008000; '>(A2;FINDEN<span style=' color:#0000ff; '>("(";A2)</span>+1;1)</span>&" "&TEIL<span style=' color:008000; '>(A2;FINDEN<span style=' color:#0000ff; '>(")";A2)</span>+1;99)</span>)</td></tr></table></td></tr></table> <br /><br /><span style="font-family:Arial; font-size:9pt; font-weight:bold;background-color:#ffffff; color:#000000; ">Excel Tabellen im Web darstellen &gt;&gt; </span><a style ="font-family:Arial; font-size:9pt; color:#fcf507; background-color:#800040; font-weight:bold;" href="http://www.excel-jeanie-html.de" target="_blank"> Excel Jeanie HTML 4 </a>

CitizenX
05.09.2012, 10:27
Hi,

hier noch eine UDF Variante..

mücke
05.09.2012, 10:47
Moin Ben,

da hab ich doch glatt die Anna* vergessen :D
Anbei die angepasste Formel.
<b>Tabelle1</b><br /><br /><table border="1" cellspacing="0" cellpadding="0" style="font-family:Arial,Arial; font-size:10pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "> <colgroup><col style="font-weight:bold; width:30px; " /><col style="width:113px;" /><col style="width:121px;" /></colgroup><tr style="background-color:#cacaca; text-align:center; font-weight:bold; font-size:8pt; "><td >&nbsp;</td><td >A</td><td >B</td></tr><tr style="height:19px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >1</td><td style="font-weight:bold; ">Name</td><td style="font-weight:bold; ">Name 2</td></tr><tr style="height:27px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >2</td><td >Hans#</td><td >Hans*1</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >3</td><td >Hans##</td><td >Hans*2</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >4</td><td >Hans###</td><td >Hans*3</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >5</td><td >Hans(2A)Meier</td><td >Hans NEAR2 Meier</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >6</td><td >Hans(3A)Meier</td><td >Hans NEAR3 Meier</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >7</td><td >Anna*</td><td >Anna?</td></tr></table><br /><table style="font-family:Arial; font-size:10pt; border-style: groove ;border-color:#00ff00;background-color:#fffcf9; color:#000000; "><tr><td ><b>Formeln der Tabelle</b></td></tr><tr><td ><table border = "1" cellspacing="0" cellpadding="2" style="font-family:Arial; font-size:9pt;"><tr style="background-color:#cacaca; font-size:10pt;"><td >Zelle</td><td >Formel</td></tr><tr><td >B2</td><td >=WENNFEHLER(WENNFEHLER<span style=' color:008000; '>(LINKS<span style=' color:#0000ff; '>(A2;FINDEN<span style=' color:#ff0000; '>("#";A2)</span>-1)</span>&"*"&L&Auml;NGE<span style=' color:#0000ff; '>(A2)</span>-L&Auml;NGE<span style=' color:#0000ff; '>(WECHSELN<span style=' color:#ff0000; '>(A2;"#";"")</span>)</span>;LINKS<span style=' color:#0000ff; '>(A2;FINDEN<span style=' color:#ff0000; '>("(";A2)</span>-1)</span>&" NEAR"&TEIL<span style=' color:#0000ff; '>(A2;FINDEN<span style=' color:#ff0000; '>("(";A2)</span>+1;1)</span>&" "&TEIL<span style=' color:#0000ff; '>(A2;FINDEN<span style=' color:#ff0000; '>(")";A2)</span>+1;99)</span>)</span>;WECHSELN<span style=' color:008000; '>(A2;"*";"?")</span>)</td></tr></table></td></tr></table> <br /><br /><span style="font-family:Arial; font-size:9pt; font-weight:bold;background-color:#ffffff; color:#000000; ">Excel Tabellen im Web darstellen &gt;&gt; </span><a style ="font-family:Arial; font-size:9pt; color:#fcf507; background-color:#800040; font-weight:bold;" href="http://www.excel-jeanie-html.de" target="_blank"> Excel Jeanie HTML 4 </a>

chris-kaiser
05.09.2012, 11:26
Hi

<P><blockquote><table border=3 cellpadding=1><tr><td>&nbsp;</td><td align=center bgcolor=#C0C0C0>A</td><td align=center bgcolor=#C0C0C0>B</td></tr><tr><td align=center bgcolor=#C0C0C0>1</td><td>Name</td><td>Name&nbsp;2</td></tr><tr><td align=center bgcolor=#C0C0C0>2</td><td>Hans#</td><td>Hans*1</td></tr><tr><td align=center bgcolor=#C0C0C0>3</td><td>Hans##</td><td>Hans*2</td></tr><tr><td align=center bgcolor=#C0C0C0>4</td><td>Hans###</td><td>Hans*3</td></tr><tr><td align=center bgcolor=#C0C0C0>5</td><td>Hans(10A)Meier</td><td>Hans&nbsp;NEAR10&nbsp;Meier</td></tr><tr><td align=center bgcolor=#C0C0C0>6</td><td>Hans(3A)Meier</td><td>Hans&nbsp;NEAR3&nbsp;Meier</td></tr><tr><td align=center bgcolor=#C0C0C0>7</td><td>AnnaF*</td><td>AnnaF?</td></tr><tr><td align=center bgcolor=#C0C0C0>8</td><td>J&uuml;rgi(0815A)D&uuml;rgi</td><td>J&uuml;rgi&nbsp;NEAR0815&nbsp;D&uuml;rgi</td></tr></td></tr></table></blockquote></P><br><br>

Formel in B2

{=WENN(ANZAHL(FINDEN("#";A2));WECHSELN(A2;"#";)&"*"&LÄNGE(A2)-LÄNGE(WECHSELN(A2;"#";));WENN(ANZAHL(FINDEN("(";A2));LINKS(A2;FINDEN("(";A2)-1)&" NEAR"&LINKS(TEIL(A2;FINDEN("(";A2)+1;99);ANZAHL(((LINKS(TEIL(A2;FINDEN("(";A2)+1;99);SPALTE($1:$1))*1)>=0)*1))&" "&TEIL(A2;FINDEN(")";A2)+1;99);WENN(ANZAHL(FINDEN("*";A2));WECHSELN(A2;"*";"?"))))}

wobei die {} NICHT eingegeben werden sondern Formel mit Strg+Umschalt + Enter abschließen!

zra8886
05.09.2012, 11:35
Hallo Dirk, hallo Chris,

Belastungstest:

:D XaverX und Xaver X :grins:
Grüße
Roland

ben123
12.09.2012, 07:11
SUPER! GENIAL! Danke für eure Hilfe!!


Eine Frage noch:

Hans###Meier

Da kommt bei mir mit der jetzigen Formel "HansMeier*3" raus (sollte aber Hans*3Meier sein)


oder


Ha##ns(2A)Meier (sollte "Ha*2ns NEAR2 Meier" werden)

Habt ihr eine Lösung?

chris-kaiser
12.09.2012, 07:41
Hi

Über eine Formel wird das wohl zu viel aber über eine UDF (programmierung) sehr wohl möglich. NUR sollten dann auch alle möglichen Kombinationen bekannt sein!

Wenn Du eine Bsp. Datei mit allen möglichen Kombinationen machst und dazu das gew. Ergbnis versuche ich mich daran.

Ansonsten würde der Thread wahrscheinlich so weitergehen... frei noch Otto W. "einen hab ich noch" ;)

ben123
12.09.2012, 09:14
Danke für deine Antwort!

Hm das Problem ist, dass es immer andere Worte sind (Worte sind nicht planbar) und die Stellung der Zeichen zwischen den Buchstaben ist deshalb auch nicht wirklich vorhersehbar.
Da gibt es also wirklich keine Lösung?
Kann Excel nicht erkennen, wo wie viele Sonderzeichen stehen und diese dann an der gleichen Stelle durch andere Zeichen ersetzen (evtl über ein Makro lösbar?)?

chris-kaiser
12.09.2012, 09:34
Hi

Worte sind doch egal...., es geht darum wo deine Zeichen überall sein können die ersetzt werden sollten, was alles auftreten kann.
Wie sollte man ein Programm erstellen wenn es nicht klar ist was alles vorkommen kann.

Sollte Petra*## jetzt Petra?, oder vielleicht Petra?*1 werden, oder vielleicht doch nur Petra*1, usw..

Kann auch das sein? ##Name## was ist dann??

Es sollte einen klaren **Algorithmus geben.

**Unter einem Algorithmus versteht man allgemein eine genaue
definierte Handlungsvorschrift zur Lösung eines Problems oder einer bestimmten Art von Problemen. Darunter fallen auch viele Vorschriften,
Regeln und Anleitungen für Vorgänge aus dem täglichen Leben, wenn sie genau genug ausformuliert sind. Algorithmen könnten zum Beispiel Rezepte, Bedienungsanleitungen, ....................... usw....