[0]mitc - 日記
<前[4] [5]一覧 [6]次>

2009/06/27(土)Excel関数で文字列操作メモ(米国式日付文字列→日付形式)
雑記】miff
ExcelExcel2007
■例題
米国式(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]ログイン
[*]検索
adiary Version 2.21