Text in Spalten
#1
Hallo zusammen,

brauch mal kurz Hilfe.
ich müsste den Wert einer Zelle teilen (Funktion: Text in Spalten). Meine Zellen haben nachfolgende Darstellung...
-3,40-4,40
2,793,53

..d.h. die Trennung sollte von links zwei Stellen nach dem ersten Komma passieren z.B. ">-3,40(hier)-4,40 egal ob ein Minuszeichen davor oder nicht.

Ich hoffe, dass ich mich klar ausdrücken konnte.
Top
#2
Hi Bernie,

(20.10.2014, 13:27)Bernie schrieb: ich müsste den Wert einer Zelle teilen (Funktion: Text in Spalten).

mit "Text in Spalten" geht es IMO nicht, per Formel geht es so:

Tabelle1
BCDEFG
1Text als Text als Zahlen 
2'-3,40-4,40-3,40-4,40-3,4-4,4
32,793,532,793,532,793,53

verwendete Formeln
Zelle Formel Bereich N/A
D2: D3=LINKS(B2;FINDEN(",";B2;1)+2)
E2:E3=TEIL(B2;FINDEN(",";B2;1)+3;10)
F2:F3=LINKS(B2;FINDEN(",";B2;1)+2)*1
G2:G3=TEIL(B2;FINDEN(",";B2;1)+3;10)*1

Zahlenformate
Zelle Format Wert
F2 '0,00 -3,4
G2 '0,00 -4,4
F3 '0,00 2,79
G3 '0,00 3,53
Zellen mit Format Standard werden nicht dargestellt
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 18.19 einschl. 64 Bit

Top
#3
Auch Hallo,

oder per RegEx

Code:
Sub prcTestRegex()
   Dim re As Object, reMat As Object
   Dim lngC As Long
  
   Set re = CreateObject("vbscript.regexp")
   re.Pattern = "\-*\d+\,\d{2}"
   re.Global = True
   lngC = 1
   While Cells(lngC, 1) <> ""
      Set reMat = re.Execute(Cells(lngC, 1))
      If reMat.Count Then
         Cells(lngC, 2) = reMat(0) * 1
         Cells(lngC, 3) = reMat(1) * 1
      End If
      lngC = lngC + 1
   Wend
End Sub
Gruß Stefan
Win 10 / Office 2016
Top
#4
Hallo zusammen,

@Ralf, passt! Danke!

@Stefan,
hab deinen Code in ein Modul eingefügt und er läuft durch, aber in meiner Tabelle passiert nix.

Hier nochmal ein Auszug einer meiner Tabellen (4Stck.). D.h. Spalte B,C und D müssen nach den erwähnten Vorgaben erweitert werden.
 ABCD
1NameISIN+/-%+/- 3 Mon.% 3 Mon.+/- 6 Mon.% 6 Mon.
2Aareal BankDE0005408116-0,06-0,18-6,12-17,84-3,49-11,00

Ergebnis soll so aussehen...
 ABCDEFG
1NameISIN+/-%+/- 3 Mon.% 3 Mon.+/- 6 Mon.% 6 Mon.Spalte1Spalte2Spalte3
2Aareal BankDE0005408116-0,06-0,18-6,12-17,84-3,49-11,00-0,18-17,84-11,00

ZelleFormatWert
E10,00Spalte1
F10,00Spalte2
G10,00Spalte3
E20,00-0,18
F20,00-17,84
G20,00-11

ZelleFormel
E2=TEIL(B2;FINDEN(",";B2;1)+3;10)*1
F2=TEIL(C2;FINDEN(",";C2;1)+3;10)*1
G2=TEIL(D2;FINDEN(",";D2;1)+3;10)*1
Top
#5
Hallo,

(20.10.2014, 16:16)Bernie schrieb: @Stefan,
hab deinen Code in ein Modul eingefügt und er läuft durch, aber in meiner Tabelle passiert nix.

kann ich nicht nachvollziehen. Bei mir geht es. Du mußt natürlich schon die Spalten anpassen.
Gruß Stefan
Win 10 / Office 2016
Top
#6
Hallo Stefan,

entschuldige, dass ich mich jetzt erst melde, aber ich musste einen wichtigen Termin wahrnehmen.

Den Code, wie gesagt hatte ich in einer Testmappe ausprobiert und es passierte in der Tabelle nichts. Vielleicht liegt es daran, dass es sich um Tabellen handelt, die mit Power-Query erstellt wurden. Ich weiß es leider nicht.

Ich hatte aber in der Originalmappe schon die Formel von Ralf verarbeitet und das klappt ganz gut.

Danke nochmal für deine Hilfe und hab immer einen Blick auf die Beiträge des kleinen Dicken mit kurzen Beinen, gelle. :15:
Top
#7
Hallo Bernie,

(21.10.2014, 09:32)Bernie schrieb: Den Code, wie gesagt hatte ich in einer Testmappe ausprobiert und es passierte in der Tabelle nichts. Vielleicht liegt es daran, dass es sich um Tabellen handelt, die mit Power-Query erstellt wurden. Ich weiß es leider nicht.

Ich hatte aber in der Originalmappe schon die Formel von Ralf verarbeitet und das klappt ganz gut.

Das kann durchaus sein, das da zum Beispiel die Formate anders sind, oder das Format der Daten oder oder....
Gruß Stefan
Win 10 / Office 2016
Top
#8
Hallo Stefan,

ja, es liegt eindeutig an den Formaten.

Bin gerade dabei mit dem Makrorecorder die Formate einheitlich zu machen. Wäre dir sehr dankbar, wenn du vielleicht morgen oder so noch mal auf meinen Beitrag schaust, denn dann habe ich die endlos langen Recorder-Aufzeichnungen fertig und würde dich dann bitte diese Code etwas zu entschlacken. Danke schon mal im Vorraus. :15:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste