"8桁の数値で入力された日付" は「日付(シリアル値)」として使えません
- "DATE関数"と"MID関数"を使って、「日付様式」に変換する
- 2."DATE関数"と"MID関数"を組み合わせた数式を使って、8桁の数値を「日付形式」に変換する
- ※ 関数のダイアログを使って、「ネスト(入れ子)構造」を入力する方法
- ネスト(入れ子)構造を入力
"DATE関数"と"MID関数"を使って、「日付様式」に変換する
8桁の数値で表現された「日付」を、Excelで認識できる日付の様式に変換する方法は複数あります。
- "TEXT関数" を使う
- "DATE関数" と "MID関数" を使う
- "取得と変換" の機能を使う(※ 日付形式に直接変換)
(その1)では、"TEXT関数" を使って日付様式に変換する方法を説明しました。
今回は、"DATE関数" と "MID関数" を組み合わせた数式を使って変換する方法を説明します。
2."DATE関数"と"MID関数"を組み合わせた数式を使って、8桁の数値を「日付形式」に変換する
"DATE関数" の引数「年・月・日」それぞれの値を、"MID関数" で求めることで8桁の数値を「日付形式」に変換します。
"MID関数" で、「8桁の数値」の中から「年」の部分を抜き出す
MID関数を使って、8桁の数値の「年」の部分、"2020" の「1文字目から4文字分(1~4)」を抽出します。
"MID関数" で、「8桁の数値」の中から「月」の部分を抜き出す
MID関数を使って、8桁の数値の「月」の部分、"01" の「5文字目から2文字分(5~6)」を抽出します。
"MID関数" で、「8桁の数値」の中から「日」の部分を抜き出す
MID関数を使って8桁の数値の「日」の部分、"01" の「7文字目から2文字分(7~8」を抽出します。
"DATE関数"の引数「年・月・日」に"MID関数"で求めた「値」を入れる
"DATE関数" の引数に "MID関数" を使って、「ネスト(入れ子)構造」にして、 "DATE関数の引数" 「年」「月」「日」に、"MID関数" を使って抽出した「値」を入れます。
※ 関数のダイアログを使って、「ネスト(入れ子)構造」を入力する方法
「ネスト(入れ子)構造」の入力は複雑ですが、関数のダイアログ「 fx 」を使うことにより簡単に入力することができます。
「関数の挿入」ダイアログ「 fx 」」は分かりにくい部分もありますが、用意されたボックスに「引数」を入れるだけで「カッコ」は、自動で入力されるので「カッコの数で悩む必要がない」ので"ネスト構造の数式" を入力する際に便利です。
「関数の挿入」ダイアログで、"DATE関数"を選択
この「関数の挿入」を使う上でネックになるのは、使いたい関数を選ぶのが面倒なことです、「関数の分類」で絞り込むことはできるのですが、この分類方法が独特で一発でたどり着くことができません。
慣れてくれば分かるのですが、使いたい関数の名前が分かっている場合は、関数の「1文字目」を索引のように使うことができるのでそこから探す方法が簡単です。
「D」で始まる、「DATE関数」を選択
関数の「名前」が分かっている場合は"関数の分類" を「すべて表示」にしてから、「頭の1文字」を入れれば、その「1文字」から始まる部分にジャンプします。
※ 1回使った関数は「最近使った・・・』に表示されます。
- 数式(関数)を入力するセルを選択
- 「fx」ボタンをクリック
- 「関数の挿入」ダイアログの"関数の分類" で「すべて表示」を選択
- ※ "関数名のボックス" 内のどれか1つの関数をクリックして選択してから、「D」のボタンをクリック(※ 日本語入力は解除)すると「Dから始まる関数」が表示されるので、その中から「DATE関数」を選択
- 「OK」ボタンをクリック
※ この操作で "関数名のボックス" にカーソルを移します
※ この操作をすることで、確実に選択した頭文字の関数が表示されます
ネスト(入れ子)構造を入力
「関数の挿入」ダイアログを使う方法は「ネスト構造」の入力に対応していないと思われがちですが、"名前ボックス"を使うことで、ネスト構造の入力が可能になります。
ネスト構造の数式は「()」の扱いが難しいので、この「関数の挿入」を使う方法はとても有効です。
"名前ボックス" を使って、関数を切り替える
「名前ボックス」は、セルやセルの範囲に「名前」を付けるだけでなく、このボックスを使って関数を切り替えることができます。
- "DATE関数" の関数の引数のダイアログの「年」のボックスにカーソルを置く
- 名前ボックスの、ラジオボタン「▼」をクリック
- 「名前ボックス」の中から、「MID関数」を選択
- 関数の引数ダイアログが「MID関数」に切り替わるので、変換対象のセル「B3」を選択
- 8桁の数値で「日」の部分が始まる位置「1」を入力
- 「日」の部分の長さ「4」を入力
- 「OK」ボタンをクリック
※ 「名前ボックス」に、「MID関数」がない場合は「その他の関数」から探します
一度使用した「関数」は、名前ボックスに表示されますが、表示されない場合は「その他の関数」をクリックすると開く「関数の挿入」ダイアログで探します。
- 名前ボックスのラジオボタン「▼」をクリック
- 「その他の関数」を選択すると、「関数の挿入」ダイアログが開く
- 「DATE関数」を選択
- 「OK」ボタンをクリック
引数「月」を入力するために、"DATE関数" に戻る
DATE関数の引数「月」を入力するために、「関数の挿入」ダイアログを "DATE関数" に戻します。
少し難しく感じるかもしれませんが、慣れてしまえば簡単です。
"数式バー" に表示されている数式の「切り替えたい関数の部分」をクリックすれば、ダイアログが切り替わります。
- "MID関数" のダイアログで、最後の引数「文字数」を入力
- そのまま「数式バー」に表示されている数式の「DATE」の部分をクリック
"関数の引数" のダイアログが「DATE関数」に戻ります
数式バーの「DATE」の部分をクリックすることで、「関数の引数」ダイアログが「DATE関数」に切り替わります。
引数「年」を入力したときと同様に、「名前ボックス」で「MID関数」を選択してMID関数の「月」の引数を入力します。
- "DATE関数" の引数「月」の部分にカーソルを移動
- 「名前ボックス」で"MID関数" を選択
MID関数の引数「月」を入力
「年」の時と同様に、"MID関数" に切り替えて引数「月」を入力します。
MID関数の引数「日」を入力
"MID関数" に切り替えて引数「日」を入力します。
DATE関数とMID関数のネスト構造が完成しました
フラッシュフィルを使って、"数式を下方向にコピー" します。
- 数式が入力された「セル」にカーソルを置き、"右下" に表示される「フィルボタン」をクリック
このように、DATE関数とMID関数を組み合わせた数式を使うことで、「8桁の数値」で表された「日付」をExcelで認識できる「日付形式」に変換することができます。
(その1)と(その2)では、関数を使って「日付形式」に変換する方法を説明しました。
(その3)では、「取得と変換」を使って変換する方法を説明します。
「取得と変換」は外部アドイン(プログラム)のPoweQueryを使って「変換ルール」を作成して変換する方法です。
この方法を使えば、一度ルールを作成しておけば「元のデータ(表)」から自動的に変換されるようになるので、毎月同じ作業がある場合は便利な方法です。
- "DATE関数"と"MID関数"を使って、「日付様式」に変換する
- 2."DATE関数"と"MID関数"を組み合わせた数式を使って、8桁の数値を「日付形式」に変換する
- ※ 関数のダイアログを使って、「ネスト(入れ子)構造」を入力する方法
- ネスト(入れ子)構造を入力