Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1152to1156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmten Text in Zelle vertauschen!

Bestimmten Text in Zelle vertauschen!
Helmut
Liebe Forenuser,
ich habe eine Bitte für ein ähnliches Problem wie gestern.
Ich habe in einer Zelle durch ; getrennt einige Texte stehen. Z.B.:
230V;2A;230VAC;300VA;50-60HZ
Mich interessiert nur der Wert mit Einheit VA, also im Beispiel 300VA (der Wert steht nicht immer an derselben Stelle in der Zelle!). Dieser Wert soll an die erste Stelle in der Zelle kommen. Das Ergebnis soll also folgendermaßen aussehen:
300VA;230V;2A;230VAC;50-60HZ
Wie kann man das machen, dass man hier umreiht?
Danke im Voraus!
LG, Helmut
AW: Bestimmten Text in Zelle vertauschen!
06.05.2010 10:19:18
David
Hallo Helmut,
so ginge das:
=TEIL(A1;SUCHEN("VA;";A1)-3;5)&";"&WECHSELN(A1;TEIL(A1;SUCHEN("VA;";A1)-3;5)&";";"")
Ich bin jetzt der Einfachheit halber davon ausgegangen, dass die davor stehende Zahl immer 3-stellig ist, wenn nicht, müsste man die Formel noch anpassen, dann melde dich nochmal.
Gruß
David
AW: Bestimmten Text in Zelle vertauschen!
06.05.2010 10:27:24
Helmut
Hi,
stimmt, die Zahl davor ist nicht immer 3-stellig!
LG, Helmut
AW: Bestimmten Text in Zelle vertauschen!
06.05.2010 10:37:48
David
Dann wirds etwas komplizierter (aber machbar):
Tabelle1
 AB
8230V;2A;230VAC;300VA;50-60HZ300VA;230V;2A;230VAC;50-60HZ
9230V;2A;230VAC;30VA;50-60HZ30VA;230V;2A;230VAC50-60HZ
10230V;2A;230VAC;3VA;50-60HZ3VA;230V;2A;230VA50-60HZ
11230V;2A;230VAC;VA;50-60HZVA;230V;2A;230V50-60HZ
12230V;2A;230VAC;50-60HZ#WERT!

verwendete Formeln
Zelle Formel
B8 {=RECHTS(LINKS(A8;SUCHEN("VA;";A8)+1);LÄNGE(LINKS(A8;SUCHEN("VA;";A8)+1))-MAX(WENN(TEIL(LINKS(A8;SUCHEN("VA;";A8)+1);ZEILE(1:50);1)=";";ZEILE(1:50);"")))&";"&WECHSELN(A8;TEIL(A8;SUCHEN("VA;";A8)-3;5)&";";"")}
B9 {=RECHTS(LINKS(A9;SUCHEN("VA;";A9)+1);LÄNGE(LINKS(A9;SUCHEN("VA;";A9)+1))-MAX(WENN(TEIL(LINKS(A9;SUCHEN("VA;";A9)+1);ZEILE(2:51);1)=";";ZEILE(2:51);"")))&";"&WECHSELN(A9;TEIL(A9;SUCHEN("VA;";A9)-3;5)&";";"")}
B10 {=RECHTS(LINKS(A10;SUCHEN("VA;";A10)+1);LÄNGE(LINKS(A10;SUCHEN("VA;";A10)+1))-MAX(WENN(TEIL(LINKS(A10;SUCHEN("VA;";A10)+1);ZEILE(3:52);1)=";";ZEILE(3:52);"")))&";"&WECHSELN(A10;TEIL(A10;SUCHEN("VA;";A10)-3;5)&";";"")}
B11 {=RECHTS(LINKS(A11;SUCHEN("VA;";A11)+1);LÄNGE(LINKS(A11;SUCHEN("VA;";A11)+1))-MAX(WENN(TEIL(LINKS(A11;SUCHEN("VA;";A11)+1);ZEILE(4:53);1)=";";ZEILE(4:53);"")))&";"&WECHSELN(A11;TEIL(A11;SUCHEN("VA;";A11)-3;5)&";";"")}
B12 {=RECHTS(LINKS(A12;SUCHEN("VA;";A12)+1);LÄNGE(LINKS(A12;SUCHEN("VA;";A12)+1))-MAX(WENN(TEIL(LINKS(A12;SUCHEN("VA;";A12)+1);ZEILE(5:54);1)=";";ZEILE(5:54);"")))&";"&WECHSELN(A12;TEIL(A12;SUCHEN("VA;";A12)-3;5)&";";"")}
{} Matrixformel mit Strg+Umschalt+Enter abschließen

Tabellendarstellung in Foren Version 4.11


Wenn kein VA vorkommt, gibts eine Fehlermeldung.
Gruß
David
Anzeige
AW: Bestimmten Text in Zelle vertauschen!
06.05.2010 10:45:59
Helmut
Danke dir! Funkt so!
LG, Helmut
Textteile vertauschen - mit VBA
06.05.2010 10:22:50
Erich
Hi Helmut,
wie wäre es damit:
 AB
1230V;2A;230VAC;12345VA;50-60HZ12345VA;230V;2A;230VAC;50-60HZ
2230V;2A;230VAC;50-60HZ;VAVA;230V;2A;230VAC;50-60HZ
3300VA;230V;2A;230VAC;50-60HZ300VA;230V;2A;230VAC;50-60HZ
4230V;2A;230VAC;300Va;50-60HZ230V;2A;230VAC;300Va;50-60HZ

Formeln der Tabelle
ZelleFormel
B1=VaTausch(A1)

Und hier die Fkt:

Option Explicit
Function VaTausch(strT As String) As String
Dim arr, ii As Long, strM As String, jj As Long
VaTausch = strT
arr = Split(strT, ";")
For ii = 0 To UBound(arr)
If Right$(arr(ii), 2) = "VA" Then
strM = arr(ii)
For jj = ii To 1 Step -1
arr(jj) = arr(jj - 1)
Next jj
arr(0) = strM
VaTausch = Join(arr, ";")
Exit Function
End If
Next ii
End Function
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Textteile vertauschen - mit VBA
06.05.2010 10:46:47
Helmut
Hi Erich,
super!!! Danke dir recht herzlich. Funktioniert super so!
LG, Helmut
AW: Textteile vertauschen - mit VBA
06.05.2010 10:52:26
David
Oooch, Erich!
Jetzt komm ich mir mit meiner "popeligen" Formel so klein vor! ;-)
Gruß
David
AW: Textteile vertauschen - mit VBA
06.05.2010 10:55:57
Helmut
Hi David,
trotzdem funktioniert es!! Und das ist wichtig. Danke dir für deine Mühe!!
LG, Helmut
AW: Textteile vertauschen - mit VBA
06.05.2010 11:06:09
Helmut
Hi Erich,
ich weiß, das ist viel verlangt, aber kannst du mir die essentiellen zeilen deines Codes erklären. Ich will das nämlich auch verstehen und lernen.
Danke im Voraus.
LG, Helmut
Code kommentiert und Beispiel
06.05.2010 11:38:30
Erich
Hi Helmut,
schau dir den kommentierten Code mal an und probier mal das Split-Join-Beispiel.
Wenn dann etwas unklar ist, frage einfach noch mal nach:

Function VaTausch(strT As String) As String
Dim arr, ii As Long, strM As String, jj As Long
arr = Split(strT, ";")              ' zerlege Text in Teile
For ii = 0 To UBound(arr)           ' Schleife über die Teile
If Right$(arr(ii), 2) = "VA" Then   ' wenn Teil mit VA endet
strM = arr(ii)                      ' merke den VA-Teil
For jj = ii To 1 Step -1
arr(jj) = arr(jj - 1) ' verschiebe vorherige Teile nach rechts
Next jj
arr(0) = strM                       ' 1. Teil wird VA-Teil
VaTausch = Join(arr, ";")           ' setze wieder zusammen
Exit Function                       ' fertig
End If                              ' Ende wenn
Next ii                             ' Ende Schleife
VaTausch = strT         ' wenn kein VA gefunden wurde, unverändert
End Function
Sub TestSplitJoin()
Dim arr, ii As Long
arr = Split("abxcxde", "x")
For ii = 0 To UBound(arr)
MsgBox arr(ii)
Next ii
MsgBox Join(arr, "***")
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Code kommentiert und Beispiel
06.05.2010 13:43:10
Helmut
Hi Erich,
super, danke. Jetzt ist mir auch klar, warum das Programm die Werte z.B. 100KVA auch nimmt (was auch ok ist für mich!!!), weil VA am Ende steht.
Was mir nicht klar ist, ist folgendes. Dein Programm funktioniert nicht, wenn ich folgenden abgeänderten Text in der Zelle habe:
2POL;10A;CHAR.B
und das Ergebnis haben möchte:
10A;2POL;CHAR.B
Also allen Text mit A am Ende an die erste Position in der Zelle! Dein Programm habe ich schon ausgebessert, dass in diesem Fall statt VA eben 10A steht; trotzdem geht es hier nicht, und das verstehe ich nicht ganz.
(in den Zellen steht nicht nur 10A, sondern auch andere Ziffern vor dem A)
Bitte um Rat!
Danke dir!!!
LG, Helmut
Anzeige
AW: Code kommentiert und Beispiel
06.05.2010 14:35:45
Helmut
Hi,
ich glaube ich habe es!!
Muss in deinem Code auch die zeichenzahl ändern, also 1 statt2 für Buchstaben A statt VA!
If Right$(arr(ii), 1) = "A" Then
LG, Helmut
Genau, prima! Danke für Rückmeldung (owT)
06.05.2010 16:36:25
Erich
(ohne weiteren Text)

348 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige