- ベストアンサー
エクセルでの日付の数値変換
エクセルで8ケタ構成の日付(例20140101)を入力しているのですが#########という表示になってしまいます。他シートの日付データとVLOOKUPをしたいので数値に変換したいのですが方法をご教示頂けませんでしょうか。講師の方に教わっていただいているときに「▽マークが出てくるのでそこから数値に変換を選んでください」というようなことを言われたのですがどうすれば▽マークが出てくるのか分からずにいます。お手数ですが宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>エクセルで8ケタ構成の日付(例20140101)を入力しているのですが#########という表示になってしまいます。 入力値が日付ではない事が原因です。 20140101 は日付ではなく単なる数値データです。 日付を入力するのであれば、 2014/1/1 の様に「/」を間に入れた形で入力する様にして下さい。 Excelでは日付や時刻を扱う際にシリアル値という概念が使われています。 これは1900/1/1の0:00:00を数値の1として、その基点から経過した日数で日時を表したものです。 例えば、1900/1/2の12:00は、1900/1/1の0:00:00から1日半経過した日時ですから、1に1.5を加えた2.5が1900/1/2の12:00を表すシリアル値となります。 このやり方でExcelが扱う事の出来る日付けは西暦9999年12月31日までであり、1900/1/1から数えて9999/12/31は2958464日後ですから、9999/12/31を表すシリアル値は2958465になります。 つまり、2958466以上の数値はExcelでは日付として扱う事は出来ない訳です。 ですから、20140101を入力しますと、Excelでは日付として扱う事が出来ないため、「日付として扱う事が出来ない」という事を表すために、「#」が連続しているだけの表示となる訳です。 ですから、日付を入力する際には 2014/1/1 の様に「/」を間に入れた形で入力する様にする必要がある訳です。 尚、関数を入力した場合や、コピー&貼り付けを行った場合などであれば兎も角、単なる値を入力した際には▽マークが表示される事は無い筈で、 >「▽マークが出てくるのでそこから数値に変換を選んでください」 というのは、何か別の事に関する話を質問者様が勘違いされておられるのではないかと思います。 それから、もしも何かの都合で「20141/1」や「2014/01/01」、「H26.1.1」等といった日付を入力する事が許されておらず、どうしても「20140101」の様な日付ではない数値の形式でしか入力出来ない場合には、次の様にして下さい。 今仮に、「20140101」といった類の8桁の数値が入力されているセルがA1セルであるものとした場合、VLOOKUP等の他の関数の検索値として扱う際には、 VLOOKUP(A1,セル範囲,列) の様な形式ではなく、 VLOOKUP(TEXT(A1,"####-##-##")+0,セル範囲,列) 或いは VLOOKUP(TEXT(A1,"0000-00-00")+0,セル範囲,列) の様にして下さい。(その際には8桁の数値を入力するセルの書式設定の表示形式を[標準]或いは[数値]に設定して下さい)
その他の回答 (4)
- bunjii
- ベストアンサー率43% (3589/8249)
>エクセルで8ケタ構成の日付(例20140101)を入力しているのですが#########という表示になってしまいます。 入力したセルの表示形式は"yyyy/mm/dd"に指定しているのでしょうか? 表示形式が標準の場合は日付を意味する値ではないので8桁の正数として表示されるはずです。 西暦2014年1月1日はシリアル値の41640になりますので、表示形式が"yyyy/mm/dd"のセルにそのシリアル値(41640)を入力すれば2014/01/01と表示されるでしょう。 あなたが入力した値は日付のシリアル値の最大値(9999/12/31=2958465)を超えているため#########と桁あふれの表示になります。 西暦の日付を入力するときは2014/1/1または2014/01/01のように年/月/日の区切り記号を入れてください。
- keithin
- ベストアンサー率66% (5278/7941)
- mshr1962
- ベストアンサー率39% (7417/18945)
>#########という表示になってしまいます。 セルの書式設定の配置で、「縮小して全体を表示する」にすればいいのでは? >他シートの日付データとVLOOKUPをしたいので数値に変換したいのですが 日付(シリアル値)に変換ということでしょうか?A1に8ケタ構成の日付があるとして =VLOOKUP(TEXT(A1,"0000!/00!/00")*1,他シート!範囲,2,FALSE) とすれば日付のシリアル値での検索になります。
- m_and_dmp
- ベストアンサー率54% (987/1817)
表示形式の問題だと思います。書式→セル→セルの表示形式 で、「標準」を選択してみてください。 ######### は、数値データを表示するのにセルの幅が足りないときに表示されます。(文字列ならセル幅が足りなくても### にはなりません。) 一時的にセルの幅を広げて、どのように表示されているかチェックしてください。現在設定されている表示形式が分かります。
お礼
詳しくご説明いただきありがとうございました。早速やってみます!