Excel関数で文字列操作メモ(米国式日付文字列→日付形式)


Excel Excel2007

■例題
米国式(m/d/y)の次のような日付文字列をExcelの関数を使って日付形式に変換

5/28/2007

■方針
文字列を”/”で分割してそれぞれ月,日,年としてDATE関数に渡す

■実現例
B2に対象の文字列が入っているとする

// 5/28/2007
// 1個目のスラッシュの位置を取得
=FIND("/", B2, 1)
// 1個目のスラッシュまでを取得(月)
=LEFT(B2, FIND("/", B2, 1)-1)
// 5/28/2007
// 2個目のスラッシュの位置を取得
=FIND("/", B2, FIND("/", B2, 1)+1)
// 2個目のスラッシュまでを取得(日)
=MID(B2, FIND("/", B2, 1)+1, FIND("/", B2, FIND("/", B2, 1)+1)-FIND("/", B2, 1)-1)
// 5/28/2007
// 2個目のスラッシュから最後までを取得
=MID(B2, FIND("/", B2, FIND("/", B2, 1)+1)+1, LEN(B2)-FIND("/", B2, FIND("/", B2, 1)+1)+1)
// 2個目のスラッシュから最後までを取得して半角スペースを除去(年)
// 不要文字列の除去は必要に応じて
=SUBSTITUTE(MID(B2, FIND("/", B2, FIND("/", B2, 1)+1)+1, LEN(B2)-FIND("/", B2, FIND("/", B2, 1)+1)+1), " ", "")
// 2007/5/28
// 日付に変換
=DATE(SUBSTITUTE(MID(B2, FIND("/", B2, FIND("/", B2, 1)+1)+1, LEN(B2)-FIND("/", B2, FIND("/", B2, 1)+1)+1), " ", ""), LEFT(B2, FIND("/", B2, 1)-1), MID(B2, FIND("/", B2, 1)+1, FIND("/", B2, FIND("/", B2, 1)+1)-FIND("/", B2, 1)-1))

■まとめ
Excelの関数でSplit相当のことをやるのは面倒

■参考

  1. すばらしい。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>