3

Я использую Excel 2013 на немецкой версии Windows 8.1. Когда я форматирую число как число, в ячейках или на диаграмме, оно отображается с запятой в виде десятичного знака (например, «3,1415»). Вместо этого я хотел бы отобразить число с точкой, как в английской (США) локали.

Я пытался числовой формат с явным языком, как

[$-409]0.0;@

но это не сработало. Тем не менее, он работает для дат ([$-409]MMM JJ;@).

Как я могу отформатировать числа с точкой? Я ищу наиболее неинвазивное решение, поэтому изменение языкового стандарта системы не вариант. Смена языка на основе книги или листа будет в порядке, но я бы предпочел что-то, что работает с отдельными ячейками или элементами диаграммы. Я не хочу менять данные, поэтому функция substitute не будет работать.

3 ответа3

1

Как обойти: в расширенных настройках вы можете выбрать, следует ли использовать системные разделители, и определить свои собственные.

1

Если у вас есть ячейка, которая отображает пи как:

3,1415

Выберите эту ячейку и запустите этот маленький макрос:

Sub Reformat()
    Dim st As String
    st = ActiveCell.Text
    st = Chr(34) & Replace(st, ",", ".") & Chr(34)
    ActiveCell.NumberFormat = st & ";;;"
End Sub

Дисплей станет:

3.1415
0

У меня та же проблема: номер находится в формате «-34 754,27», и я хочу, чтобы он был переведен в число в английском языке, поэтому «-34754,27» или «-34,754,27»

Я использую функцию build it NUMBERVALUE:

= NUMBERVALUE(ТЕКСТ, DECIMAL_SEPARATOR, GROUP_SEPARATOR)

Это вернет число в текущей локали, интерпретируя текст в соответствии с разделителями, которые вы предоставляете.

В качестве альтернативы, вы можете пойти по пути грубой силы и выполнить поиск и замену этих разделителей самостоятельно - проблема с этим подходом, помимо того, что он не элегантный, заключается в том, что вы в конечном итоге получите текст, который вам потребуется для дальнейшего перевода в число и вы вернетесь к NUMBERVALUE, так что лучше используйте это вместо этого и в одиночку:

(тест в этом примере [@Suma])

= REPLACE(ЕСЛИОШИБКА (ЗАМЕНИТЬ ([@ Сума], FIND (" " [@ Сума], 1), 1", "), [@ Сума]), FIND (",", ЕСЛИОШИБКА (ЗАМЕНИТЬ ([@ Сума], FIND (" " [@ Сума], 1), 1", "), [@ Сума]), 1), 1,".")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .