8/10/2015

Excel。Slash。入力されている日付の”/”(スラッシュ)をなくして数値化したい。


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"),"/",""))

ですね。
あとは、オートフィルハンドルを使って数式をコピーしましょう。

このように、関数の組み合わせで、色んなことができる例の一つですので、
挑戦してみてはどうでしょうか?