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

lisanet

Aktives Mitglied
Dabei seit
05.12.2006
Beiträge
8.174
Reaktionspunkte
9.684
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.
 

lisanet

Aktives Mitglied
Dabei seit
05.12.2006
Beiträge
8.174
Reaktionspunkte
9.684
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.
 

fa66

Aktives Mitglied
Dabei seit
16.04.2009
Beiträge
18.417
Reaktionspunkte
8.494
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.
 

TPfanne

Aktives Mitglied
Thread Starter
Dabei seit
04.03.2006
Beiträge
1.405
Reaktionspunkte
32
@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.
 

fa66

Aktives Mitglied
Dabei seit
16.04.2009
Beiträge
18.417
Reaktionspunkte
8.494
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.
 

TPfanne

Aktives Mitglied
Thread Starter
Dabei seit
04.03.2006
Beiträge
1.405
Reaktionspunkte
32
@fa66: (zu #45): Die Daten kommen von AirBnB: da kann ich mir keine andere Codierung wünschen.
 

TPfanne

Aktives Mitglied
Thread Starter
Dabei seit
04.03.2006
Beiträge
1.405
Reaktionspunkte
32
@lisanet: Habe es probiert mit dem Bah; ohne Erfolg:
1667949012267.png
 

dodo4ever

Aktives Mitglied
Dabei seit
20.10.2004
Beiträge
2.099
Reaktionspunkte
2.795
Das ist echt eine harte Nuss, deine csv. :(
 

ruerueka

Aktives Mitglied
Dabei seit
04.04.2004
Beiträge
2.115
Reaktionspunkte
673
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:

ruerueka

Aktives Mitglied
Dabei seit
04.04.2004
Beiträge
2.115
Reaktionspunkte
673
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
 

TPfanne

Aktives Mitglied
Thread Starter
Dabei seit
04.03.2006
Beiträge
1.405
Reaktionspunkte
32
@ruerueka #52: Ja, das ist Excel für Mac, auf Ventura 13.0
1667983365316.png
 

dodo4ever

Aktives Mitglied
Dabei seit
20.10.2004
Beiträge
2.099
Reaktionspunkte
2.795
So jetzt lade ich mir das Teil auch mal runter – jetzt will ich es wissen 😃
 

dodo4ever

Aktives Mitglied
Dabei seit
20.10.2004
Beiträge
2.099
Reaktionspunkte
2.795
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: 25

V8-Driver

Aktives Mitglied
Dabei seit
23.05.2021
Beiträge
2.208
Reaktionspunkte
1.624
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.
 

dodo4ever

Aktives Mitglied
Dabei seit
20.10.2004
Beiträge
2.099
Reaktionspunkte
2.795
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
:)
 

V8-Driver

Aktives Mitglied
Dabei seit
23.05.2021
Beiträge
2.208
Reaktionspunkte
1.624
Oh. Ok.
 

TPfanne

Aktives Mitglied
Thread Starter
Dabei seit
04.03.2006
Beiträge
1.405
Reaktionspunkte
32
@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.
 

dodo4ever

Aktives Mitglied
Dabei seit
20.10.2004
Beiträge
2.099
Reaktionspunkte
2.795
@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.
 
Oben