Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
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

Unterschiedliche Währungsformate bereinigen

Unterschiedliche Währungsformate bereinigen
Peter
Guten Tag
In einem Spaltenbereich (benannt mit BETRAG) habe ich Beträge, die unterschiedlich dargestellt werden. Anhand von 1111.11 sieht das wie folgt aus:
Variante A: 1.111,11 (Tausender-Abgrenzung mit Punkt; vor Dezimalen mit Komma)
Variante B: 1'111.00 ("normale" Darstellung).
Bei einem ganzen Betrag (z.B. 1000) sieht das wie folgt aus:
Variante A: 1,000
Variante B: 1'000.00
Ich möchte nun einen Code, mit dem ich sämtliche Beträge gemäss Variante A in Variante B umwandeln kann.
Kann mir da jemand weiterhelfen? Wäre super.
Gruss, Peter
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 14:59:17
mpb
Hallo Peter,
sind die Zellen nur unterschiedlich formatiert, oder stehen die "Zahlen" in Wirklichkeit als Text (String) mit allen Kommata, Punkten und Apostrophen in der Zelle?
Gruß
Martin
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 15:01:17
Peter
Hallo Martin
Die Zahlen (Variante A) stehten in Wirklichkeit als Text (String) drin; bei Variante B ist die Zahl "normal" formatiert.
Gruss, Peter
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 15:06:34
ChrisL
Hi Peter
Vielleicht geht es so: In einer Hilfsspalte folgende Formel anwenden...
=WENN(TEIL(A1;LÄNGE(A1)-2;1)=",";WECHSELN(WECHSELN(A1;".";"");",";".")*1;WECHSELN(A1;",";"")*1)
Danach die Spalte mit den Formeln kopieren, Inhalte einfügen (Werte aktivieren).
Zum Schluss die Spalte nach deinen Wünschen formatieren und die ursprüngliche Spalte löschen.
cu
Chris
Anzeige
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 16:13:34
Peter
Hallo
Ich stelle mit ein VBA Lösung vor, in der jede Zelle innerhalb des benannten Ranges abgearbeitet wird mit folgenden Schritten:
1. Prüfen, ob im aktuellen String bis zur 4. letzten Stelle ein Punkt vorkommt; wenn ja, dieseeliminieren (keiner kann Abtrennung der Dezimalen sein; dieser steht i.d.R. an der 4. bis 2. letzten Stelle)
2. Nach dem diese Prüfung und gegebenenfalls Elimination beim aktuellen String erfolgt ist, kann ein möglicherweise vorhandenes Komma in der Zelle durch einen Punkt ersetzt werden
3. Die aktuelle Zelle wird formatiert.
Mit der Umsetzung bin ich leider bisher gescheitert.
Gruss, Peter
Sub Umwandeln()
Dim rngCell As Range, rngL As Range
For Each Cell In Range("Betrag")
If InStrRev(rnrcell.Text, ".", 4) 

Anzeige
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 17:15:09
mpb
Hallo Peter,
lade die Datei doch hoch. Ich zumindest rätsle gerade, was denn wo in der Datei steht und in was "es" umgewandelt werden soll. Deinen bisherigen Erklärungen konnte ich nicht ganz folgen und für eine VBA-Lösung wären mehr Informationen über den Tabellenaufbau hilfreich.
Gruß
Martin
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 18:08:31
mpb
Hallo Peter,
=A7*1
in eine leere Zelle und dann nach unten kopieren. Anschließend wie gewünscht formatieren.
Gruß
Martin
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 18:59:57
Peter
Hallo Martin
Bei mir ergibt das Fehlerwerte (Ländereinstellung: Schweiz).
Von daher: noch offen.
Danke und Gruss, Peter
Anzeige
AW: Unterschiedliche Währungsformate bereinigen
09.08.2010 23:57:59
mpb
Hallo Peter,
da kann ich Dir nicht weiterhelfen, da es ein länderspezifisches Problem zu sein scheint. Der Hinweis ausf die Ländereinstellung wäre übrigens schon im ersten Posting wichtig gewesen.
Gruß
Martin
AW: Unterschiedliche Währungsformate bereinigen
10.08.2010 08:38:59
ChrisL
Hi Martin
Die Logik aus der Formel funktioniert. Wenn es unbedingt ne VBA Lösung sein muss, kannst du das ja einfach übernehmen
=WENN(TEIL(A7;LÄNGE(A7)-2;1)=",";WECHSELN(WECHSELN(A7;".";"");",";".")*1;WECHSELN(A7;",";"")*1)
If Mid(rng,len(rng)-2,1) = "," then
rng = Replace(Replace(rng,".",""),",",".")*1
Else
rng = Replace(rng,",","")*1
End If
(ungetestet)
cu
Chris
Anzeige
AW: Unterschiedliche Währungsformate bereinigen
10.08.2010 10:01:16
Peter
Hallo Chris
Danke. Das funktioniert, solange die Abgrenzung Zahl und Dezimalen an der drittenletzten Stelle steht.
Gruss, Peter
AW: Unterschiedliche Währungsformate bereinigen
10.08.2010 19:13:35
ChrisL
Hi Peter
Anhand der Musterzahlen hat es funktioniert. Wenn du unterschiedliche Nachkommastellen hast wird es schwer zwischen Dezimal und Tausendertrennzeichen zu unterscheiden z.B. 4,567 könnte 4 Tausend oder 4 Komma irgendwas bedeuten.
Ich gehe mal davon aus, dass die Daten aus einem Export/Import stammen. Vielleicht geht es einfacher die Import-Datei zu bearbeiten (Suchen/Ersetzen in der Textdatei), da du in dem Zeitpunkt noch klar sagen kannst was die Trennzeichen sind. Sind die verschiedenen Formate einmal vermischt wirds umständlich.
cu
Chris
Anzeige
AW: Unterschiedliche Währungsformate bereinigen
10.08.2010 22:03:53
Peter
Hallo Chris
Ja, das stimmt. Deine Formel hat mit den urpsrünglichen Musterzahlen funktioniert. Manchmal merkt man halt später, das da noch etwas dazu kommt.
Nun habe ich mit der Formel von Erich eine Lösung, die funktioniert; vielleicht kann ich auch noch einen Code selbst zusammenstellen, der mir den Zielwert in der gleichen Spalte einträgt und formatiert.
Danke und Gruss, Peter
Text in Zahl
10.08.2010 08:55:46
Erich
Hi Peter,
probier mal (ungetestet)
=WENN(ISTZAHL(A7);A7;1*WECHSELN(WECHSELN(A7;".";"");",";"."))
Damit wandelst du die falschen Texte in Zahlen um.
Noch ein Tipp:
Wenn du dir rechtsbündige Ausrichtung der Zellen A7:A27 rausnimmst, siehst du, was Zahl und was Text ist.
Wenn du dann alles als Zahl hast, kannst du formatieren, wie du das möchtest. Das ist nicht das Problem.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Text in Zahl
10.08.2010 10:08:43
Peter
Hallo Erich
Vielen Dank. Das funktioniert. Da die Lösung einer Teil einer Routine ist und die in der umgewandelten Werte am gleichen Ort eingetragen werden müssen, werde ich jetzt versuchen, das in VBA umzusetzen und werde vielleicht noch Fragen haben.
Mögliche Lösungen, die mir durch den Kopf schweben:
- jede Zelle des Ranges abarbeiten und gegebenenfalls den neuen Wert eintragen sowie den ganzen Bereich formatieren.
- alle Werte des zu bearbeitenden Bereiches in ein Array kopieren, das Array mit deiner Formel bearbeiten und dann in den Bereich zurückschreiben und wieder den ganzen Bereich formatieren.
Danke und Gruss, Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige