Microsoft 365のExcelを使っているためご利用のバージョンでは使えない機能や関数がある可能性がありますのでご了承ください
やりたいこと
何かのシステムからデータ出力すると日付データがyyyymmdd形式で数値として出力されることがないですか?
これだと日付計算ができずに困るので数字→日付へ変換する方法を関数で実施する方法と標準機能を使う方法を紹介します
関数の場合
2パターンあるのでお好みですが個人的にはTEXTとDATEVALUEの方がわかりやすい気がしてオススメ
↓の画像はA列は数式を文字列で、B列はその結果を表示しています
TEXTについて
TEXT自体はセルの表示形式を見た目だけじゃなくて値として反映する単純なものですが、この表示形式は意外と奥が深いので興味ある方は調べてみると意外な発見があるかも
今回のポイントは普通に”/”を指定するとエラーになるので”!”でエスケープしてあげるか、日付形式は”/”繋ぎ以外にも”-“繋ぎでも大丈夫なところ
“-“繋ぎはプログラミングやっている人にはむしろこっちの方がしっくりきそう
DATEVALUEについて
TEXTでは日付に形式に変わっているようで文字列になっているだけで加算・減算・比較などができずに意味がなく、日付形式に変えてあげるために日付に見える文字列を日付に変換するDATEVALUEを使う
MSさん、yyyymmdd形式も日付型で認識してください
DATE・LEFT・MID・RIGHTについて
これは説明不要でしょうか・・
LEFTで左4桁の年部分、MIDで中2桁の月部分、RIGHTで右2桁の日部分を取得してDATE関数にはめてあげればうまく日付に変換できる
標準機能の場合
標準機能と言ってきましたが具体的には”区切り位置”です
きっと脳死で完了ボタンを押していた3画面に出力時のデータ形式を指定することができまして日付を選んであげると日付型に変換されて出力されます
データ上書きしたくない場合は表示先(出力先)を元データのセルからずらせばOK
やり方としては関数よりスマートな気がするんですが、手作業なのが玉に瑕
あとがき
“区切り位置”で変換できることは私の周囲には知ってる人がいないレア機能でした
1度きりの作業ならオススメの手法です
コメント