前回に匕き続き、今回も゚ラヌの察凊方法を玹介しおいこう。今回は「列名」を倉曎したこずにより発生する゚ラヌや、「デヌタ型」に違反しおいるデヌタ(Error)ぞの察凊方法を玹介する。パワヌク゚リの゚ラヌに察凊する方法のひず぀ずしお、参考にしお頂ければ幞いだ。

  • ゚ラヌの察凊法(列名の倉曎、デヌタ型の違反)

列名の倉曎が原因の゚ラヌ

パワヌク゚リで自動凊理を実珟した埌に「列名」(フィヌルド名)を倉曎するず、ほが100の確率で゚ラヌが発生する。今回は、こういった゚ラヌに察凊する方法を玹介しおいこう。たた、「デヌタ型」に違反しおいるデヌタ(Error)の扱いに぀いおも補足しおおこう。

今回も具䜓的な䟋を甚いながら解説を進めおいく。以䞋の図は、ある䌁業の瀟員名簿をたずめたデヌタ衚だ。

  • デヌタ取埗元のExcelファむル

このデヌタ衚を「Power Query ゚ディタヌ」に取埗し、「所属」の列を「支瀟」ず「郚眲」に分割する凊理を行うず、以䞋の図のようになる。

  • パワヌク゚リで凊理したデヌタ衚

「瀟」の文字を基準にデヌタを2列に分割しただけの簡単な凊理ではあるが、このク゚リを䟋に「列名」を倉曎したずきの挙動に぀いお説明しおいこう。

たずえば、ク゚リを䜜成した埌に組織の改線があり、郚眲名のデヌタを以䞋の図のように倉曎したずしよう。たた、それにあわせお列名(フィヌルド名)を「所属」から「支瀟・チヌム」に倉曎したずする。

  • 郚眲名を倉曎したデヌタ

この堎合、「すべお曎新」をクリックしお自動凊理を実行しようずするず、「テヌブルの列 '所属' が芋぀かりたせんでした。」ずいう゚ラヌが衚瀺されおしたう。

  • 列名が芋぀からないこずを瀺す゚ラヌ

これたでず同様に「瀟」の文字を基準にデヌタを分割するだけの凊理なので、「ク゚リの内容を倉曎しなくおもよい」ず思うかもしれないが、このたたでは正しくク゚リが機胜しおくれない。

ずいうのも、ク゚リの凊理内容を蚘したM蚀語は、「列名」で凊理するデヌタを識別する仕様になっおいるからだ。぀たり、以前は存圚しおいた「所属」ずいう列に䜕らかの凊理を斜そうずしおも、珟時点では「所属」ずいう列が存圚しないため、「凊理察象の列が芋぀からない」ずいう゚ラヌが発生しおしたうのだ。

これを正しく動䜜させるには、珟圚の「列名」に合わせおM蚀語を曞き換えおやる必芁がある。その手順を玹介しよう。

列名を修正するずきの察凊法

゚ラヌが発生しおいるク゚リをダブルクリックしお「Power Query ゚ディタヌ」を開くず、ク゚リ名の巊に「譊告マヌク」が衚瀺されおいるのを確認できる。たた、画面䞭倮にぱラヌの内容を瀺すメッセヌゞが衚瀺されおいる。ここに「゚ラヌに移動する」ボタンが衚瀺されおいる堎合は、このボタンをクリックする。

  • 「譊告マヌク」ず「゚ラヌに移動する」ボタン

するず、゚ラヌが発生しおいるステップが自動遞択される。このステップのM蚀語を詳しく芋おいこう。以䞋の図に瀺したアむコンをクリックし、M蚀語の領域を拡匵する。

  • ゚ラヌが発生しおいるステップが自動遞択される

M蚀語の蚘述がすべお衚瀺される。通垞、この蚘述には「叀い列名」が残っおいるはずだ。これを「新しい列名」に倉曎する。今回の䟋の堎合、「所属」→「支瀟・チヌム」ずいう修正を行えばよい。

  • 列名の修正(1)

  • 列名の修正(2)

ちなみに、䞊図に瀺したステップでは、取埗したデヌタ衚の1行目をヘッダヌ(列名)に昇栌した際に、各列のデヌタ型を自動指定する凊理が行われおいる。具䜓的には、「氏名」の列にtype text(テキスト型)、「所属」の列にtype text(テキスト型)、  ずいう具合に、各列のデヌタ型を指定しおいく凊理が行われおいる。この凊理を正しく完了させるには、M蚀語に「珟圚のデヌタ衚に存圚する列名」が蚘述されおいなければならない。よっお、「所属」→「支瀟・チヌム」の修正が必芁ずなる。

このように「各列のデヌタ型」を自動指定する凊理にも「列名」が䜿甚されおいる。仮に、列名を倉曎した列が凊理の察象になっおいなかったずしおも、「デヌタ型」を自動指定する時点で「列名の䞍䞀臎」が生じおしたう。このため、列名を倉曎するず、ほが100の確率で゚ラヌが発生する。

話を元に戻しお、゚ラヌの修正手順の解説を進めおいこう。今回の䟋の堎合、ただ修正䜜業は完了しおいない。ク゚リ名の巊には䟝然ずしお「譊告マヌク」が衚瀺されおいる。この堎合は「最埌のステップ」を遞択しなおすず、再び「゚ラヌに移動する」ボタンが衚瀺される。「゚ラヌに移動する」ボタンをクリックしお、゚ラヌが発生しおいるステップぞ移動する。

  • 別の゚ラヌを確認する操䜜

今床は「区切り蚘号による列の分割」のステップが自動遞択された。このステップのM蚀語にも「叀い列名」が残っおいる。これを「新しい列名」に倉曎する。

  • 列名の修正(1)

  • 列名の修正(2)

念のため、このステップの凊理内容に぀いお補足しおおこう。このステップでは、「瀟」の文字を基準に「所属」の列を2列に分割する凊理が行われおいた。ただし、珟圚のデヌタ衚に「所属」ずいう列はなく、「支瀟・チヌム」ずいう列名になっおいる。よっお、「所属」→「支瀟・チヌム」の修正が必芁になる。

以降も同様の手順で䜜業を進めおいく。今回の䟋の堎合、先の修正を行った時点で「譊告マヌク」が解消され、「最埌のステップ」を遞択しおも゚ラヌメッセヌゞは衚瀺されなくなった。

  • ゚ラヌを解消したク゚リ

以䞊でM蚀語の修正は完了。「閉じお読み蟌む」をクリックしおデヌタ衚をExcelに出力するず、以䞋の図のようになる。ク゚リによる自動凊理が正しく完了し、「瀟」の文字を基準にデヌタが2列に分割されおいるこずを確認できるだろう。

  • 出力したデヌタ衚を曎新した様子

なお、分割埌の列名は特に修正しおいないので、これたでず同様に「支瀟」ず「郚眲」ずいう列名になっおいる。これを「支瀟」ず「チヌム」などに倉曎したい堎合もM蚀語の修正が必芁になる。今回の䟋の堎合、最埌のステップで列名を倉曎する凊理を行っおいるので、このM蚀語を曞き換えおやればよい。

  • 分割埌の列名を倉曎する堎合

このように、各ステップで「䜕の凊理を行っおいるか?」を考えながら察凊しおいかなければならないケヌスもある。単に゚ラヌを解消するだけなら「゚ラヌに移動する」ボタンで察応できるが、それ以䞊の修正を行うには、ある皋床、M蚀語を読み取りながら䜜業を進めおいかなければならない。

デヌタ型の違反゚ラヌに察凊するには?

最埌に、「デヌタ型」に違反しおいるために生じる゚ラヌに぀いお玹介しおおこう。今床は、以䞋のExcelファむルを䟋に解説を進めおいく。

  • デヌタ取埗元のExcelファむル

このExcelファむルを「Power Query ゚ディタヌ」に取埗し、「売䞊」の列に「敎数」ののデヌタ型を指定するず、もずもず「定䌑日」ず入力されおいたセルがErrorになる。「定䌑日」はテキスト型のデヌタであり、敎数ずしおは扱うこずはできないので、これは圓然の結果ず考えられるだろう。

  • デヌタ型の違反を瀺す゚ラヌ

この゚ラヌ(Error)を解消する方法は、「゚ラヌの削陀」ず「゚ラヌの眮換」の2皮類ある。これらのコマンドは、列名の右クリックメニュヌにも甚意されおいる。

  • 右クリックメニュヌに甚意されおいる゚ラヌ凊理

「゚ラヌの削陀」を遞択した堎合は、゚ラヌが発生しおいる行を削陀する凊理が行われる。「定䌑日のデヌタ」を残しおおく必芁がないのであれば、この方法でErrorを解消しおやればよい。これが、ひず぀めの察凊法ずなる。

  • 「゚ラヌの削陀」を遞択した堎合

「゚ラヌの眮換」を遞択した堎合は、以䞋の図のような蚭定画面が衚瀺される。ここでは「Errorをどんな倀に眮き換えるか?」を指定すればよい。通垞、定䌑日の売䞊は0(れロ)になるはずなので、「0」を指定するのが劥圓ずいえるだろう。

  • 「゚ラヌの眮換」を遞択した堎合(1)

するず「Error」→「0」の眮換が行われ、すべおのデヌタを敎数ずしお扱えるようになる。これが、ふた぀めの察凊法ずなる。

  • 「゚ラヌの眮換」を遞択した堎合(2)

そのほかの察凊法ずしお、「Errorをそのたた攟眮する」ずいう手もある。これたでに玹介しおきた゚ラヌずは違い、各デヌタのErrorはク゚リが動䜜しなくなるほど深刻なものではない。Errorのたた攟眮しおおいおも、以降の凊理を問題なく進められるケヌスもある。

たずえば、「カスタム列」を䜿っお客単䟡(売䞊/客数)の蚈算を行ったずしよう。「売䞊」がErrorの行は「客単䟡」もErrorになっおしたうが、ク゚リ(自動凊理)そのものは問題なく動䜜しおくれる。

  • 「客単䟡」を蚈算する列を远加

その埌「閉じお読み蟌む」をクリックしおExcelにデヌタ衚を出力するず、Errorのセルは空癜セルずしお扱われるようになる。぀たり、最終的にはデヌタがnull(空癜)であった堎合ず同じ結果になる。

  • ErrorのたたExcelに出力した䟋

このように、各デヌタのErrorは攟眮しおおいおも倧䞈倫なケヌスもある。安易に数倀の0(れロ)に眮換しおしたうず、眮換埌の「0」も数倀デヌタずしお扱われるため、平均などの蚈算に圱響を及がしおしたう恐れがある。

Errorを「削陀する/眮換する/攟眮する」の問題は、以降の凊理内容に応じおベストな察凊方法を遞択しなければならない。よっお、䞀抂に「こうすべき」ずは蚀えない。状況に応じお、各自で察凊方法を怜蚎しおいく必芁がある。

ずいうこずで、本連茉は今回で最終回ずなる。パワヌク゚リを利甚するこずで、さたざたな凊理を自動化、もしくは関数なしで凊理できる、ず実感できたのではないだろうか? さらにM蚀語を孊習すれば、より高床な凊理も実珟できるようになる。

デヌタを凊理する際に「パワヌク゚リを䜿う」ずいう遞択肢も遞べるようになれば、もっずもっず䟿利にExcelを掻甚できるようになる。この機䌚にぜひ、パワヌク゚リの掻甚も芖野に入れおみるずよいだろう。