TEXT関数で日付を文字列(yyyymmdd)に変換する方法
TEXT関数は日付の表示形式を自由にカスタマイズでき、多くの開発現場で活用されています。TEXT関数のサンプルは以下の通りです。
=TEXT(A1,"yyyymmdd")
TEXT関数の第一引数(A1)には変換したい日付が入力されているセルを指定し、第二引数(yyyymmdd)には表示形式を記述することで変換が実現できます。関数の引数設定で注意が必要なのは、表示形式を必ずダブルクォーテーションで囲む点です。
変換後のデータは文字列として扱われるため、日付としての計算や集計が出来なくなるため注意してください。セル内のデータ型を確認したい場合は、CELL関数を使用することで判別が可能になります。
# CELL関数でデータ型を確認する基本構文
=CELL("type", 対象セル)
# 数値型の場合
A1: 123
=CELL("type",A1)
# 結果: "v" (value = 数値を表す)
# 文字列型の場合
A2: "Hello"
=CELL("type",A2)
# 結果: "l" (label = 文字列を表す)
VBAマクロで日付を文字列(yyyymmdd)に変換する方法
大量のデータを効率的に変換したい場合、以下のようなVBAマクロを使用することで作業を自動化できます。
Sub ConvertDateFormat()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "S").End(xlUp).Row
For i = 2 To lastRow
Cells(i, "T").Value = Format(Cells(i, "S").Value, "yyyymmdd")
Next i
End Sub
最初にLong型の変数lastRowを宣言し、これを使って最終行数を管理します。
S列の最終行を特定するため、Rows.Countで最下行まで移動します。xlUpを使って上方向に検索することでデータが存在する最終行を取得できるため、処理が必要な範囲を正確に把握することができます。
実際の処理は2行目から開始されるのですが、理由として1行目がヘッダー行として使用されることを想定しているためです。For~Nextループを使用して、2行目から最終行まで順次処理を行います。
各行のS列(19列目)に格納されている日付データを"yyyymmdd"形式に変換し、その結果をT列(20列目)に格納します。ループ終了後は次の行の処理に移り、最終行まで継続することによって日付データの一括変換が完了します。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- 【Excel】条件に合うデータを抽出し別シートに自動抽出する方法3選
- パソコンのキーボード操作一覧表【Windows編】
- FeloとCanvaが連携!数分で高品質プレゼンを作成・編集可能に。具体的な使い方を詳しく解説
- テキストを音声化できるスマホアプリ「Reader by ElevenLabs」を使ってみた。
- ポータブルAIボイスレコーダー「PLAUD NotePin」の評判は?具体的な機能やPLAUD Noteとの違い