55

Excelでこれを行う方法について約1時間検索しています。

古いシステムから作成された Excel ファイルがあり、SQL Server データベースから情報を取得しています。情報を SQL Server データベースに入力し直し、日付を一致させたいと考えています。

カスタム フォーマットの作成を試みましたが、それが正しく行われたかどうかさえわかりません。mm/dd/yyyy彼らが逆に行きたがっている場所をいくつか見つけましyyyymmdd たが、役に立ちませんでした。

私は Microsoft 製品で VBA を使用することに慣れていません。

変更する必要がある 2 つの別々の列があります。

(float)列全体をyyyymmddからmm/dd/yyyyにフォーマットする方法 (Date)

4

5 に答える 5

72

セルの横にある次のような数式を使用して、値を日付に変換できます。

=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 に条件を追加して、空白の場合は更新をスキップできます。

于 2012-10-24T19:19:54.773 に答える
27

あなたが述べたようにデータの行(水平)または列(垂直)がありますか?

後者の場合は、「テキストから列へ」機能を使用して、列全体を「その場で」変換できます-それを行うには:

列を選択 > データ > 列へのテキスト > 次へ > 次へ > 「列データ形式」で「日付」を選択し、ドロップダウンから「YMD」を選択 > 完了

....それ以外の場合は、次を使用して数式で変換できます

=TEXT(A1,"0000-00-00")+0

および必要な日付形式でフォーマットする

于 2012-10-24T19:33:55.183 に答える
6

に変換するdd/mm/yyyyためmm/dd/yyyy

=DATE(RIGHT(a1,4),MID(a1,4,2),LEFT(a1,2))
于 2013-01-31T02:25:48.300 に答える
6

ここにベアボーンバージョンがあります:

説明した形式でセル A1 に日付があるとします。例: 19760210.

次に、この式により、希望する日付が得られます。

=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).

私のシステム (Excel 2010) では、文字列またはフロートで動作します。

于 2012-10-24T19:20:32.340 に答える