今回はVBAではなく、Excelで日付を表示形式のまま文字列に変換する方法をご説明します。
日付は日付として入力してから表示形式を文字列に変換した場合、数値(シリアル値)に変換されるだけで、表示形式のまま文字列には変換できません。
表示形式を維持して文字列に変換するには、簡単な方法としては「TEXT関数」を使用するか、テキストエディタ(メモ帳)を使用する2つの方法です。
それぞれの方法を順にご説明します。
1.TEXT関数を使用する方法
まず、TEXT関数を使用する方法です。
TEXT関数は次のように記述します。
「=TEXT(セル,”表示形式”)」
文字列に変換したいセルを指定して、表示形式を「””」で括って指定します。
次のようなA列に日付の入力されたデータを、B列に文字列として表示させるには以下のように数式を記述します。
数式はB1に「=TEXT(A1,”yyyy/mm”)」と記述して、B10までコピーしました。
算出後、必要に応じてコピーして値のみで貼り付けする事で値となります。
表示形式一覧
全てではないですが、サンプルの表示形式です。
日付
日付 | 表示形式 |
2019/1/1 | yyyy/m/d |
2019/01/01 | yyyy/mm/dd |
1/1 | m/d |
01/01 | mm/dd |
20190101 | yyyymmdd |
2019年1月1日 | yyyy年m月d日 |
2019年01月01日 | yyyy年mm月dd日 |
平成31年1月1日 | ggge年m月d日 |
平成31年01月01日 | ggge年mm月dd日 |
時間
時間 | 表示形式 |
01:10:00 | hh:mm:ss |
1:10:5 | h:m:s |
1時10分 PM | h時m分 AM/PM |
25:10 | [h]:mm |
文字列と結合する方法
TEXT関数で文字列に変換した日付や時間は文字列と結合する事も可能です。
普通に結合しようとすると、こちらもシリアル値に変換されてしまいます。
上記のような結合も、TEXT関数を使うことで結合出来ます。
数式を「=TEXT(A1,”yyyy/mm”)&”です。”」と記述しています。
2.テキストエディタを使用する方法
テキストエディタ(メモ帳)を使用する方法です。
こちらは単純にコピーペーストする簡単な方法です。
手順としてはまずExcelに次のように通常通り日付を入力します。
こちらのデータを表示形式を変更してB列に文字列として入力します。
表示形式の変更方法
このデータを表示したい形式に変更します。
変更したいデータ範囲を選択、もしくは列を選択して右クリックから「セルの書式設定」を選択します。
もしくは、「ホームタブ」を選択して「数値」の表示形式から「その他の表示形式」を選択します。
表示形式の「ユーザー定義」を選択して、表示形式を指定します。
今回は「yyyy/mm」とします。
すると「yyyy/m/d」形式から「yyyy/mm」形式に変更されました。
この段階ではまだ見た目が「2019/01」となっているだけで、データの中身は「2019/1/1」となっています。
文字列に変換する
文字列として出力したい範囲の書式設定を「文字列」に変更します。
今回はB列に出力しますので、B列を変更します。
上記同様に変更したいデータ範囲を選択、もしくはB列を選択して右クリックから「セルの書式設定」を選択します。
もしくは、「ホームタブ」を選択して「数値」の表示形式からその他の表示形式を選択します。
一覧から文字列を指定します。
準備はできましたので、A列のデータをコピーしてテキストエディタ(メモ帳)を開いて貼り付けます。
再度テキストエディタをすべてコピーしてExcelのB列に貼り付けます。
これで表示形式ではなく文字列として「yyyy/mm」の形式で入力する事ができました。
テキストエディタからコピーして貼り付ける際に、必ず貼り付け先の範囲を文字列に変換してください。
変換し忘れるとExcelの自動変換機能によって、日付に自動で変換されてしまいます。
説明すると長く、工数も多く感じますが慣れると簡単にできます。