Excel: как поместить литеральную точку в формат ячейки

всякий раз, когда я ставлю точку в пользовательский формат ячейки Excel будет интерпретировать его, как если бы я хотел десятичный разделитель в этом месте формата. Проблема в том, что десятичный разделитель изменяется в зависимости от локали. Вообще - то, я просто хочу точку.

вот пример формата, который не будет работать:

hh:mm:ss.000

(это не сработает, потому что если локаль использует что-то еще, кроме точки в качестве десятичного разделителя, то вы увидите что-то вроде 22:31:34,854 в форматированное значение)

я пробовал что-то вроде

hh:mm:ss.000

чтобы Excel понял, что я действительно хочу точку. Однако Excel 2010 отказывается принять это как допустимый формат. (Я где-то читал, что это способ экранировать символ в строке формата Excel)

ОБНОВЛЕНИЕ (И СВОЕГО РОДА ОТВЕТ)

официальная документация от Microsoft говорит, что вы можете получить формат для печати символ, который в противном случае был бы интерпретирован как метасимвол, помещая символ в двойные кавычки или экранируя его обратной косой чертой. Например, следующий формат #.##0. отформатирует 1234 как 1.234. на языке США. Хотя пример бессмыслен, это доказывает, что экранирование символа периода действительно работает.

так почему же он не будет работать при создании формата временной метки с миллисекундами ?

ответ кроется в том, что Microsoft предназначен описатель формата. Эти мета-символы (например,0 (ноль)) имеют различную интерпретацию в зависимости от их окружения. В некотором контексте 0 значит всегда иметь цифру в этом месте. Таким образом, размещение трех нулей в формате, как в #0.000, значит, в формате 12 as 12.000. Однако, когда три нуля помещаются после формата времени, они интерпретируются как значение "миллисекунды". Если мы избежим период до трех нулей после трех нулей не "рядом" спецификаторы формата времени и Excel путаются и больше не могут определить, имеем ли мы в виду" миллисекунды " или заполнитель цифр. Следовательно, у него нет выбора, кроме как отказаться от формата. По крайней мере, это моя интерпретация того, почему это не работает.

эта двусмысленность в формате meta chars действительно является корнем всего зла. Если вы сравниваете с различными языками программирования, я никогда раньше не видел, чтобы строки формата meta chars могли иметь различную интерпретацию в зависимости от контекста. В этом случае это означает, что нет никакого способа, что Excel может создать формат времени миллисекунды как он должен выглядеть. Вы просто должны принять, что период char может таинственным образом измениться на , иногда (в зависимости от настроек локали пользователя).

28
задан peterh
14.12.2022 1:04 Количество просмотров материала 2877
Распечатать страницу

1 ответ

боюсь, вам придется использовать формат ячейки "текст" и формулу, которая будет выводить текстовое значение с требуемыми разделителями

=LEFT(A1;2) & ":" & MID(A1;4;2) & ":" & MID(A1;7;2) & "." & RIGHT(A1;3)

Excel не обрабатывает миллисекунды в именованных форматах...

0
отвечен user2955677 2022-12-15 08:52

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх