目次
Excelの関数を使って、テキストを日付に、数値を日付に変換する方法と、数式を使わない方法でテキスト文字列を日付にする方法を解説します。 また、数値を日付形式に素早く変更する方法についても紹介します。
Excelは唯一のアプリケーションではないので、.csvファイルや他の外部ソースからExcelワークシートにインポートされた日付を扱うこともあります。 その場合、日付はテキスト項目としてエクスポートされます。 日付のように見えても、Excelはそれをそうとは認識しないのです。
Excelでテキストを日付に変換する方法はたくさんありますが、このチュートリアルではそれらをすべて網羅し、データ形式や、数式か数式でないかの好みに合わせて、最も適したテキスト-日付変換の手法を選択できるようにすることを目的としています。
通常のExcelの日付と "テキストの日付 "を区別する方法
Excelにデータをインポートする際、日付の書式設定に問題が生じることがよくあります。 インポートされた項目は、ユーザーには通常のExcelの日付のように見えるかもしれませんが、日付のように動作しません。 Microsoft Excelはそのような項目をテキストとして扱うため、表を日付順に正しく並べ替えることができず、また、数式、ピボットテーブル、チャート、その他の日付を認識するExcelツールでそれらの「テキストの日付」を使用することはできません。
ある項目が日付なのかテキスト値なのか、判断するのに役立つサインがいくつかあります。
日付 | テキスト値 |
|
|
Excelで数値を日付に変換する方法
テキストを日付に変換するExcelの関数はすべて結果として数値を返すので、まず数値を日付に変換することについて詳しく見てみましょう。
ご存知のように、Excelは日付と時刻を通し番号で記憶しており、セルの書式設定で強制的に数字を日付として表示させるだけです。 例えば、1-Jan-1900は1番、2-Jan-1900は2番、1-Jan-2015は42005として記憶されます。 Excelが日付と時刻を記憶する方法の詳細については、Excel日付形式をご覧ください。
Excelで日付を計算するとき、さまざまな日付関数が返す結果は、日付を表す通し番号であることが多い。 たとえば、=TODAY()+7が今日から7日後の日付ではなく、44286といった数字を返しても、数式が間違っているわけではない。 単に、セルの書式に 一般 または テキスト 筈なのに 日付 .
このようなシリアル番号を日付に変換するには、セル番号のフォーマットを変更するだけです。 これは、単に 日付 において 番号形式 のボックスが表示されます。 ホーム タブで表示します。
デフォルト以外の書式を適用する場合は、通し番号のあるセルを選択し、Ctrl+1キーを押しながら セルのフォーマット ダイアログで 番号 タブを選択します。 日付 で、希望する日付形式を選択します。 タイプ をクリックし、OKをクリックします。
そうです、とても簡単です!Excelの定義済みの日付書式よりも高度なものが必要な場合は、Excelでカスタム日付書式を作成する方法をご覧ください。
頑固な数字が日付に変わるのを拒否する場合は、Excelの日付形式が機能しない - トラブルシューティングのヒントを参照してください。
Excelで8桁の数字を日付に変換する方法
10032016のような8桁の数字で入力された日付を、Excelが認識できる日付値(2016/10/03)に変換する必要がある場合、非常によくある状況です。 この場合、セルの形式を単に日付に変更してもうまくいかず、結果として######が表示されることになります。
このような数値を日付に変換するには、DATE関数とRIGHT、LEFT、MID関数を組み合わせて使用する必要があります。 残念ながら、元の数値はさまざまな形式で入力できるため、すべての場面で通用する万能式を作ることはできません。 例えば、次のようなものです。
番号 | フォーマット | 日付 |
10032016 | ドドドドドドドドドドドドドドドドドドドドドドドドドドドドド | 2016年3月10日 |
20160310 | yyyymmdd | |
20161003 | 年年年 |
ともかく、このような数値を日付に変換する一般的な方法を説明し、いくつかの計算式の例を挙げてみることにする。
手始めに、Excelの日付関数の引数の順番を覚えておきましょう。
DATE(年、月、日)そこで、元の数値から年、月、日を抽出し、Date関数の対応する引数として与える必要があります。
例えば、数値10032016(セルA1に格納)を日付2016/3/10に変換する方法を説明します。
- を抽出します。 年 下4桁なので、RIGHT関数で下4文字を選びます: RIGHT(A1, 4).
- を抽出します。 月 3桁目と4桁目なので、MID関数を用いてMID(A1, 3, 2)とします。 ここで、3(第2引数)は開始番号、2(第3引数)は抽出する文字数です。
- を抽出します。 日 最初の2桁なので、LEFT関数で最初の2文字を返します:LEFT(A2,2)。
最後に、上記の材料をDate関数に埋め込めば、Excelで数値を日付に変換する数式ができあがります。
=date(right(a1,4), mid(a1,3,2), left(a1,2))
次のスクリーンショットは、これともう2つの数式を実際に動かしているところです。
上のスクリーンショット(6行目)の最後の数式に注目してください。 元の数値-日付(161003)には、年を表す2文字(16)しか含まれていません。 そこで、2016年の年を得るために、次の数式を使って20と16を連結します: 20&LEFT(A6,2) もしこれをしなければ、日付関数はデフォルトで1916を返します。これは、Microsoftがまだ20世紀に住んでいるかのようでちょっと変ですね :)
注:この例で示した数式は、以下の条件を満たしていれば正しく動作します。 全数 は、日付に変換する場合は 同形 .
Excelでテキストを日付に変換する方法
Excelのファイル内で日付のテキストを見つけたとき、そのテキストを通常のExcelの日付に変換して、計算式で参照できるようにしたいと思うことがほとんどでしょう。 Excelではよくあることですが、このタスクに取り組む方法はいくつかあります。
Excel DATEVALUE関数 - テキストを日付に変更する
があります。 データバリュー は、テキスト形式の日付を、Excel が日付として認識する通し番号に変換する関数です。
ExcelのDATEVALUEの構文は非常に簡単です。
DATEVALUE(date_text) つまり、テキスト値を日付に変換する式は、次のように簡単です。 =DATEVALUE(A1)
ここで、A1 は日付がテキスト文字列として格納されているセルである。
ExcelのDATEVALUE関数は、テキストの日付を通し番号に変換するため、先ほど説明したように、その数字にDate形式を適用して、日付のように見せる必要があります。
以下のスクリーンショットは、Excel の DATEVALUE 数式を実際に使用しているところです。
Excel DATEVALUE関数 - 覚えておくべきこと
DATEVALUE関数で文字列を日付に変換する場合、以下の点に注意してください。
- テキスト文字列の時間情報は、上の6行目と8行目にあるように無視されます。 日付と時間の両方を含むテキスト値を変換するには、VALUE関数を使用します。
- テキストの日付で年が省略された場合、ExcelのDATEVALUEは、上記の4行目で示したように、コンピュータのシステムクロックから現在の年を選択します。
- Microsoft Excelは1900年1月1日以降の日付を保存しているため、それ以前の日付でExcelのDATEVALUE関数を使用すると、#VALUE!エラーが発生します。
- DATEVALUE関数は、数値を日付に変換したり、数値のように見えるテキスト文字列を処理することはできませんので、ExcelのVALUE関数を使用する必要があります。
Excel VALUE関数 - テキスト文字列を日付に変換する
ExcelのVALUE関数は、DATEVALUE関数に比べて汎用性が高く、日付や数値のように見える文字列を数値に変換し、簡単に好きな日付形式に変更することができます。
VALUE関数のシンタックスは以下のとおりです。
値(テキスト) どこ テキスト
は、数値に変換したいテキストを含むセルへのテキスト文字列または参照である。
ExcelのVALUE関数は、以下の両方の処理を行うことができます。 にちじ のように、後者は10進数に変換されます。
テキストを日付に変換するための数学的演算
VALUEやDATEVALUEといった特定のExcel関数を使う以外にも、簡単な数学的操作を行うことで、Excelに日付指定のテキスト変換をさせることができます。 必要な条件は、ある操作の際に べからず 年月日を変更する (ちょっと難しそうに聞こえますが、次の例で簡単に理解できます。
セルA1にテキストの日付があると仮定して、以下のいずれかの数式を使用し、セルに日付の書式を適用することができます。
- 追加です。
=A1 + 0
- 掛け算。
=A1 * 1
- 部です。
=A1 / 1
- 二重否定。
=--A1
上のスクリーンショットにあるように、数学演算によって日付(2行目と4行目)、時間(6行目)、テキストとしてフォーマットされた数値(8行目)を変換できます。 時には、結果が自動的に日付として表示され、セルのフォーマットを変更する手間がかかりません。
カスタムデリミター付きテキスト文字列を日付に変換する方法
テキストの日付にフォワードスラッシュ(/)またはダッシュ(-)以外の区切り文字が含まれていると、Excelの関数が日付として認識できず、#VALUE!エラーが返されます。
これを解決するには、Excelの 検索と置換 を使えば、デリミタをスラッシュ(/)に一括で置き換えることができます。
- 日付に変換したい文字列をすべて選択します。
- Ctrl+Hで開きます。 検索と置換 のダイアログボックスが表示されます。
- にカスタムセパレーター(この例ではドット)を入力します。 を探す フィールドにスラッシュを、そして に置き換えてください。
- をクリックします。 すべて交換
DATEVALUE関数やVALUE関数は、文字列を日付に変換するのに問題ありません。 同じように、スペースやバックスラッシュなど、他のデリミタを含む日付も修正することができます。
数式で解決したい場合は、ExcelのSUBSTITUTE関数を使用して、代わりに すべて交換 で区切り文字をスラッシュに変更します。
テキスト文字列がA列にあると仮定すると、SUBSTITUTE式は次のようになる。
=substitute(a1, ".", "/")
A1 はテキストの日付、"." は文字列を区切るデリミタです。
では、このSUBSTITUTE関数をVALUEの式に埋め込んでみましょう。
=value(substitute(a1, ".", "/"))
そして、テキスト文字列を日付に変換させる。すべて1つの計算式でできる。
このように、ExcelのDATEVALUE関数とVALUE関数は非常に強力ですが、どちらも限界があります。 例えば、以下のような複雑なテキスト文字列を変換しようとした場合。 2015年01月01日(木) 幸いなことに、このタスクを処理できる非定式的なソリューションがあり、次のセクションでその詳細な手順を説明します。
Text to Columnウィザード - 数式なしでテキストを日付に変換する方法
数式を使わないタイプの方なら、昔からあるExcelの機能である テキストをカラムに 例1のような単純な日付のテキストだけでなく、例2のような複数パートのテキスト文字列にも対応しています。
例1.単純なテキスト文字列を日付に変換する場合
日付に変換したい文字列が以下のような場合。
- 1.1.2015
- 1.2015
- 01 01 2015
- 2015/1/1
計算式も、エクスポートもインポートも必要なく、5つのステップを踏むだけで簡単にできます。
この例では、01 01 2015(日、月、年はスペースで区切る)のようなテキスト文字列を日付に変換することになります。
- Excelのワークシートで、日付に変換したいテキスト入力の列を選択します。
- に切り替えてください。 データ タブで表示します。 データツール をクリックします。 テキストをカラムに
この例では、「01 02 2015」(月日年)という書式のテキスト日付を変換しているので、以下のように選択します。 MDY をドロップダウン・ボックスから選択します。
これで、Excel は文字列を日付として認識し、自動的にデフォルトの日付形式に変換して、セルに右寄せで表示します。 日付形式を変更するには、通常の方法で セルのフォーマット ダイアログを表示します。
注 テキストからカラムへ ウィザードが正しく動作するためには、すべてのテキスト文字列が同じフォーマットである必要があります。 例えば、いくつかのエントリーが次のようなフォーマットになっている場合、そのエントリーは 日/月/年 形式である一方、他のものは 月/日/年 のような場合、間違った結果を得ることになります。
例2.複雑な文字列を日付に変換する場合
日付がマルチパートのテキスト文字列で表現されている場合、例えば、以下のようになります。
- 2015年01月01日(木)
- 2015年01月01日 15時
もうちょっと力を入れて、両方使う必要があります。 テキストをカラムに ウィザードとExcelのDATE関数を使用します。
- 日付に変換する文字列をすべて選択します。
- をクリックします。 テキストをカラムに ボタンをクリックします。 データ タブで表示します。 データツール のグループです。
- のステップ1において テキストから列への変換ウィザード を選択します。 区切られた をクリックします。 次のページ .
- ウィザードのステップ2で、文字列が含む区切り記号を選択します。
例えば、""のようなカンマやスペースで区切られた文字列を変換する場合、""のようなカンマやスペースで区切られた文字列を変換します。 2015年01月01日(木) " の場合は、カンマとスペースの両方の区切り記号を選択する必要があります。
を選択することも意味があります。 連続したデリミタを1つとして扱う " オプションを使用すると、データに余分なスペースがある場合、それを無視することができます。
そして最後に、ご覧ください。 データプレビュー ウィンドウを開き、文字列が正しく列に分割されていることを確認し、次に 次のページ .
- ウィザードのステップ3で、データプレビューセクションのすべてのカラムに 一般 表示されない場合は、列をクリックし 一般 の下に 列のデータ形式 のオプションがあります。
注意:このメニューは選択しないでください。 日付 というのも、各列には1つの要素しか含まれていないので、Excelはこれが日付であることを理解できないからです。
不要な列がある場合は、その列をクリックし カラムをインポートしない(スキップ)。
元のデータを上書きしたくない場合は、列を挿入する場所を指定します - 左上のセルのアドレスを 目的地 のフィールドを使用します。
完了したら 仕上がり ボタンをクリックします。
上のスクリーンショットにあるように、曜日を含む最初の列をスキップして、他のデータを3つの列に分割しています(in. 一般 の形式)を使用し、セルC2から始まるこれらの列を挿入します。
関連項目: Excelで数式を表示する方法次のスクリーンショットはその結果で、A列に元のデータ、C、D、E列に分割後のデータが表示されています。
- 最後に、DATE式を使って日付部分を結合する必要があります。 ExcelのDATE関数の構文は、次のとおりです。
私たちの場合
年
はE列で日
はD列で、これらについては問題ありません。ではそう簡単にはいきません。
月
幸いなことに、Microsoft Excelには、月の名前を月の数字に変換するMONTH関数があります。=MONTH(serial_number)
MONTH関数が日付を扱っていることを理解させるために、次のように記述します。
=MONTH(1&C2)
ここで、C2には月の名称が含まれる。 1月 この場合、"1&" が追加され、日付が連結されます ( 1月1日) MONTH関数で対応する月番号に変換できるようにするためである。
そして、今度はMONTH関数を埋め込んでみましょう。
月
私たちのDATE式の引数です。=DATE(F2,MONTH(1&D2),E2)
これで、複雑な文字列が無事に日付に変換されました。
ペーストスペシャルを使ったテキストの日付のクイック変換
単純な文字列の範囲を素早く日付に変換するには、次のような仕掛けがあります。
- 空のセルをコピーする(セルを選択し、Ctrl + Cキーを押す)。
- 日付に変換したいテキスト値のある範囲を選択します。
- 選択範囲を右クリックし ペースト・スペシャル を選択し 追加 において ペースト・スペシャル のダイアログボックスが表示されます。
これは、Excelに、テキストの日付にゼロ(空のセル)を追加するように指示したものです。 これを可能にするために、Excelはテキスト文字列を数値に変換し、ゼロを追加しても値が変わらないので、まさに望んだ通りの日付の連番が得られます。 通常、数値を日付形式に変更する場合は、以下の方法で行います。 セルのフォーマット ダイアログを表示します。
特殊貼り付け機能について詳しく知りたい方は、「Excelで特殊貼り付けをする方法」をご覧ください。
年号が2桁のテキスト日付の修正
Excelの最新バージョンでは、データの明らかなエラー、あるいはExcelがエラーとみなすものを見つけることができます。 このような場合、セルの左上隅にエラーインジケータ(小さな緑の三角)が表示され、セルを選択するとエクスクラメーションマークが表示されます。
感嘆符をクリックすると、データに関連するいくつかのオプションが表示されます。 2桁の年の場合、Excelはそれを19XXまたは20XXに変換するかどうか尋ねます。
この種の項目が複数ある場合は、エラーのあるセルをすべて選択し、感嘆符をクリックして適切なオプションを選択すれば、一挙に修正することができます。
Excelでエラーチェックをオンにする方法
通常、Excelのエラーチェックはデフォルトで有効になっています。 念のため、以下のボタンをクリックしてください。 ファイル > オプション > 計算式 までスクロールしてください。 エラーチェック セクションを開き、以下のオプションにチェックが入っているかどうかを確認します。
- バックグラウンドでのエラーチェックを有効にする 下 エラーチェック ;
- 2桁の数字で表される年号を含むセル 下 エラーチェックのルール .
Excelでテキストを日付に変更する簡単な方法
このように、Excelでテキストを日付に変換することは、ワンクリックでできる簡単な操作ではありません。 もし、さまざまな使用例や数式で混乱しているのであれば、簡単でわかりやすい方法をご紹介しましょう。
Ultimate Suiteをインストールし(無料体験版はこちらからダウンロードできます。 Ablebits Tools タブ(70以上の素晴らしいツールを含む2つの新しいタブがあなたのExcelに追加されます!)を見つけてください。 テキストから日付へ ボタンをクリックします。
テキストの日付を通常の日付に変換するには、次のようにします。
- 文字列のあるセルを選択し テキストから日付へ ボタンをクリックします。
- を指定します。 デートオーダー (日、月、年)を選択したセルに表示します。
- 含めるか含めないかを選択 時 を変換後の日付で表示します。
- クリック コンバート .
これで完了です!変換結果は隣の列に表示され、ソースデータは保持されます。 何か問題が発生した場合は、結果を削除して別の日付順で再試行するだけです。
ヒント:日付だけでなく時間の変換も選択したが、結果的に時間単位が欠落している場合は、日付と時間の両方の値を示す数値フォーマットを必ず適用してください。 詳しくは、カスタム日付および時間フォーマットの作成方法をご覧ください。
この素晴らしいツールについてもっと知りたい方は、ホームページの「Text to Date for Excel」をご覧ください。
以上が、Excelでテキストを日付に変換し、日付をテキストに変更する方法です。 好みのテクニックを見つけることができたでしょうか。 次回は、逆の作業に取り組み、Excelの日付をテキスト文字列に変換するさまざまな方法を探ります。 読んでいただきありがとうございます。来週もよろしくお願いします。