Excel。入力されている日付の”/”(スラッシュ)をなくして数値化したい。
SUBSTITUTE関数とTEXT関数とVALUE関数
先日ちょっとした質問がありまして、日付の”/”(スラッシュ)をなくして、数字化して使いたいんだけど、どうしたらいいかなぁ~とのこと。
要するに、2015/8/1を201581としたいそうなんですね。
だったら最初から、そのように入力すればよかったのにね。
と思いつつも、ちょっと考えてみましたので、今回はそれを紹介いたします。
下記の表があります。
C列の誕生日をD列に”/”(スラッシュ)をなくして、数字化していきます。
実は、コレなかなか、厄介な処理でして、そもそも日付は、シリアル値ですので、
見た目は、日付ですが、中身は数値なわけです。
ですから単純に、”/”(スラッシュ)を削除することや置換することが出来ないのです。
そこで、【日付文字列】に変換する必要がありますので、TEXT関数が登場してきます。
では、D3をクリックして、まずは、SUBSTITUTE関数ダイアログボックスを表示しましょう。SUBSTITUTE関数は、文字を置換することが出来る関数ですね。
文字列には、TEXT関数を挿入します。それでは、文字列のボックス内をクリックして、
TEXT関数ダイアログボックスを表示しましょう。
値はC3を入力します。
表示形式は、【日付文字列】にしますので、”yyyy/mm/dd”と入力します。
“ (ダブルコーテーション)を忘れずに、これを付けることによって、【日付文字列】に変換できます。
そして、どっちみちならば、
2015/8/1を201581とするのではなく、
2015/8/1を20150801と桁数を0(ゼロ)を使って揃えたほうが汎用性もアップするので、
mm dd としております。
さて、まだ、SUBSTITUTE関数をつくっている途中でしたので、
SUBSTITUTE関数ダイアログボックスに戻りましょう。
文字列には、TEXT(C3,"yyyy/mm/dd") と入力されていますね。
検索文字列には、"/"
置換文字列には、””
と入力しましょう。
そして、OKボタンをクリックしましょう。
あとは、数式をオートフィルハンドルを使ってコピーしましょう。
これで、完成ですね。日付から”/”(スラッシュ)をカットして数値化してみました。
C3の数式は、
=SUBSTITUTE(TEXT(C4,"yyyy/mm/dd"),"/","")
となります。けど、これ数値化しましたが、
文字列なので、コードなどで使用するにはいいのですが、
この後に計算式に使いたいということになりますと、
文字列を数値に変えるVALUE関数を使う必要があります。
先程完成した数式にVALUE関数を加えてあげるだけですので、E3に数式を作ってみましょう。
数式は、
=VALUE(SUBSTITUTE(TEXT(C3,"yyyy/mm/dd"),"/",""))
ですね。あとは、オートフィルハンドルを使って数式をコピーしましょう。
このように、関数の組み合わせで、色んなことができる例の一つですので、
挑戦してみてはどうでしょうか?