エクセルでのやり方を1時間ほど検索してみました。
古いシステムから作成されたExcelファイルがあり、SQL Serverデータベースから情報を引き出しています。また、SQL Serverデータベースに情報を入力し、日付を一致させたいと思っています。
カスタムフォーマットを作成しようとしましたが、正しく作成できたかどうかはわかりません。 mm/dd/yyyy」から「yyyymmdd」に変更したいという意見をいくつか見つけましたが、参考になりませんでした。
私はMicrosoft製品のVBAを使うことに慣れていませんが、そうでなければこの作業は簡単にできるはずです。
変更する必要のある2つの別々の列があります。
列全体を (float)`yyyymmdd から (Date)`mm/dd/yyyy にフォーマットするにはどうしたらよいでしょうか?
セルの横にある次のような数式を使って、値を日付に変換することができます。
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
A1は変換する必要のあるフィールドです。
あるいは、このコードをVBAで使用することもできます。
Sub ConvertYYYYMMDDToDate()
Dim c As Range
For Each c In Selection.Cells
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
'Following line added only to enforce the format.
c.NumberFormat = "mm/dd/yyyy"
Next
End Sub
修正したいセルをハイライトして、コードを実行するだけです。
コメントでRJohnsonが述べているように、このコードは選択したセルの1つが空の場合にエラーになることに注意してください。c.valueに条件を追加して、空白の場合は更新をスキップすることができます。
あなたが述べたように、データはROWS(横)なのか、COLUMNS(縦)なのか?
後者であれば、"Text to columns"の機能を使って、その場で列全体を変換することができます。
Select column > Data > Text to columns > Next > Next > "column data format"で"Date"を選択し、ドロップダウンから"YMD"を選択 > Finish。
.... 他にも、以下のように数式で変換することもできます。
=TEXT(A1,"0000-00-00")+0
で変換し、必要な日付形式でフォーマットします。