Behandeln Sie das Einfügen von Dezimalstellen mit Punkt (1.7), wenn das Gebietsschema Komma erwartet (1,7).

663
Dr. Gianluigi Zane Zanettini

Ich habe eine Datenquelle, bei der der Punkt als Dezimaltrennzeichen verwendet wird, dh: 1.49"Eins und fast die Hälfte". Kann es nicht ändern.

Diese Nummer muss in eine numerische Zelle in Excel oder Calc kopiert werden. Die Datei ist öffentlich und jeder kann sie bekommen ( hier abrufen ), so dass ich keine Kontrolle über den Benutzer-PC / das Programm habe.

Die meisten Benutzer sind Italiener mit einem it_IT-Gebietsschema, wobei Dezimalzahlen durch Kommas getrennt sind, dh: 1,49"Eins und fast die Hälfte" (beachten Sie das Komma anstelle des Punktes).

Wenn der Benutzer mit italienischem Gebietsschema versucht, 1.49aus der Datenquelle in seine numerische Zelle zu kopieren, wird Calc / Excel Banane, da er die Zahl nicht als Dezimalzahl erkennt.

Wenn ich die Sprache in der Zelle eingestellt habe, funktioniert alles ... bis ich das Programm schließe. Wenn ich das Dokument erneut öffne, geht die Einstellung verloren und funktioniert nicht mehr

enter image description here

Also meine Frage:

  1. Kann das Gebietsschema der Datei / des Arbeitsblatts unabhängig von dem benutzerdefinierten Gebietsschema auf "en_US" gesetzt werden?
  2. Ist es möglich, das Sprachattribut festzusetzen?
  3. Irgendeine andere Idee? (Nein "Bitte den Benutzer bitten, die Einstellung zu ändern", bitte)

Ich möchte lieber Makros vermeiden, wenn möglich.

Vielen Dank!

Update : Ich habe Windows 10 x64 und habe gerade ein Upgrade auf LibreOffice 5.4.4 x64 durchgeführt. Die Spracheinstellung pro Zelle wird immer noch nicht gespeichert. Es ist nicht einmal klar, mich, wenn es angeblich gespeichert werden oder wenn es nur eine Ansichtseinstellung ist (wäre die ehemalige erraten, da die Taste leuchtet sparen, wenn ich es tun ..)

3
Interessant. Ich habe mit Calc 5.3.6.1 unter Linux bestätigt, dass die Zellsprache vergessen wird. RonJohn vor 6 Jahren 1
Sie haben das Format XLS verwendet. Excel verfügt nicht über eine "Sprache" -Eigenschaft für eine Zelle. Wenn Sie sie in xls speichern, werden diese Informationen gelöscht. Das native Berechnungsformat von ods verfügt über diese Eigenschaft. Sie können also zwei Zellen mit unterschiedlichen Spracheinstellungen verwenden: 1,49 und 1,49. Das Ergebnis ist jedoch je nach dem Zellenformat, das die Funktion SUM enthält, 2,98 oder 2,98. In der ods-Zelle zum Kopieren und Einfügen schädigt die Datei beim Schließen nicht die Zelleneinstellungen. Solltest du das ods-Format verwenden? Wahrscheinlich nicht, da Excel-Benutzer die Meldung erhalten, dass der Dateiinhalt nicht lesbar ist. Es ist also sicherlich interessant, wenn es dafür eine "einfache" Lösung gibt. wlod vor 6 Jahren 1

2 Antworten auf die Frage

0
Hannu

Manuelle Lösung, die bei jedem Einfügen wiederholt wird:

Nach dem Kopieren & Einfügen; Die eingefügten Zellen werden ausgewählt ...
Verwenden Sie sofort Suchen und Ersetzen, und ersetzen Sie zunächst alle "." (Tausendertrennzeichen) mit "" (dh "nichts"), dann ersetzen Sie "," (ursprüngliches Dezimaltrennzeichen) durch "." das neue Dezimaltrennzeichen).

Sie müssen möglicherweise "Einfügen Spezial" verwenden, um 0 hinzuzufügen oder mit 1 zu multiplizieren, damit diese als Zahlen interpretiert werden (==> Platz 1 oder 0 in einer beliebigen Zelle, kopieren Sie sie, führen Sie dann "Einfügen Spezial" aus und wählen Sie "Hinzufügen" aus Wert "oder" Wert multiplizieren ") .

Automatisierung: "Makro aufzeichnen", oben "Stop". Dort haben Sie auch die Möglichkeit, eine Tastenkombination zu vergeben.

0
Dr. Gianluigi Zane Zanettini

Meine Freunde bei TurboLab.it haben die bisher beste Lösung vorgeschlagen :

  1. Festlegen der Zelle, die die Benutzereingabe als "Text" akzeptiert
  2. Ersetzen Sie in einer temporären Zelle in der Nähe den Punkt durch ein Komma mit etwas wie =SUBSTITUTE(E16;".";",")
  3. Berechnen Sie den ersetzten Wert
  4. Bei Bedarf erneut konvertieren

Die endgültige Datei für Interessenten ist hier verfügbar .

Der einzige große Nachteil ist, dass dies nur funktioniert, wenn der Benutzer über ein Gebietsschema verfügt, in dem "Komma" als Dezimaltrennzeichen verwendet wird, z. B. Italienisch.

HTH.