web-dev-qa-db-ja.com

Excelの日付から文字列への変換

Excelシートのセルには、次のようなDate値があります。

01/01/2010 14:30:00

その日付をテキストに変換し、そのテキストを日付とまったく同じものにしたいと思います。したがって、01/01/2010 14:30:00のDate値は01/01/2010 14:30:00のようになりますが、内部的にはTextになります。

Excelでそれを行うにはどうすればいいですか。

119
Chaitanya MSV
=TEXT(A1,"DD/MM/YYYY hh:mm:ss")

(24時間制)

=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM")

(標準時)

236
Kirill

これがVBAのアプローチです。

Sub change()
    toText Sheets(1).Range("A1:F20")
End Sub

Sub toText(target As Range)
Dim cell As Range
    For Each cell In target
        cell.Value = cell.Text
        cell.NumberFormat = "@"
    Next cell
End Sub

あなたがプログラミングなしで解決策を探しているならば、質問はSuperUserに動かされるべきです。

8
marg

これは別の選択肢です。 Excelの「テキストから列へ」ウィザードを使用します。 Excel 2007の[データ]タブにあります。

1つの列を選択している場合は、ファイルの種類と区切り記号のデフォルトが機能します。その後、列のデータ形式を変更するように求められます。テキストを選択するとテキスト形式になり、日付として保存されないようになります。

6
Adam Miller

コンテキストによっては、前もって '文字を使用しても機能しますが、CSVに保存して再度ロードした場合、これは不可能です。

'01/01/2010 14:30:00
4
Nick Fortescue

TEXT()式が機能しない

最も簡単な解決策は、貼り付ける前に、列をテキストに設定してメモ帳にコピーし、Excelに戻すことでした。

あるいは、このような式でも同じことができます。

=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)

2
jetpackdata.com

プログラミングを使用していない場合は、次の手順を実行します。(1)列を選択し(2)右クリックしてセルの書式設定を選択します。(3)[カスタム]を選択します。 :ss

1
Harihara Iyer

質問が発行された年についてはわかりません。今は古いかもしれません。それで、私の答えは私のポストの後の将来の同様の質問のためのもっと参考になることを期待します。

誰かが私がやろうとしているのと同じような答えをすでに出しているのかどうかはわかりません。しかし、私はそれを見たことがありません。ここで、私の答えはTEXTの代わりにCStrを使っています:

セルA1が日付を含み、VBAコードを使用しているとします。

Dim strDate As String

'Convert to string the value contained in A1 (a date)
strDate = CStr([A1].Value)

その後、文字列関数(MI​​D、LEFT、RIGHT、LEN、CONCATENATE(&)など)を使用して通常の文字列として操作できます。

Excel 2010では、 marg's answer スプレッドシートに含まれていた(インポートされた)データの一部に対してのみ機能しました。次の解決策はすべてのデータに対して機能しました。

Sub change()
    toText Selection
End Sub

Sub toText(target As range)
Dim cell As range
Dim txt As String
    For Each cell In target
        txt = cell.text
        cell.NumberFormat = "@"
        cell.Value2 = txt
    Next cell
End Sub
0
Archimaredes