今回は、これまでに解説してきたコマンドを組み合わせて「和暦」を「西暦」に変換するときの具体例を紹介していこう。「文字」と「数値」が混在しているデータを計算する場合の例として参考にして頂ければ幸いだ。
「年」を数値として分離する
今回は、これまでに解説してきたコマンドの復習も兼ねて、パワークエリを使った具体的な処理の例を紹介していこう。
まずは、以下の図に示したデータ表を見て頂きたい。この表にある「入社年度」のデータは、「平成27年」や「平17年」、「H14」のように表記が統一されていない和暦になっている。もちろん、和暦の元号は「平成」だけではない。「令和」や「昭和」の元号も含まれており、これらも表記方法がデータごとに変化している。さらに、年度が「西暦」で記されているデータもある。
このままでは「入社年度」でデータを並べ替えられないので、これらの表記を「西暦」に換算する処理をパワークエリで実現してみよう。「和暦」を「西暦」に換算するときは、元号に応じて以下のような計算を行えばよい。
・「昭和」の場合 ………… 1925年を加算する
・「平成」の場合 ………… 1988年を加算する
・「令和」の場合 ………… 2018年を加算する
こういった計算を行うには、あらかじめ各データから“数字”の部分だけを切り出しておく必要がある。まずは、各データから「年」の文字を削除して、データの末尾が数字になるように加工する。この処理は、「値の置換」を使って「年」→(文字なし)の置換を行えばよい。
各データから「年」の文字が削除される。続いて、各データの先頭に“適当な文字”を追加する。この処理は、「変換」タブにある「書式」→「プレフィックスの追加」で実現できる。
今回の例では、適当な文字として「★」の文字を追加するように指定した。この文字は数字でなければ何でもよい。よって、各自の好きな文字を指定することが可能だ。
各データの先頭に「★」を追加できたら、データを「文字」と「数値」に分割する。今回の例の場合、「列の分割」→「数字以外から数字による分割」を選択すると、この処理を実現できる。
「文字」から「数字」に変化する位置で、各データが2列に分割される。先ほど「プレフィックスの追加」で「★」の文字を追加した理由は、この処理を適切に行うためだ。というのも、「プレフィックスの追加」を行わなかった場合、もともと数字しかなかったデータが分割されず、1列目に残ってしまうからだ。
これで「入社年度」のデータから数字の部分だけを切り出すことができた。現時点では、これらの数字は「テキスト」として扱われているので、データ型を「整数」に変更する。
列名が「入社年度.1」と「入社年度.2」のままでは紛らわしいので、列名も変更しておこう。ここでは、それぞれの列名を「元号」と「年」に変更した。
「条件列」を使って加算値を指定する
続いては、それぞれの「元号」に応じて「年」に加算する値を求めていこう。冒頭で示したように、「昭和」の場合は1925、「平成」の場合は1988、「令和」の場合は2018を加算すると、西暦に換算できる。