[0]mitc - 日記
2009/06/27(土)Excel関数で文字列操作メモ(米国式日付文字列→日付形式)
■例題
米国式(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相当のことをやるのは面倒
■参考
[2]コメントを書く
■コメント(0件)
■トラックバック(0件)
[9]ログイン
[*]検索