Clever-Excel-Forum

Normale Version: Zahlen als wissenschaftliches Format übernommen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Liebe Excel-KollegInnen,

ich habe einen Datensatz mit rund 50k Zeilen. Darin befinden sich in rund 40 Columns Zahlenwerte. Der Großteil sind 0.xxxxx Werte. (so erkennt er die Werte als "Standard", als Zahl mit ",")
Rund 1000 Zellen besitzten aber Werte die größer als 1 sind und von Excel nicht als Zahlen sondern als Wissenschaftliches Format übernommen wurden (sprich 8,xxxxxx+E10)
Formatiere ich diese Werte als Zahl wird daraus natürlich eine riesen Große Zahl, da die Kommastelle nicht nach der 8 sondern irgenwo hinten gesetzt wird. Die Zahl sollte aber 8,xy sein.
Ich habe bereits alles erdenkliche probiert. Alles als .txt gespeichert und den "." mit "," ersetzt. Dann sind alle Werte als Zahl formatiert, nur die wiss. Felder bleiben also solche erhalten.
Hatte auch versucht alles als string zu formatieren und dann in Python als number --> mit gleichem Resultat.

Ich möchte einfach nur, dass die 8,xxxxxx+E10 Werte als 8,xxxxx formatiert werden


Problem sieht trivial aus, für mich aktuell nicht lösbar.
wäre super, wenn hierfür jemand eine Lösung hätte!

Danke
roman
Hallo Roman,

dieser Artikel dürfte dein Problem lösen: https://www.schieb.de/719459/microsoft-e...e-anzeigen

Denke aber daran, dass Excel nur bis auf 15 Stellen richtig dargestellt und berechnet wird. XL stellt alle Ziffern ab der 16. Stelle auf 0 um.
Du hast 50000 Datensätze mit 40 Feldern in Deinen Daten.
Hallo,
nein das löst mein Problem leider nicht. Dadurch wird das Feld ja nur in ein Zahlenformat verwandelt. die Zahl ist danach 88888889877,1256 anstatt 8,88888898771256
ich kann damit leidern nichts anfangen, da ich nicht fast 1000 Felder manuell durch 10000000000 dividieren kann, damit der Wert wieder stimmt.
ja, es sind so viele Daten
Hi Roman,

ich gehe davon aus, dass deine Zahlen in einer Spalte sind? Dann brauchst du nicht großartig manuell tätig werden. Es reicht den ersten (umgewandelten) Eintrag per Formel zu dividieren (irgendwo in einer Hilfsspalte); danach lässt du mit einem Doppelklick auf das Ausfüllkästchen rechts unten an der Zelle die gesamte Spalte berechnen. Danach kopierst du sie und fügst sie als Werte in deine Originalspalte wieder ein.
sie sind in den 40 spalten und 50.000 Zeilen verteilt.... da muss es eine einfachere Lösung als diesen Workaround geben Dodgy
Hallo,

im gezeigten Workbook stehen die meistens Zahlen im US-Format, also z.B. "0.07123".

In dieser Version, also VOR der Umwandlung ins deutsche Zahlenformat, kann man die Fehler recht schnell finden mit

Code:
Ar = cells(1).currentregion

for i = 2 to ubound(Ar)
    for j = 1 toUbound(Ar,2)
       if instr(1, Ar(i,j), ",") then cells(I,j).interior.color = vbyellow
   next j
next i

Damit kann man dann auch durch 10^10 teilen.

mfg
Hallo Fennek,
danke für deine Antwort, das hört sich schon sehr hilfreich an! Mir ist aber noch unklar, wie ich nun vorgehen soll.
Liebe Grüße
Mein Verständnis:

- ein externes Programm erzeugt Daten in US-Notation: dezimal-Trenner: "."
- beim Import in Excel erfolgt eine automatische Typ-Umwandlung, die für Werte > 1 falsch ist.

Lösungsansätze:

- anderer Import in Excel (mit den richtigen Dezimal-Trennern)

oder "2. best"

- nachträgliche Fehlerbehandlung
- im gezeigten Dokument meinen Code ausführen
- beim ersten Lauf stichprobenartig prüfen, ob alle "E+10" - Zellen markiert werden
- beim zweiten Durchlauf den Zellwert durch 10^10 teilen
- die engl. Zahlen ins deutsche Formal wandeln

Reicht das als Anregung?

mfg
Seiten: 1 2 3