當區域設定需要逗號 (1,7) 時,處理帶點 (1.7) 的小數點貼上

當區域設定需要逗號 (1,7) 時,處理帶點 (1.7) 的小數點貼上

我有一個資料來源,其中點用作小數分隔符,即:1.49表示「一又幾乎一半」。無法改變它。

必須將此數字複製並貼上到 Excel 或 Calc 中的數位儲存格。該文件是公開的,任何人都可以獲得它(在這裡得到它)所以我無法控制使用者電腦/程式。

大多數使用者都是義大利人,使用 it_IT 語言環境,其中小數點以逗號分隔,即 :1,49表示「一又幾乎一半」(注意逗號而不是點)。

當義大利語區域設定使用者嘗試從資料來源複製並貼上1.49到他/她的數位儲存格時,Calc/Excel 會變得很糟糕,因為它無法將該數字識別為小數。

如果我在單元格上設定語言,一切都會正常......直到我關閉程式。如果我再次打開文檔,設定就會丟失並且不再起作用

在此輸入影像描述

所以,我的問題是:

  1. 無論使用者定義的區域設定如何,是否可以強制檔案/工作表的區域設定為“en_US”?
  2. 是否可以使語言屬性保持不變?
  3. 還有其他想法嗎? (請不要「要求您的使用者更改設定」)

如果可能的話,我寧願避免宏。

謝謝!

更新:我使用的是 Windows 10 x64,並且剛剛升級到 LibreOffice 5.4.4 x64。每個單元格的語言設定仍然沒有保存。我甚至不清楚是否是應該要保存或只是一個視圖設定(我猜是前者,因為當我這樣做時保存按鈕會亮起..)

答案1

我在 TurboLab.it 的朋友們建議的迄今為止最好的解決方案:

  1. 將設計用於接受使用者輸入的儲存格設定為“文字”
  2. 在附近的臨時單元格中,用逗號替換點,例如=SUBSTITUTE(E16;".";",")
  3. 對替換值進行數學計算
  4. 如果需要的話重新轉換它

最終文件,對於有興趣的人來說,可以在這裡找到

唯一的主要缺點是,只有當使用者的區域設定中「逗號」是小數點分隔符號(例如義大利語)時,這才有效。

HTH。

答案2

手動解決方案,每次貼上時都要重複:

複製貼上後;貼上的單元格被選中...
立即使用查找和替換,首先替換任何“。” (千位分隔符號)替換為“”(即“無”),然後將“,”(原始小數分隔符號)替換為“.”新的小數位分隔符號)。

您可能需要使用「選擇性貼上」來加 0 或乘以 1 才能將它們解釋為數字(==>將1或0放在任何儲存格中,複製它,然後執行「選擇性貼上」並選擇「新增值」或「乘以值」)

自動化:“錄製巨集”,執行上述操作,“停止錄製”。在那裡您也可以指派快捷鍵。

相關內容