Jump to content

Excel - Anwendungsfrage


Recommended Posts

Excel macht seltsame Dinge mit der Formatierung.

Selbst, wenn Zahl als Formatierung angegeben wird, kann es sein, dass die Zelle als Text interpretiert wird.

Wird eine Zelle zunächst als Text formatiert, die Formatierung dann auf Zahl geändert, bleibt der Inhalt erst mal ein Text. Erst, wenn man die Zelle bearbeitet (Doppelklick oder F2) wird die Formatierung tatsächlich geändert und als Zahl formatiert.

 

Das erkennt man z. B. daran, dass Zahlen bei Excel standarmaßig rechtsbündig angezeigt werden, wenn keine andere Ausrichtung angegeben wurde und Text linksbündig.

 

Ich kenne auch keinen Trick, wie man das eingestellte Format erzwingen kann, ohne jede einzelne Zelle zu bearbeiten.

 

Ob es wirklich daran liegt, kann ich aus der Ferne nicht beurteilen, aber ich habe dank dieses Phänomens schon manch graues Haar bekommen.

Link to comment
Excel macht seltsame Dinge mit der Formatierung.

Selbst, wenn Zahl als Formatierung angegeben wird, kann es sein, dass die Zelle als Text interpretiert wird.

Wird eine Zelle zunächst als Text formatiert, die Formatierung dann auf Zahl geändert, bleibt der Inhalt erst mal ein Text. Erst, wenn man die Zelle bearbeitet (Doppelklick oder F2) wird die Formatierung tatsächlich geändert und als Zahl formatiert.

 

Das erkennt man z. B. daran, dass Zahlen bei Excel standarmaßig rechtsbündig angezeigt werden, wenn keine andere Ausrichtung angegeben wurde und Text linksbündig.

 

Ich kenne auch keinen Trick, wie man das eingestellte Format erzwingen kann, ohne jede einzelne Zelle zu bearbeiten.

 

Ob es wirklich daran liegt, kann ich aus der Ferne nicht beurteilen, aber ich habe dank dieses Phänomens schon manch graues Haar bekommen.

 

Danke! Weißt Du zufällig auch, ob man alle auf einmal bearbeiten kann? Hin- und herkopieren hat leider nichts gebracht, zumindest nicht innerhalb der selben Datei. Vielleicht muss ich es noch mit einer komplett neuen Datei versuchen. Und 32664 Zellen doppelklicken ist leider keine Option :lookaround:

Link to comment

Versuch mal, alles ohne Formatierung in eine neue Datei zu kopieren, damit Excel von alleine erkennt, dass es Zahlen sind. Zweite Möglichkeit wäre, wenn die Zahlen in Zeilen oder Spalten stehen, die Daten in eine neue Datei zu kopieren, dort vorher die Zeilen/Spalten als Zahl zu formatieren und dann die Daten aus der alten Datei ohne Formatierung einzufügen.

Link to comment

 

Danke! Weißt Du zufällig auch, ob man alle auf einmal bearbeiten kann? Hin- und herkopieren hat leider nichts gebracht, zumindest nicht innerhalb der selben Datei. Vielleicht muss ich es noch mit einer komplett neuen Datei versuchen. Und 32664 Zellen doppelklicken ist leider keine Option :lookaround:

 

Funktioniert es nicht, eine Spalte (oder Zeile) am Kopf, bzw. am linken Rand anzuklicken und dann über die rechte Maustaste das Format für die gesamte Spalte/Zeile einzustellen?

Edited by Sulvahir
Link to comment
Excel macht seltsame Dinge mit der Formatierung.

Selbst, wenn Zahl als Formatierung angegeben wird, kann es sein, dass die Zelle als Text interpretiert wird.

Wird eine Zelle zunächst als Text formatiert, die Formatierung dann auf Zahl geändert, bleibt der Inhalt erst mal ein Text. Erst, wenn man die Zelle bearbeitet (Doppelklick oder F2) wird die Formatierung tatsächlich geändert und als Zahl formatiert.

 

Das erkennt man z. B. daran, dass Zahlen bei Excel standarmaßig rechtsbündig angezeigt werden, wenn keine andere Ausrichtung angegeben wurde und Text linksbündig.

 

Ich kenne auch keinen Trick, wie man das eingestellte Format erzwingen kann, ohne jede einzelne Zelle zu bearbeiten.

 

Ob es wirklich daran liegt, kann ich aus der Ferne nicht beurteilen, aber ich habe dank dieses Phänomens schon manch graues Haar bekommen.

 

Danke! Weißt Du zufällig auch, ob man alle auf einmal bearbeiten kann? Hin- und herkopieren hat leider nichts gebracht, zumindest nicht innerhalb der selben Datei. Vielleicht muss ich es noch mit einer komplett neuen Datei versuchen. Und 32664 Zellen doppelklicken ist leider keine Option :lookaround:

 

Funktioniert es nicht, eine Spalte (oder Zeile) am Kopf, bzw. am linken Rand anzuklicken und dann über die rechte Maustaste das Format für die gesamte Spalte/Zeile einzustellen?

 

Nö, nicht wenn das von Sirana beschriebene Problem vorliegt. Excel ist da zickig.

Link to comment

Aber da bringst du mich auf eine weitere Lösungsmöglichkeit.

Daten als Text-Datei speichern und dann wieder in Excel öffnen. Beim Importieren kannst du für jede Spalte angeben, wie sie formatiert werden soll.

 

Tante Edit meint, dass ich nicht die einzige mit der Idee bin. :D

Link to comment
Wenn ich die Tabelle als csv speichere, sehen beide Spalten gleich aus. :dunno:

 

wundert mich nicht, beim csv-Format werden keine Excel-Zellformatierungen übernommen

 

Wenn ich die Tabelle als csv speichere, sehen beide Spalten gleich aus. :dunno:
Im csv-Format wird ja auch keine Zellenformatierung gespeichert.

 

:lol:

 

Aber Excel selbst hätte ja beim Export das vermurksen können, so wie Sarandiras Import-Funktion. ;)

Excel-Logik kann man nicht verstehen. Versuch's besser erst gar nicht!
Link to comment
Versuch mal, alles ohne Formatierung in eine neue Datei zu kopieren, damit Excel von alleine erkennt, dass es Zahlen sind. Zweite Möglichkeit wäre, wenn die Zahlen in Zeilen oder Spalten stehen, die Daten in eine neue Datei zu kopieren, dort vorher die Zeilen/Spalten als Zahl zu formatieren und dann die Daten aus der alten Datei ohne Formatierung einzufügen.

 

Möglichkeit eins: keine Auswirkung!

 

Möglichkeit zwei: interessanterweise wird jetzt in beiden Spalten auf die dritte Nachkommastelle gerundet (wohlgemerkt nur bei Zahlen > 100) :notify: - das ist aber nicht das, was ich will! :cry:

 

Ich probier's jetzt mal umgekehrt: als Text formatieren

Link to comment
Wenn ich die Tabelle als csv speichere, sehen beide Spalten gleich aus. :dunno:

 

wundert mich nicht, beim csv-Format werden keine Excel-Zellformatierungen übernommen

 

Wenn ich die Tabelle als csv speichere, sehen beide Spalten gleich aus. :dunno:
Im csv-Format wird ja auch keine Zellenformatierung gespeichert.

 

:lol:

 

Aber Excel selbst hätte ja beim Export das vermurksen können, so wie Sarandiras Import-Funktion. ;)

Excel-Logik kann man nicht verstehen. Versuch's besser erst gar nicht!

 

Mal abgesehen davon ist das nicht "meine" Importfunktion, sondern letztendlich ja auch was von Microsoft ;)

Link to comment

Ich probier's jetzt mal umgekehrt: als Text formatieren

 

:lachen::yeah::cry:

 

Was bringt mir das jetzt? Die Anwender müssen wohl doch wieder vor jedem Import die Datei aufmachen und einheitlich formatieren...

Kannst du beim Import angeben, dass alles als Text zu importieren ist (und würde das was bringen, wenn Excel so'n Schmu macht)?
Link to comment

Ich probier's jetzt mal umgekehrt: als Text formatieren

 

:lachen::yeah::cry:

 

Was bringt mir das jetzt? Die Anwender müssen wohl doch wieder vor jedem Import die Datei aufmachen und einheitlich formatieren...

Kannst du beim Import angeben, dass alles als Text zu importieren ist (und würde das was bringen, wenn Excel so'n Schmu macht)?

 

Ja, scheint zu gehen, wenn ich zuerst beim Import-Select mit STR$ in Text umwandle und dann vor dem Ersetzen der Kommas diesen Text (Datentyp wird ntext) in ein anderes Textformat (nvarchar) caste, mit dem REPLACE dann funktioniert. Dann kann ich das wieder in eine Zahlenspalte einfügen und habe alle vier Nachkommastellen! :yeah:

 

Das kann es doch wohl nicht sein, oder? :silly: :silly: :silly:

Link to comment

Möglichkeit zwei: interessanterweise wird jetzt in beiden Spalten auf die dritte Nachkommastelle gerundet (wohlgemerkt nur bei Zahlen > 100) :notify: - das ist aber nicht das, was ich will! :cry:

 

Liegt das vielleicht am Datentyp in der Datenbank? NUMERIC(precision, scale)

Link to comment

Ich probier's jetzt mal umgekehrt: als Text formatieren

 

:lachen::yeah::cry:

 

Was bringt mir das jetzt? Die Anwender müssen wohl doch wieder vor jedem Import die Datei aufmachen und einheitlich formatieren...

Kannst du beim Import angeben, dass alles als Text zu importieren ist (und würde das was bringen, wenn Excel so'n Schmu macht)?

 

Ja, scheint zu gehen, wenn ich zuerst beim Import-Select mit STR$ in Text umwandle und dann vor dem Ersetzen der Kommas diesen Text (Datentyp wird ntext) in ein anderes Textformat (nvarchar) caste, mit dem REPLACE dann funktioniert. Dann kann ich das wieder in eine Zahlenspalte einfügen und habe alle vier Nachkommastellen! :yeah:

 

Das kann es doch wohl nicht sein, oder? :silly: :silly: :silly:

 

Excel :dunno: Microsoft :dunno:

Link to comment

Ich probier's jetzt mal umgekehrt: als Text formatieren

 

:lachen::yeah::cry:

 

Was bringt mir das jetzt? Die Anwender müssen wohl doch wieder vor jedem Import die Datei aufmachen und einheitlich formatieren...

Kannst du beim Import angeben, dass alles als Text zu importieren ist (und würde das was bringen, wenn Excel so'n Schmu macht)?

 

Ja, scheint zu gehen, wenn ich zuerst beim Import-Select mit STR$ in Text umwandle und dann vor dem Ersetzen der Kommas diesen Text (Datentyp wird ntext) in ein anderes Textformat (nvarchar) caste, mit dem REPLACE dann funktioniert. Dann kann ich das wieder in eine Zahlenspalte einfügen und habe alle vier Nachkommastellen! :yeah:

 

Das kann es doch wohl nicht sein, oder? :silly: :silly: :silly:

Von hinten durch die Brust ins Auge! :lol:

Wenn's funktioniert und die Anwender nicht manuell formatieren müssen, ist doch alles gut, nicht schön, aber gut.

 

Vergiss den erläuternden Kommentar nicht, damit du in zwei Monaten auch noch weißt, weswegen du da so rumpfuscht! :D

Link to comment

Möglichkeit zwei: interessanterweise wird jetzt in beiden Spalten auf die dritte Nachkommastelle gerundet (wohlgemerkt nur bei Zahlen > 100) :notify: - das ist aber nicht das, was ich will! :cry:

 

Liegt das vielleicht am Datentyp in der Datenbank? NUMERIC(precision, scale)

 

Der ist tatsächlich NUMERIC(10,4). Die Zahlenwerte liegen so zwischen 7 und knapp über 100, jeweils mit 4 Nachkommastellen. Das sollte doch eigentlich ohne Rundung reichen, hätte ich erwartet? Die als Zahl formatierte Spalte wird als FLOAT importiert, die als Text importierte als NVARCHAR(255). Beim Speichern in die NUMERIC-Spalte wird dann bei FLOAT wie gesagt bei Zahlen > 100 gerundet. Vielleicht liegt es wirklich daran :whatsthat:

Link to comment
Wie gesagt: wenn ihr die Daten geliefert bekommt, dann sorge dafür, dass die in einem vernünftigen Format ankommen. Excel ist kein gutes Austauschformat.

 

Leider muss ich immer wieder sagen das Excel gar kein Austauschformat ist. Ich hatte mir vor längerer Zeit mal damit beholfen das ich ein VBA-Makro geschrieben habe das mir die Daten aus dem Excel ordentlich formatiert in eine CSV-Datei exportiert hat. Klingt zwar idiotisch war aber damals, für mich, der einzige Weg um die gelieferten Daten sauber zu exportieren.

Den Weg mit dem Makro könnte man auch beschreiten um die Werte in alle Zellen die als Zahlen formatiert sind und numerische Werte enthalten explizit in numerische Werte zu konvertieren.

Link to comment
Wie gesagt: wenn ihr die Daten geliefert bekommt, dann sorge dafür, dass die in einem vernünftigen Format ankommen. Excel ist kein gutes Austauschformat.

 

Leider muss ich immer wieder sagen das Excel gar kein Austauschformat ist. Ich hatte mir vor längerer Zeit mal damit beholfen das ich ein VBA-Makro geschrieben habe das mir die Daten aus dem Excel ordentlich formatiert in eine CSV-Datei exportiert hat. Klingt zwar idiotisch war aber damals, für mich, der einzige Weg um die gelieferten Daten sauber zu exportieren.

Den Weg mit dem Makro könnte man auch beschreiten um die Werte in alle Zellen die als Zahlen formatiert sind und numerische Werte enthalten explizit in numerische Werte zu konvertieren.

Excel ist dann ein gutes Format wenn man mit entsprechenden Bibliotheken lesen und schreiben kann. Leider sind solche Bibliotheken entweder proprietär oder von geringem Funktionsumfang. Die Verwendung von csv hat auch etliche Fallstricke, z.B. die Festlegung des Separationszeichens.
Link to comment
Da das im Schwampf eigentlich nichts zu suchen hat, alles Weitere hier:

 

Ich habe das Problem jetzt auf eine einzige Excel-Zelle eingegrenzt (wobei es wohl noch ein paar mehr davon in der Datei gibt). Und ich hab keinen blassen Schimmer, warum eine 1,0995 aus dieser Zelle nicht als Zahl erkannt wird, eine 1,0995 aus der Nachbarzelle aber schon! :cry:

 

Formatierung? Irgendwelche Steuerzeichen?

 

Formatierung per "Format übertragen" aus der Nachbarzelle kopiert - hilft nicht

 

Kannst du dir die Formatierung nicht mit der rechten Maustaste -> "Zellen formatieren..." anschauen? (Ich hab hier nur LibreOffice, das sollte unter Excel aber ähnlich sein)

 

Also, die Formatierung sieht in allen Dialogen, die ich auftreiben konnte, gleich aus. Ich arbeite auch eigentlich gar nicht mit Excel, sondern will die Excel-Daten über OPENROWSET in einer Stored Procedure in den SQL-Server importieren.

 

Dabei habe ich zwei Probleme:

 

  • Bei einigen Zahlen gibt es eine Fehlermeldung beim Umwandeln des Textes (als der sie erkannt werden) in eine Zahl - ich kann aber in Excel beim besten Willen nicht erkennen, wo die Zellen unterschiedlich formatiert sein könnten. Dieses Problem kann ich lösen, indem ich beim Import Kommas durch Punkte ersetze.

  • Bei Zahlen > 100 (alle Zahlen haben 4 Nachkommastellen) wird bei einer Spalte (die, in der der erste Fehler auftritt) die 4. Nachkommastelle korrekt übernommen, bei der anderen nicht (also 0). Und hier weiß ich noch nicht, wie ich das Problem lösen soll.

 

Ich werde jetzt mal versuchen, die Daten nach csv zu exportieren, mal sehen, was dabei rauskommt...

 

Nun ist die Frage wie gut du dich damit auskennst. Lass dir die Daten von Excel doch mal als xml Datei samt zugehörigem Stylesheet ausgeben. Da müsste die Formatierung eigentlich mit ausgegeben werden. Wenn du nun weisst was du tust, findest du die entsprechenden Einträge recht schnell. Zur Not brauchst du dann nur noch jemand der dir den benötigten Transform schreibt (was eigentlich keine Hexerei ist) und du kannst die ganze Uebung automatisieren...

es grüsst

Sayah el Atir al Azif ibn Mullah

Link to comment
Wie gesagt: wenn ihr die Daten geliefert bekommt, dann sorge dafür, dass die in einem vernünftigen Format ankommen. Excel ist kein gutes Austauschformat.

 

Leider muss ich immer wieder sagen das Excel gar kein Austauschformat ist. [...]

Technisch gesehen magst du recht haben. In der Praxis sieht das allerdings anders aus.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...