どの関数を使う?会計から抽出した日付を編集する

この記事は経理をしている方・税理士向けの記事です。

会計ソフトからデータを取得すると

会計ソフトからEXCELのデータを抽出して、このデータを加工し、表やグラフを作成する機会というのは頻繁にあるのではないでしょうか。いざ、データを加工しようと、EXCELのデータとして抽出すると、意外に多いのが日付がEXCELの日付形式で抽出されないパターンです。年月日の区切り文字が/(スラッシュ)ではなく、.(ピリオド)になっていたりと、加工しなければならない状態になっています。

逆にEXCELの日付形式で抽出されていて、年と月と日を別々にデータとして取得したい場合もあると思います。

さらには、これらの年月日を使って、西暦から和暦に変換することもあると思います。

ここでは、年月日として想定されるデータ形式を挙げ、このデータから年と月と日を別々に取得するのにどのようなEXCELの関数を利用すればいいのか記載したいと思います。

説明の際に、該当するデータはセルのA1(複数の場合はB1,C1…)に入っているものとして説明していますので、適宜変更してください。

年月日がEXCELの日付形式の場合

2019/7/20と日付形式でまとめて一つのセルに抽出されている場合は

=YEAR(A1)
=MONTH(A1)
=DAY(A1)

を利用すると、上から順に年、月、日の値を取得することができます。

西暦を和暦に変換したい場合は?
西暦を和暦に変換したい場合は、元号ごとに次の計算を行います。
平成:西暦-1988 (例:2018年-1988=平成30年)
令和:西暦-2018 (例:2019年-2018=令和1年)

年月日の桁数が決まっている場合

20190720と桁数が決まっていて一つのセルに抽出されている場合は

=MID(A1,1,4)
=MID(A1,5,2)
=MID(A1,7,2)

と、MID関数を利用しましょう。この関数は該当する文字列を切り出す関数で、ひとつめの,(カンマ)の後ろが文字列を切り出す開始位置、ふたつめの,(カンマ)の後ろが文字数を指定します。上から順に年、月、日の値を取得することができます。

MID関数以外にも
上記ではすべてMID関数で対応していますが、年と日については、次のような関数を利用しても簡単に取得することができます。
年:=LEFT(A1,4)
日:=RIGHT(A1,2)
LEFT関数は前から何文字切り取る
RIGHT関数は後ろから何文字切り取る
かを指定することで年と日を取得することができます。

年月日の区切り文字が/(スラッシュ)以外の場合

2019.7.20とまとめて一つのセルに抽出されている場合は少しやっかいです。

月と日だけになったら、月と日の区切り文字となっている「.」の位置を探す必要があります。
そこで利用するのが

=FIND(”.”,A1)

です。この関数は指定する文字列(ここでは.(ピリオド))が何文字目か取得することができます。

あわせて、文字数をカウントするための関数

=LEN(A1)

を利用します。

①年と月日に区分する。

さきほど、紹介したMID関数やLEN関数とあわせて使用することで年と月日に区分することができます。

年については次のように関数を利用することで取得することができます。

=MID(A1,1,FIND(“.”,A1)-1) もしくは =LEFT(A1,FIND(“.”,A1)-1)
月日については次のように関数を利用することで取得することができます。
=MID(A1,FIND(“.”,A1)+1,LEN(A1))
月日は、関数が複雑にならないように、いったん別のセルに値を格納します。

2019.7.20の場合は、
上段 2019
下段 7.20
となります。

②月日を区分する。

月日(上の例では7.20)を月と日に区分します。

月については次のように関数を利用することで取得することができます。

=MID(B1,1,FIND(“.”,B1)-1) もしくは =LEFT(B1,FIND(“.”,B1)-1)
日については次のように関数を利用することで取得することができます。
=MID(B1,FIND(“.”,B1)+1,LEN(B1)) もしくは =RIGHT(B1,LEN(B1)-FIND(“.”,B1))

その他

文字列から数値への変換

上記の「年月日の桁数が決まっている場合」や「年月日の区切り文字が/(スラッシュ)以外の場合」で記載したとおりに処理して、やっと、年と月と日に区分できたのですが、残念ながらこのままだと数値として認識してくれません。文字列から数値へ変換する必要があります。

=VALUE(A1)

この関数を使用して、はじめて数値として認識してくれます。

数値から文字列へ

逆に数値から文字列に変換する場合は、

=TEXT(A1,”00”)

を利用します。,(カンマ)の後ろで桁数を指定しており、数値を2桁で表示(1の場合は01)するように指定しています。さらにいくつかの文字列をつなげたい場合は「&」を使います。