web-dev-qa-db-ja.com

Excel数値形式:「[$ -409]」とは何ですか?

マクロシステムをガイドとして使用してExcelを自動化し、自動化によって何をすべきかを説明します。列を日付としてフォーマットすると、マクロは次のように列のNumberFormatを生成しました。

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

これが本当に何を意味するのかを解読しようとしています。 googlingから を収集し、角括弧内の値が "condition"であり、条件が次の場合:

$-409

満たされると、NumberFormatを使用します

m/d/yy h:mm AM/PM

そうでない場合は、NumberFormatを使用します

@

私が見つける参照は、数値形式「@」がテキストプレースホルダーであると言います

だから私の質問は:

  1. 条件付き$-409テストとは何ですか? -409(つまり、負の400)に対して何かを比較していますか? ドル記号とは何ですか?

  2. 条件が失敗し、Text Placeholder "at-sign"に頼る場合、何と表示されますか?

34
Ian Boyd

他の人が言ったことを明確にするには:

[$ -409]はlocaleコードで、16進数で指定されます。日付に特定のロケールコードを付加すると、さまざまな日時形式コードを使用したときに表示される内容が決まります。たとえば、日付を使用する

1973年11月28日11:28:13 AM

次の表の例として:

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

そのため、最終的には2つの異なるロケール識別子を持つ同じ形式のコードは、異なる結果をもたらします。

[$-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.orgarchive.is

38
Ian Boyd

NaafとGrant Wagnerは、あなたの$-409ので、不足している部分を埋めます。

有効な日付の代わりに文字列を入力した場合、セミコロンの後の「@」はExcelにデータの処理方法を指示します。 @は、単に「ここにテキストをそのまま配置する」ことを意味します。

ポイントを説明するいくつかの簡単な例:

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


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

テキストの書式設定オプションの詳細については、 この記事 を参照してください。

11
e.James

この投稿 それについて説明します。基本的に409は、「英語-米国」の ロケールID です。たとえば、[$-414]を使用した場合、日付は代わりに「ノルウェー語(ブークモール)」にフォーマットされます。

質問(2)の推測では、生データはフォーマットされるのではなく、文字列として表示されます。簡単なテストでこれを確認できます。

7
Naaff

_[$-409]_は条件ではないようです。ロケールコードのようです。

_[$-409]m/d/yy h:mm AM/PM;@_のCustom形式でセルをフォーマットする場合、日付を入力してください:_1/1/9_セル、Dateの_m/d/yy h:mm AM/PM_の形式とLocale(location)of English (United States)

形式を_[$-439]m/d/yy h:mm AM/PM;@_などに変更すると、セルの内容が別の言語で表示されます。

_@_についてはわかりません。正しいフォントまたはロケールが利用できない場合の日付の表示方法を示す場合があります。

Microsoftによって割り当てられたロケールID のリストです。

3
Grant Wagner

Excel 2007には、すべての一般的な形式を[$ -409]タイプの日付形式に変更するバグがあります。
通常、[$-409]の使用は問題ありません。
Microsoftがまだ提供しているバグの修正はありません。このバグは通常、Excelの共有ブックで発生します。

すべての一般的な形式が日付に変更されるという経験がある場合は、[セルスタイル]に移動して、[標準]を右クリックし、通常に変更して一般に戻します。ボックス内にNormalのフォーマットタイプが表示されます。これは通常、[$-409]の一部のバージョンではなく「一般」である必要があるため、バグです。

結局、ワークブックからフォーマットを完全に削除しなければならなくなりました。これを行うには、ワークブックの共有を解除する必要があります。ブックから「標準」セルタイプの下にある上記の形式[$ -409]を削除するには、セルを右クリックして[カスタム]を選択し、上記の[$ -409]形式タイプが見つかるまでスクロールして、一般と呼ばれるものに戻ります。

3
Jeff Taplett