[[20090529173255]] 『日付の書式』(黒猫) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『日付の書式』(黒猫)

 日付の表示を 5月29日 のように、数字も全角にしたいのですが、

 [DBNum3]m"月"d"日"

 という設定をすると、 2009/5/29 と入力すると 5月29日 と表示されますが、
 5/29 という入力では 1月0日 になってしまいます。

 5/29 のように、年をつけずに 月/日 の入力だけで、表示される月日の数字が
 全角になるような方法はないでしょうか。

 (黒猫)


 [DBNum3][$-411]m"月"d"日"
ではどうなるでしょうか。
(みやほりん)(-_∂)b


  みやほりんさん、ありがとうございます。おかげさまで、うまくいきました(^_^)

  ところで  [$-411]  という書式は始めて知りましたが、どういう働きを
 するのでしょうか?
  また、$-411 って何の数字なんでしょう?次にまたこの書式を使いたいとき、
 どんな数字だったか忘れてしまいそうです。

 (黒猫)


 過去ログです。(ROUGE)
 
[[20030521102113]]『[$-411]とはどういう意味』(ま)

  ロケールIDというのがあるんですね。で、日本語が 411 なので、[$-411] とすれば、
 単位や日付などが日本語の書式になる、ということは何となく分かりました。

 でも 5/29 みたいな 月/日 の書式が日本語特有のものとは思っていませんでした。
 [DBNum3] を付けなければ、5/29 と入力して、普通に 2009/5/29 と認識されていますし。

 何はともあれ、当面の問題は解決しました。ROUGEさん、ありがとうございました。

 (黒猫)


 >[DBNum3]m"月"d"日"
 >という設定をすると、 2009/5/29 と入力すると 5月29日 と表示されますが、
 >5/29 という入力では 1月0日 になってしまいます。
この現象についてすこし検証して見ました。
1月0日 と表示された時点での数式バーの値は「1900/1/0  4:08:17」
数値に直すと、「0.172413793103448」
これは「=5/29」の計算結果と一致します。
「[DBNum3]m"月"d"日"」を表示形式に設定すると、ツール>オプション>移行 で
日付区切り文字に「/」を使ったときには「式入力を変更する」にチェックを入れた
ときのような計算をします。
日付区切り文字に「-(半角ハイフォン)」を使ったとき(例 5-29)には、「5月
29日(2009/5/29のシリアル値)」と希望のように変換されます。
 
したがって、この場合の解決方法は
(1)[DBNum3][$-411]m"月"d"日" とロケール指定を含めた書式とする
(2)日付区切り文字に「-(半角ハイフォン)」を使う
 
(みやほりん)(-_∂)b


  1月0日 となったのは、5/29 を 5÷29 と計算し、それがシリアル値とされていた、
 ということだったのですね。 =5/29 のように = があれば数式ですが、[DBNum3]m"月"d"日"
 という書式では = がなくても 5/29 を数式とみなす、ということになるのですね。
 それを防ぐには [$-411] をつける必要がある、と。

 それでいて、 5-29 は引き算とはならないのですね。5−29 は引き算とすれば
 マイナスになり、シリアル値になり得ないので 月-日 と解釈するのかと思って、
 5-3 と入力してみましたが、これも 5月3日 になります。
 ( 試しに =5-3 と入力すると 1月2日になりました。)

  なんだか不思議な仕様です。

  そういえば、今は慣れてしまいましたが、エクセルを使い始めたころは、セル書式が
 日付でなく標準の時でも ○/○ や ○-○ が日付とみなせるときは日付と解釈する、
 という仕様に、違和感を覚えていました。

 1年1組 や 第1章第1節 みたいなデータを入れるところで 1−1 を入れると、
 勝手に 1月1日 にされてしまって、いらいらしていました。
 書式を文字列にしておくか、頭に ' を付けるかすればよい、というのはすぐに分かった
 のですが、「入力したものをそのままの形のデータにするため」に、何かの設定が
 必要である、という仕様がおかしいと思ったのです。

 いまでも、たとえば 1−1 と入力したとき

 ○ 書式が標準ならそのまま 1−1 となる
 ○ 日付として認識させたいのなら書式を日付にしておく

 というような仕様が素直であり、標準の書式の時に 1−1 を勝手に日付に変えて
 しまうのは、いらぬおせっかいだという気はします。

  思わず愚痴ってしまいましたが、みやほりんさん、検証ありがとうございました。
 何が起こっているのかということが少し分かりました。

 (黒猫) 


 >[DBNum3]m"月"d"日"
 >という書式では = がなくても 5/29 を数式とみなす、ということになるのですね。
 
[DBNum3]を指定したときにだけ「5/29 を日付として受け入れない」という仕様は
設計者としては考えないと思うので、Excelのバグではないかと推察します。
 
初期状態の場合、セルに入力した内容は文字列として受け入れられます。
「5/29」の入力は受け入れられたあと、日付のシリアル値に変換されるのが通常です。
式入力の変更オプションというよりも、分数として受け入れられるているという感じですね。
(みやほりん)(-_∂)b

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.