Числовой формат Excel: что такое «[$ -409]»? - PullRequest
34 голосов
/ 21 мая 2009

Я автоматизирую Excel, используя систему макросов как руководство к тому, что я должен делать с помощью автоматизации. Когда я форматирую столбец как дату, макрос генерирует NumberFormat для столбца:

[$-409]m/d/yy h:mm AM/PM;@

Я пытаюсь расшифровать, что это на самом деле означает. я получаю из поискового запроса , что значения в квадратных скобках являются "условием" , и что если условие:

$-409

будет выполнено, тогда он будет использовать NumberFormat

m/d/yy h:mm AM/PM

если нет, то используется NumberFormat

@

Ссылки, которые я нахожу, говорят, что числовой формат "@" это Текстовый заполнитель

Итак, мои вопросы:

  1. Что такое условное $ - 409 тестирование? Сравнивает ли это что-то с -409 (то есть минус четыреста девять ), и если да, то с каким знаком доллара он сравнивается?

  2. Если условное условие не выполнено и оно обращается к заполнителю текста"at-sign", что оно показывает как?

Ответы [ 5 ]

38 голосов
/ 22 мая 2009

Чтобы уточнить, что сказали другие:

[$ -409] - это код locale , заданный в шестнадцатеричном формате. Префикс даты с определенным кодом локали определяет, что будет отображаться при использовании различных кодов формата даты и времени. Например, используя дату

28 ноября 1973 г. 11:28:13

в качестве примера для следующей таблицы:

Format Code  409 (English United States)  804 (Chinese PRC)
===========  ===========================  =================
m            11                           11
mm           11                           11
mmm          Nov                          十一月
mmmm         November                     十一月
d            27                           27
dd           27                           27
ddd          Mon                          二
dddd         Monday                       星期二
y            73                           73
yy           73                           73
yyy          1973                         1973
yyyy         1973                         1973
AM/PM        AM                           上午

Таким образом, в итоге один и тот же код формата с двумя разными идентификаторами локали дает разные результаты:

[$-409]mmmm dd yyyy  h:mm AM/PM
November 27 1973  11:28 AM


[$-804]mmmm dd yyyy  h:mm AM/PM
十一月 27 1973  11:28 上午

Поскольку поиск списка кодов локали похож на удаление зубов, вот несколько ссылок:

Константы и строки идентификатора языка (первичный источник, archive.is )

Коды локали Windows, отсортированные по локали ( archive.is )

Коды локали Windows, отсортированные по локали ( archive.org , archive.is )

11 голосов
/ 22 мая 2009

Нааф и Грант Вагнер аккуратно ответили на вопрос о вашем $-409, поэтому я просто заполню пропущенную часть:

'@' после точки с запятой указывает Excel, как обрабатывать данные, если вместо правильной даты ввести строку. @ просто означает «поместить любой текст здесь, дословно».

Несколько быстрых примеров, иллюстрирующих эту мысль:

=TEXT("abc","hh:mm;@")
abc


=TEXT("abc","hh:mm;@@")
abcabc

См. в этой статье для подробного описания параметров форматирования текста.

7 голосов
/ 22 мая 2009

Этот пост объясняет это. В основном 409 - это идентификатор локали для «Английский - США». Например, если вы используете [$-414], тогда вместо даты будет указано «Норвежский (букмол)».

Я предполагаю, что для вопроса (2) необработанные данные будут представлены в виде строки, а не отформатированы. Быстрый тест подтвердит это.

3 голосов
/ 14 июля 2010

В Excel 2007 имеется ошибка, которая изменяет все общие форматы на формат даты типа [$ -409].
Обычно использование [$ -409] является нормальным форматом.
Исправление для ошибки еще не предоставлено Microsoft. Эта ошибка обычно возникает в больших и общих книгах Excel.

Если вы когда-либо сталкивались с тем, что все ваши общие форматы меняются на даты, попробуйте перейти к стилям ячеек, щелкнув правой кнопкой мыши на «Обычный» и изменив нормальный обратно на общий. В поле будет указано тип формата для Normal. Это ошибка, так как обычно она должна быть «общей», а не версией [$ -409].

В итоге мне пришлось полностью удалить формат из рабочей книги. Для этого рабочая тетрадь не должна быть общедоступной. Чтобы удалить формат [$ -409], указанный выше для типа ячейки «Нормальный», из книги, щелкните правой кнопкой мыши ячейку, выберите «Пользовательский», прокручивайте, пока не найдете указанный выше тип формата [$ -409], затем удалите все форматы. вернется к тому, что называется генерал.

3 голосов
/ 22 мая 2009

[$-409] не является условием. Кажется, это код локали.

Если я отформатирую ячейку с Настраиваемым форматом [$-409]m/d/yy h:mm AM/PM;@, введите дату: 1/1/9, затем просмотрите форматирование для ячейки, я вижу формат Дата m/d/yy h:mm AM/PM с Языком (местоположение) из English (United States).

Если вы измените формат на что-то вроде [$-439]m/d/yy h:mm AM/PM;@, вы увидите содержимое ячейки на другом языке.

Я не уверен насчет @. Это может указывать, как отображать дату, если правильный шрифт или локаль недоступны.

Вот список идентификаторов локали, назначенных Microsoft .

...