web-dev-qa-db-fra.com

Format des nombres Excel: qu'est-ce que "[-409 $]"?

j'automatise Excel, en utilisant le système de macros comme guide pour ce que je dois faire grâce à l'automatisation. Lorsque je formate une colonne en tant que date, la macro a généré un NumberFormat pour que la colonne soit:

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

j'essaie de déchiffrer ce que cela signifie vraiment. je suppose de googler , que les valeurs entre crochets sont un "condition", et que si la condition:

$-409

est rencontré, il utilisera le NumberFormat

m/d/yy h:mm AM/PM

sinon, il utilise le NumberFormat

@

Les références que je trouve disent que le format numérique "@" est un espace réservé de texte

Mes questions sont donc:

  1. Quel est le test conditionnel $ - 409 ? Est-ce en comparant quelque chose avec - 409 (ie négatif quatre cent neuf), et si oui, quel est le signe dollar c'est comparer avec?

  2. Si le conditionnel échoue et qu'il a recours à l'espace réservé au texte "at-sign", que signifie-t-il?

34
Ian Boyd

Pour clarifier ce que les autres ont dit:

Le [$ -409] est un code local , donné en hexadécimal. Préfixer une date avec un certain code de paramètres régionaux détermine ce qui s'affiche lorsque vous utilisez les différents codes de format d'heure de date. Par exemple en utilisant la date

28 novembre 1973 11:28:13

comme exemple pour le tableau suivant:

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                           上午

Donc, au final, le même code de format avec deux identifiants de paramètres régionaux différents, donne des résultats différents:

[$-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 上午

Étant donné que trouver une liste de codes régionaux équivaut à se tirer des dents, voici quelques références:

Constantes et chaînes d'identificateur de langue (Source principale, archive.is )

Codes de paramètres régionaux Windows triés par paramètres régionaux ( archive.is )

Codes de paramètres régionaux Windows triés par paramètres régionaux ( archive.org , archive.is )

38
Ian Boyd

Naaf et Grant Wagner ont parfaitement répondu à la question sur votre $-409, je vais donc juste remplir la partie manquante:

Le '@' après le point-virgule indique à Excel comment traiter les données si vous entrez une chaîne au lieu d'une date valide. Le @ signifie simplement "placer n'importe quel texte ici, textuellement".

Quelques exemples rapides pour illustrer ce point:

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


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

Voir cet article pour une description détaillée des options de mise en forme du texte.

11
e.James

Cet article l'explique. Fondamentalement, 409 est le ID de paramètres régionaux pour "Anglais - États-Unis". Si vous avez utilisé [$-414], par exemple, la date serait alors formatée pour "Norvégien (Bokmål)" à la place.

Ma conjecture pour la question (2) est que les données brutes seraient présentées sous forme de chaîne au lieu d'être formatées. Un test rapide vérifierait cela.

7
Naaff

[$-409] Ne semble pas être une condition. Il semble que ce soit un code régional.

Si je formate une cellule avec un format personnalisé de [$-409]m/d/yy h:mm AM/PM;@, Saisissez une date: 1/1/9, Puis affichez le formatage pour la cellule, je vois un format Date de m/d/yy h:mm AM/PM avec un Locale (location) de English (United States).

Si vous changez le format en quelque chose comme [$-439]m/d/yy h:mm AM/PM;@, Vous verrez le contenu de la cellule dans une autre langue.

Je ne suis pas sûr de @. Il peut indiquer comment afficher la date si la police ou les paramètres régionaux appropriés ne sont pas disponibles.

Voici la liste des ID de paramètres régionaux attribués par Microsoft .

3
Grant Wagner

Il existe un bogue dans Excel 2007 qui modifie tous les formats généraux en un format de date de type [$ -409].
Normalement, l'utilisation de [$ -409] est un format correct.
Il n'y a pas encore de correctif pour le bogue fourni par Microsoft. Ce bogue se produit normalement dans les classeurs Excel volumineux et partagés.

Si vous avez déjà l'expérience où tous vos formats généraux changent en dates, essayez d'aller dans les styles de cellule, en cliquant avec le bouton droit sur Normal et en modifiant la normale en général. Il vous indiquera dans la boîte le type de format pour Normal. Il s'agit du bogue car il devrait généralement être "général" et non une version de [$ -409].

J'ai fini par devoir supprimer complètement le format du classeur. Le classeur doit être non partagé pour ce faire. Pour supprimer le format [$ -409] identifié ci-dessus sous le type de cellule "Normal" du classeur, cliquez avec le bouton droit sur une cellule, sélectionnez Personnalisé, faites défiler jusqu'à ce que vous trouviez le type de format [$ -409] identifié ci-dessus, supprimez puis tous les formats reviendra à ce qu'on appelle le général.

3
Jeff Taplett