Hallo,
ich muss in bestehenden Felder die Bezeichnung genau spiegelen. Wenn die Bezeichnung also vorher XX4711 ist, muss nachher 1174XX raus kommen. Es handelt sich um viele Tausend Zeilen, daher wäre eine Formel ne feine Sache. Jemand ne Idee?
Hallo,
ich muss in bestehenden Felder die Bezeichnung genau spiegelen. Wenn die Bezeichnung also vorher XX4711 ist, muss nachher 1174XX raus kommen. Es handelt sich um viele Tausend Zeilen, daher wäre eine Formel ne feine Sache. Jemand ne Idee?
Hi, Daniel so geht’s
Es soll eine 6-stellige Bezeichnung gespiegelt werden.
Eine mögliche Formel lautet (Erweiterbar - wichtig mit & verbinden - nicht mit +)
Die vorhandene Bezeichnung steht in B2
=TEIL(B2;6;1)&TEIL(B2;5;1)&TEIL(B2;4;1)&TEIL(B2;3;1)&TEIL(B2;2;1)&TEIL(B2;1;1)
Grüße in den Pott
franz
Hallo,
die Formel funktioniert bei reinen Zahlen bis zu 15 Stellen, Buchstaben-Zahlen-Mix bis 21 Stellen:
=TEIL(A2;21;1)&TEIL(A2;20;1)&TEIL(A2;19;1)&TEIL(A2;18;1)&TEIL(A2;17;1)&TEIL(A2;16;1)&TEIL(A2;15;1)&TEIL(A2;14;1)&TEIL(A2;13;1)&TEIL(A2;12;1)&TEIL(A2;11;1)&TEIL(A2;10;1)&TEIL(A2;9;1) &TEIL(A2;8;1)&TEIL(A2;7;1)&TEIL(A2;6;1)&TEIL(A2;5;1)&TEIL(A2;4;1)&TEIL(A2;3;1)&TEIL(A2;2;1)&TEIL(A2; 1;1)
siehe
http://www.herber.de/forum/archiv/1204to1208/1206520…
Gruß
Brandis
Hallo Daniel,
eine fertige Formel gibt’s dafür nicht. Aber Sie können sich selber eine Funktion zusammenbauen: Ich hab das schon mal für Sie gemacht, weil’s mich auch interessiert:
Function SPIEGELN(ZELLE1 As Range)
For i = 1 To Len(ZELLE1)
SPIEGELN = SPIEGELN & Mid(ZELLE1, Len(ZELLE1) - i + 1, 1)
Next
End Function
Diesen Code müssen Sie in den Visual Basic Editor (Alt F11) kopieren. (Menü Einfügen - Modul - Prozedur)
Steht der zu spiegelnde String z.B. in A3, und der gespiegelte Wert soll in B3 stehen, dann muss in B3 diese Formel stehen:
=SPIEGELN(A3)
Schönes WE
Jürgen Donath
Hallo Franz,
geile Sache und ganz einfach! Bin ich aber nicht drauf gekommen! Danke!
Daniel
Das geht mit einer Formel nur, wenn du eine Hilfsspalte dazunimmst und die Iteration aktivierst.
Angenommen dein Wert steht in Zelle A1, deine Hilfsspalte ist B, das Ergebnis soll in Spalte C.
In B1 schreibst du
=WENN(B1=100;1;B1+1)
In C1 kommt
=WENN(B1=1;"";WENN(B1-1>LÄNGE(A1);C1;TEIL(A1;B1-1;1)&C1))
Wie man bei genauerem Hinsehen bemerkt, würde bei diese Formeln ein Zirkelbezug entstehen. Deshalb muss die Iteration eingeschaltet werden (Optionen, Formeln). Sollte der Text sehr lange sein, muss die maximale Iterationszahl angepasst werden. Standart ist 100
Alternativ zu dieser Methode müsste man ein Makro verwenden.
Hallo,
Wenn der Inhalt in Zelle A1 steht, gibt in B1 folgende Fomel ein:
TEIL(A1;10;1)&TEIL(A1;9;1)&TEIL(A1;8;1)&TEIL(A1;7;1)&TEIL(A1;6;1)&TEIL(A1;5;1)&TEIL(A1;4;1)&TEIL(A1;3;1)&TEIL(A1;2;1)&TEIL(A1;1;1)
Die Formel ist ausgelegt auf 10 Zeichen.
Beste Güße
H. Schuster
Hallo,
sind die werte in der zu spiegelnden Zeelle immer gleich formatiert, aufgabeaut und gleich lang?
andersrum: gibt es bei den Inhalten irgendwelche Unregelmäßigkeiten?
Steph
Hallo Steph,
manchmal 2 Stellen, manchmal 13 (ist glaube Maximum da die Daten aus einem anderen Programm mit entsprechender Begrenzung kommen…)
Aber ich hab schon eine super Lösung aus diesem reichhaltigen Füllhorn oben ausgewählt.
Daniel
Danke an alle!
ich muss in bestehenden Felder die Bezeichnung genau
spiegelen. Wenn die Bezeichnung also vorher XX4711 ist, muss
nachher 1174XX raus kommen.
Hallo Daniel,
ich würde es über einen kleinen Umweg machen.
Dazu benötigst du ein par Hilfsspalten die du am besten neben deiner Tabelle plazierst.
Der Weg ist der, den Inhalt deiner Zelle mit xx4711 in einzelne Zellen aufzuteilen, um sie nachher umgekert wieder zusammen zufügen.
Du brauchst also soviele Hilfsspalten, wie die größte Anzahl der Zeichen die du spiegeln willst.
Bei deiner Zeichenfolge also 6 Spalten.
In der ersten Hilfsspalte ist dann die Formel:
=TEIL($B3;6;1)
Zelle B3 ist hier die Zelle mit der Zeichenfolge xx4711
Die zweite Hilfsspalte bekommt die Formel:
=TEIL($B3;5;1)
die dritte: =TEIL($B3;4;1)
die vierte: =TEIL($B3;3;1)
die fünfte: =TEIL($B3;2;1)
die sechste: =TEIL($B3;1;1)
Für diese sechs Hilfsspalten nehme ich mal an, dass sie in den Spalten AA, AB, AC, AD, AE und AF stehen.
In der Zelle, welche den gespiegelten Wert anzeigen soll, ist dann die Formel:
=VERKETTEN(AA3;AB3;AC3;AD3;AE3;AF3)
Damit werden die Zeichen wieder zusammengesetzt.
Dann die Formeln in alle relevanten Zeilen kopieren und fertig.
MfG
Johannes E.
Hey
gucks Du :
http://www.office-loesung.de/ftopic115835_0_0_asc.php
http://www.excelformeln.de/formeln.html?welcher=181
Unter „…office-Lösungen“ findest du das ganze für VBA und unter „excelformeln“ als Formel.
Mir erschließt sich aber nicht, wozu man das ganze gebrauchen kann.
Gruß aus Bayern
diese Formel baut einen (hier maximal 10 Zeichen) langen Text von rechts nach links zusammen:
=TEIL(A1;10;1)&TEIL(A1;9;1)&TEIL(A1;8;1)&TEIL(A1;7;1)&TEIL(A1;6;1)&TEIL(A1;5;1)&TEIL(A1;4;1)&TEIL(A1;3;1)&TEIL(A1;2;1)&TEIL(A1;1;1)
Formel einfach die Tabelle runterziehen
bei längerem Wort entsprechend analog erweitern,
die Worte dürfen jederzeit auch kürzer sein.
Gruß
Chris
Hallo Daniel,
wenn es keine eingebaute Funktion in diese rArt in Excel gibt sehe ich mit Formeln da wenig Möglichkeiten bzw. es wird aufwändig.
Einige Fragen vorab wäre, sind es immer 6 Zeichen, warum XX und 4 Zahlen ist das immer so?
Mir würde ein Makro vorschweben das Zeile für Zeile die Länge der ermittelt und dann in einer Schleife die Zeichen neu ordnet.
Gruß
Hallo Daniel,
ich hab mal gegoogled da findet man genau dein Problem hier
http://home.arcor.de/excelseite/KleineHelfer/spieg.html
Gruß armin
Hallo,
leider kann ich bei der Beantwortung der Frage nicht behilflich sein, da ich nur über Grundkenntnisse im Bereich Excel verfüge.
Chris
Hallo Daniel,
eine Excelformel, die das leistet, kenne ich nicht.
Per Makro und benutzerdefinierter Funktion ist das kein Problem.
Gruß
Franz
'Code in einem allgemeinen Modul - z.B. in der persönlichen Makro-Arbeitsmappe
Sub TextSpiegeln()
'vor der Ausführung des Makros den Zellbereich mit den Texten selektieren.
Dim wks As Worksheet
Dim rngBereich As Range, Zelle As Range
Set rngBereich = Selection
For Each Zelle In rngBereich
'über den Offset wird festgelegt, wo das Ergebnis eingefügt werden soll.
'(0, 0) schreibt das Ergebnis in die Zellen zurück
'(0, 2) schreibt das Ergebnis 2 Spalten rechts der selektierten Zellen.
Zelle.Offset(0, 2).Value = fncInhaltSpiegeln(Zelle.Text)
Next
End Sub
'Diese bednutzerdefinierte Funktion kann auch in einem allgemeinen Modul \_
der Datei eingefügt werden und dann wie jede andere Excelfunktion in den \_
Tabellen benutzt werden
Public Function fncInhaltSpiegeln(strText As String) As String
Dim intPos As Integer
For intPos = 1 To Len(strText)
fncInhaltSpiegeln = Mid(strText, intPos, 1) & fncInhaltSpiegeln
Next
End Function
Tabellenbeispiel mit Formel:
Tabellenblattname: Tabelle8
A B
3 ABX XBA
4 X123A A321X
5 A321X X123A
Benutzte Formeln:
B3: =fncInhaltSpiegeln(A3)
B4: =fncInhaltSpiegeln(A4)
B5: =fncInhaltSpiegeln(A5)
Hallo,
da musst Du dir eine VBA-Funktion selbst schreiben:
Public Function Spiegel(s As String) As String
Dim l As Long
Dim i As Long
l = Len(s)
Spiegel = „“
For i = l To 1 Step -1
Spiegel = Spiegel & Mid(s, i, 1)
Next i
End Function
Gruß
Vincenz
Hallo noch mal an alle:
Danke für die vielen Vorschläge! Bin zum ersten Mal hier unterwegs und völlig baff von der kompetenten und prompten Hilfe!
Der Wermutstropfen im Paradies: meine Heeresführung hat das gesamte Projekt vorhin abgesägt. Immerhin, ich hab trotzdem wieder einiges dazu gelernt! Also: Danke!
lg
Daniel
Hallo Daniel,
ich hab keine Idee.
Christin