Excel will nicht rechnen, bringt als Ergebnis einer Addition nur "Wert!" - warum bloß ?

Wäre für Erläuterung von sed -e "s/ €//" dankbar und wie man in die Verzeichnisse (in meinem Fall "Downloads" überhaupt reinkommt.
sed ist ein Terminal Tool "stream editor". da -e ist expression und sucht den ersten Teil, also die Folge von Leerzeichen und Euro, und ersetzt das durch den zweiten Teil, hier ein leerer String. Die Texte sind durch / begrenzt, das s bedeutet eben "ersetzen"

Öffne Terminal und gib ein

Code:
cd ~/Downloads

Mach alles per copy&paste.

Die Anführungszeichen " sind essenziell wichtig. Alle.
 
Falls jemand experimentieren will:

was muss man da noch experimentieren? Sicherlich kannst du über x Umwege mit Numbers und manueller Nacharbeit irgendwann zum Ziel kommen.

Der Thread läuft schon ein ganze Zeit ohne eine derartige Lösung. In der Zwischenzeit hättest du schon hunderte Dateien mit sed konvertieren können.

Naja, Terminal muss man mögen. Aber es ist sehr empfehlenswert, sich damit zu befassen.
 
  • Gefällt mir
Reaktionen: ruerueka und dg2rbf
Noch einmal zurück zu Deinen Trennzeichen - irgendetwas passt da nicht.
TPfannes Trennzeichen (#26) sind Kommata und nicht Semikola – weswegen die als Zahlen-/Währungswerte interpretiert werden sollenden Einträge in Anführungszeichen erscheinen, damit das Dezimalkomma darin nicht zu neuen Spalten führt.
Gleichzeitig sorgen aber die Anführungszeichen beim Import nach Excel dafür, dass diese Eintragungen von Haus aus als Text interpretiert werden.

Nicht ausprobiert, ob’s hilft:
a. Zuerst die Sequenzen "," durch ; ersetzen
b. Verbliebene " (am Zeilenanfang und -ende) durch NICHTS ersetzen.
c1. Neu speichern.
d1. Neuen Import versuchen.

oder:
c2. LEERZEICHEN durch NICHTS ersetzen.
d2. Neu spreichern.
e. Neuen Import versuchen.
f. Währung in Excel neu zuweisen.
 
@dodo4ever: Das hatte ich (ohne Erfolg) bereits probiert. Auch das andere ist zu umständlich. Waum wird die Latte so niedrig gehängt.
Was Numbers kann, sollte Excel auch schaffen.
 
Einem Gutteil des Problems entgehst du schon damit, dass als Trennzeichen für die CSV-Datei nicht Komma, sondern Semikolon gewählt würde. Dadurch baut man dem Umstand vor, dass kontinentaleuropäisch das Komma als Dezimaltrenner verwendet wird. Dadurch wiederum würden die Anführungszeichen in der CSV-Datei entbehrlich, die gewöhnlich Zeichenketten alias Text kennzeichnen.
 
@dodo4ever: Ist leider nicht so, wie Du in #40 schriebst: Excel bleibt stur bei Text.
 
  • Gefällt mir
Reaktionen: dodo4ever
@fa66: (zu #45): Die Daten kommen von AirBnB: da kann ich mir keine andere Codierung wünschen.
 
  • Gefällt mir
Reaktionen: dodo4ever
@lisanet: Habe es probiert mit dem Bah; ohne Erfolg:
1667949012267.png
 
Das ist echt eine harte Nuss, deine csv. :(
 
Ich würde, wie weiter oben vorgeschlagen, nicht nur das € rauskürzen, sondern auch die den Betrag umschließenden ", da eine Zahl das nicht braucht.

Den Dezimaltrenner , sollte Excel dann aufgrund der Umgebungseinstellung korrekt erkennen.
Bei mir klappt das jedenfalls problemfrei. Ich verwende dazu aus dem Menüband "Daten" die Funktion "Aus Text/CSV"
1667976855996.png


Also: Aus "123,45 €" soll 123,45 werden.
Damit wird das Suchen/Ersetzen-Muster (aka "regulärer Ausdruck") aber aufwändiger.
Die Schreibweise des regulären Ausdrucks hängt auch noch stark ab von der verwendeten/ausgelieferten Variante von sed.
Ich weiß nicht, was Apple da aktuell liefert.

Bei mir ist es aktuell GNU sed 4.8 von Debian (bin also nicht auf dem Mac unterwegs).
Hier muss ich ein paar Zeichen mehr maskieren (mit \ versehen), damit es funktioniert. Konkret sind das die runden Klammern und die + Zeichen.
Bei mir funktioniert (ich teste mit echo statt mit einer Datei und schicke mit der Pipe | die Ausgabe an das Programm sed):
Code:
echo '"ABC";"123,45 €"' | sed -e 's/"\([[:digit:]]\+,[[:digit:]]\+\) €"/\1/'
"ABC";123,45
Kurze Erklärung:

sed -e 's/Suchausdruck/Ersetzung/'

Da auch " gefunden werden sollen, arbeite ich zum Umschließen des regulären Ausdrucks mit '

Suchausdruck:
"\([[:digit:]]\+,[[:digit:]]\+\) €"

[[:digit:]] sucht eine Zahl 0-9
+ ist ein Platzhalter für "beliebig viele"
also ist [[:digit:]]\+ "beliebig viele Zahlen", beachte den \, ohne den es in meiner Version nicht funktioniert.
() merkt sich den Treffer des Ausdruckt in der runden Klammer, bei mir ist das dann \( Zahlen mit einem Komma drin \)
Man kann mit vielen Klammerungen viele Variablen erzeugen, auf die dann beim Ersetzen zurückgegriffen werden kann.
Konkret: \([[:digit:]]\+,[[:digit:]]\+\) "merke dir Zahlen Komma Zahlen", also hier: 123,45

Ersetzung:
\1
Setze den mit dem ersten Klammerpaar () gemerkten Wert ein.
 
Zuletzt bearbeitet:
Das ist echt eine harte Nuss, deine csv. :(
Ich denke Excel ist hart auf dem Holzweg...

Vielleicht gibt es ja gute gründe für das Verhalten.
Wirklich sinnig erscheint es mir auf den ersten Blick nicht.
 
  • Gefällt mir
Reaktionen: dg2rbf und dodo4ever
Ich denke Excel ist hart auf dem Holzweg...
Ich weiß nicht, was ihr habt, ist das "Excel auf Mac"-spezifisch oder verwendet ihr alte Versionen?
"Mein" Excel (Microsoft Office Professional Plus 2019 auf Windows 10) formt eine solche Datei direkt und richtig um, sodass einfach ein Zahlenwert übernommen wird, den man bei Bedarf nachträglich als "Geldbetrag" formatieren kann.
Hier meine Ausgangsdaten:
1667982828441.png

Der Import-Dialog:
1667982850657.png

Das Ergebnis:
1667982869066.png
 
@ruerueka #52: Ja, das ist Excel für Mac, auf Ventura 13.0
1667983365316.png
 
So jetzt lade ich mir das Teil auch mal runter – jetzt will ich es wissen 😃
 
Also hinter den Werten hängt einfach eine "wilde" Zeichenkette, sieht man sofort nach dem Öffnen im Excel.
Code:
 €

Hab diese mit Suchen + Ersetzen im Dokument entfernt.
Schon läuft alles einwandfrei.
Aufwand 8 Sekunden.

Bildschirmfoto 2022-11-09 um 09.52.09.png

Bildschirmfoto 2022-11-09 um 09.54.00.png

Bildschirmfoto 2022-11-09 um 09.56.05.png


Ich bin auf Excel 16.66.1
 

Anhänge

  • Bildschirmfoto 2022-11-09 um 09.52.09.png
    Bildschirmfoto 2022-11-09 um 09.52.09.png
    298,3 KB · Aufrufe: 39
Du hast aber nicht die Konstellation, dass Du aus einer CSV eine Zahl kopierst, die eigenglich ein Text ist. Da hilft -soviel ich weiß - nur konvertieren von Text in Zahl, wie es schon gezeigt wurde.
 
Du hast aber nicht die Konstellation, dass Du aus einer CSV eine Zahl kopierst, die eigenglich ein Text ist. Da hilft -soviel ich weiß - nur konvertieren von Text in Zahl, wie es schon gezeigt wurde.
Ich habe die Datei heruntergeladen, welche der TE in die Dropbox gelegt hatte… also original die gleiche Ausgangsdatei
Siehe #39 https://www.macuser.de/threads/excel-will-nicht-rechnen-bringt-als-ergebnis-einer-addition-nur-wert-warum-bloss.910509/post-11705625
:)
 
Oh. Ok.
 
  • Gefällt mir
Reaktionen: dodo4ever
@dodo: Du hast nicht als UTF-8 importiert und damit Umlaute etc. zerstört. Als Datenquelle sollte eigentlich die Richtige einstellbar sein; dann kommt € statt einer "wilden" Zeichenkette!
@V8-Driver: Mir gelang es nicht, Text in Zahl zu konvertieren.
Den ruerueka-Weg: sed -e 's/"\([[:digit:]]\+,[[:digit:]]\+\) €"/\1/' habe ich nicht probiert.
 
@dodo: Du hast nicht als UTF-8 importiert und damit Umlaute etc. zerstört. Als Datenquelle sollte eigentlich die Richtige einstellbar sein; dann kommt € statt einer "wilden" Zeichenkette!
Ich hab gar nix importiert, einfach doppelt draufgeklickt.
Aber es liegt definitiv an den Umlauten / dem Zelleninhalt, siehe auch schon Post #8
Schau mal ob in m2 oder j3 etwas davor oder danach steht. Ein Sonderzeichen oder ein Leerzeichen. Das könnte gut möglich sein bei Datenimport

Du musst halt da alles "rauswerfen" was keine Miete zahlt.
Egal ob beim Import, beim Konvertieren oder so wie ich es gemacht habe.
Du kannst ja mal die Zeichenkette versuchen durch Suchen+Ersetzen rauszunehmen.
Code:
 €

Sorry, aber mehr kann ich dir net helfen.
So steht es ja auch in der offiziellen MS-Hilfe, wie verlinkt.
Die Zeichen müssen raus – egal wie – dann klappt es auch.
Wenn du es so machst wie ich dauert es 8 Sekunden.
 
Zurück
Oben Unten