- ベストアンサー
エクセルのTEXT関数の使い方
例えば、"19880701"というような数値を"1988/07/01"というような日付形式に変換したいのですが、そのためにTEXT関数をあえて使用するとすれば、どのような書き方になるのでしょうか?一応「=TEXT(D2,"yyyy/mm/dd")」と書いたのですが、"#VALUE!"というエラーが出てしまいます。どうすればよいでしょうか?ちなみにLEFT関数やMID関数は使わないとします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再びmaruru01です。 TEXT関数の第2引数は、セルの表示形式のユーザー定義と基本的には同じです。 したがって「19880701」と入力したセルの表示形式を、ユーザー定義で、 「0"/"00"/"00」 とするのと同じことになります。 ただし、TEXT関数の第2引数は、「""」で括って文字列で指定しなければいけません。 したがって、表示形式の中にさらに「""」を付けることが出来ないので、代わりに「!」を使用しています。 TEXT関数の第2引数の中で「!」は、その直後の文字をそのまま表示するという記号です。 つまり、4・5桁の間と6・7桁の間に無理やり「/」を挿入しているだけです。 あと、「yyyy/mm/dd」のような日付の表示形式は、データが日付のシリアル値であって初めて有効になります。 現在のセルの値「19880701」は、数値なので、正確には表示出来ません。 ただし、実際はこの数値は、0以上2958466未満まではエラーにはなりません。 (ただし、とんでもない日付になります。) ここで、2958465という数値は日付のシリアル値としては、 「9999/12/31」 を表し、Excelで扱える日付の上限になります。 今回の「19880701」は、この値を越えているので、エラーになります。
その他の回答 (2)
- laputart
- ベストアンサー率34% (288/843)
TEXT関数は数値は日付形式をテキスト混在の 形式に変換する為の物なので 元データが日付でないとエラーになります。 詳しく解説しているページを見つけましたので 参考にされたらいかがですか。 http://homepage1.nifty.com/kenzo30/ex_kisotyu/ex_ks_tyukyuxb6.htm#文字列操作関数(TEXT関数)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 データがA1にあるとすると、 =--TEXT(A1,"0!/00!/00") として、表示形式を「日付」にして下さい。 なお、年はともかく、月と日は必ず2桁でないといけません。
補足
たしかに出来ました!すごい!!でもこれってどういう意味なんですか??【TEXT(A1,"0!/00!/00") 】
お礼
そういうことだったんですかぁ~...。「"」の中に挿入されている「"」は「!」を使用するというのは目から鱗でした。ご返答ありがとうございました。