私はExcelでこれを行う方法について約1時間探していました。
古いシステムから作成されたExcelファイルがあり、SQL Serverデータベースから情報を取得しています。情報をSQL Serverデータベースに入力し直し、日付を一致させたいと考えています。
カスタム形式を作成しようとしましたが、正しく作成したかどうかはわかりません。 mm/dd/yyyy
をyyyymmdd
に逆方向に移動したい場所をいくつか見つけましたが、役に立たなかった。
マイクロソフト製品で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に条件を追加して、空の場合は更新をスキップできます。
あなたが述べたようにデータの列(水平)または列(垂直)がありますか?
後者の場合、「列にテキスト」機能を使用して列全体を「in situ」に変換できます。
[列]> [データ]> [列へのテキスト]> [次へ]> [次へ]を選択し、[列のデータ形式]で[日付]を選択し、ドロップダウンから[YMD]
....それ以外の場合は、式を使用して変換できます
=TEXT(A1,"0000-00-00")+0
必要な日付形式でフォーマットする
dd/mm/yyyy
をmm/dd/yyyy
に変換するため
=DATE(RIGHT(a1,4),MID(a1,4,2),LEFT(a1,2))
これは必要最低限のバージョンです:
セルA1に、記述した形式の日付があるとします。例:19760210
。
次に、この式はあなたが望む日付を与えます:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).
私のシステム(Excel 2010)では、文字列またはフロートで動作します。
別の(手動) answer が見つかりました