1. トップ
  2. 新着ニュース
  3. IT
  4. IT総合

Excelをノーコードで自動化しよう! パワークエリの教科書 第7回 「ステップ」と「M言語」の関係とは? エラー処理を理解する

マイナビニュース / 2024年6月24日 11時0分

ということで、エラーが発生する例を紹介していこう。今度は、「列名を日付に変更」のステップを一番下へ移動してみよう。

すると、以下の図のようなエラー画面が表示される。この画面にある「エラーに移動する」ボタンをクリックすると……、

エラーが発生しているステップが自動選択される。エラーの内容は、「テーブルの列‘日付'が見つかりませんでした。」と表示されている。

普通に考えると、列名を「日付」に変更する工程は「どのタイミングで行っても問題ないはず……」と思うかもしれない。しかし、実際には上手くいかない。この挙動を理解するには、M言語について学んでおく必要がある。
ステップとM言語の関係

各ステップの処理内容は「M言語」と呼ばれるプログラミング言語で記述されている。このM言語は「Power Query エディター」で処理手順を指定した際に、自動的に記述される仕組みになっている。このため、M言語の書き方を知らなくてもパワークエリを活用することが可能である。これが「パワークエリはノーコードでも使える」と言われる所以である。

ただし、エラーに対応するために、「M言語がどのように記述されているか?」を確認しなければならないケースもある。先ほどのエラーを例に詳しく解説していこう。

まずは、エラー発生時よりも1つ前のステップから見ていこう。1つ前のステップを選択すると、画面上部に「=Table.AddColumn……」というコードが表示されるのを確認できる。これが、各ステップのM言語となる。なお、M言語の記述が途中までしか表示されていない場合は、以下の図に示したアイコンをクリックすると、M言語の領域が拡張され、M言語の記述全体を確認できるようになる。

このM言語には、「Source.Name」の列から「"の"より前にある文字」を抽出して、新しい列を作成する、という処理が記述されている。また、新しく作成する列の名前は、「区切り記号の前のテキスト」と指定されている。

続いて、エラーが発生したステップを選択する。このステップのM言語は、以下の図のように記述されている。

このM言語には、「日付」の列のデータ型をdate(日付)に変更する、という処理が記述されている。一方、1つ前のステップで作成した列の名前は「区切り記号の前のテキスト」になっている。つまり、現時点において「日付」という名前の列は存在しないことになる。これがエラーの原因だ。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください