タグ別アーカイブ: 結合

M言語に慣れる_9回目~複数シートをコード1行で結合~

【M言語は難しくない】今回は、空のクエリM関数を1つ入力するだけで複数シートを一気に結合できるようにします!今回紹介するM関数を使いこなせば、面倒なシート間のデータのバケツリレーから抜け出すことができます

 Power Queryで複数シートを結合する方法として一般的に紹介されている方法では、次の画像の処理「クエリの追加」が必ず入ると思います

今回は、「クエリの追加」は使わず空クエリの数式バーに「=Excel.CurrentWorkbook()」を入力します

1つM関数を入力するだけで、ファイルに含まれるシート内のテーブルが全てエディタ内に反映されます

これで、シート間のバケツリレーの作業からは抜け出すことができます!

但し注意点もありますので、そちらもあわせてM関数/Excel.CurrenWorkBookの使用方法を解説します

目次

今回のポイント

今回使用するデータ

準備作業/空のクエリを作成

M関数の入力/Excel.CurrentWorkbook

読み込み処理

データの循環対策

シート追加テスト

<まとめ>

今回のポイント

今回はM関数を入力した後に、1点だけ注意点があります

それは、循環問題です

複数シートを1つにまとめた内容/クエリが、M関数に反映されてしまいます

ですので、クエリを更新すると読み込み行数が倍になります

対策として、適用したステップに1つのステップを追加します

今回使用するデータ

今回使用するデータには、シートが3つ含まれています

1シートが1か月分の出荷データになっています

各シートの内容は、事前に「シート名/Data_y年m月」をテーブル名にしてテーブル化してあります

次のファイルが今回、実際に使用するサンプルデータです

準備作業/空のクエリを作成

まずは空のクエリから作成します

「データタブ」➡「データの取得」の順でクリックします

その後、下の画像にて黄色に印をつけた箇所を上から順にクリックします

そして、下の画像にある「空のクエリ」をクリックします

するとエディタが開き、空のクエリが立ち上がります

M関数の入力/Excel.CurrentWorkbook

記事の冒頭でも解説しように、 「=Excel.CurrentWorkbook()」を入力します

上の画像のように3つテーブルが表示されたら、2つ処理をします

まず、上の画像の「Name」の列を削除します

次に下の画像の黄色に印をつけた箇所から、各テーブルの内容を展開します

展開する際には、次に開いた画面にて、「元の列名をプレフィックスとして使用します」のチェックを外しておきます

上の画像のOKボタンをクリックすると次の画像のように、各テーブルが展開します

出荷日については、データ形式を日時型式ではなく、日付形式にしておきます

読み込み処理

読み込み処理は、新規のテーブルに行います

上の画像の「閉じて次に読み込む」をクリックし、次に開いた「データのインポート」画面にて、新規のシートを指定します

新しく追加されたシートは、シート名を「小計」に変更しておきましょう!

データの循環対策

まず、新しく作成したクエリをエディタで開き直します

エディタを開いたら、適用してステップの「ソース」を選択します

すると、下の画像のように4つのテーブルが表示されています

循環対策として、テーブル名に「Data」を含むものだけが展開されるようにフィルターをかけるステップを追加します

フィルターをかける際には、下の画像のように「指定の値で始まる」を指定し、「指定の値」として「Data」を指定します

すると、次の画像のように「Data」から始まるテーブル名のテーブルだけが表示されます

ここまで、行ったらエディタを閉じて読み込みます

シート追加テスト

適切に循環対策が機能しているかどうかを調べるため、「Data_2020年4月」のテーブル、及びシートを追加します

追加するシートには1行だけデータがありますので、循環対策が適切であれば、更新処理時に1行だけが増えるはずです

では、更新を行ってみます

上のGIF画像のように、適切に1行増えています

<まとめ>

今回はM関数「=Excel.CurrentWorkbook()」を 空のクエリを入力して、各シートのテーブルを一括でまとめました

 後からテーブル/シートを追加したとしても「データの結合」処理を行わずに済むので大変楽な方法かと思います

但し、1点だけ注意点があり、それが循環対策です

 複数のテーブルをまとめた内容自体が、「まとめ」の内容に含まれないようにフィルター処理を追加しました

Power Queryにおけるエラー対策として、フィルター処理はとても有効です

この点は今回を機に、しっかりおさえておきましょう!

長文に最後までお付き合い頂き誠にありがとうございました

今回使用したファイルの完成版を添付しておきます

次回はグループ毎に連番を付与する方法を解説します

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

フォルダから複数ファイルデータを一括取得~初級講座4回目

こんにちは、Excellent仕事術ガッツ鶴岡です

前回はエクセルファイルからデータを取得しました

今回はフォルダにある複数ファイルから一括でデータを取得します。

フォルダ内データ一括取得

この機能はPower Queryの機能の中でも一押しの機能のひとつです

何故なら、複数ファイルに分散しているデータを一括で処理しようとしたら、通常はガッツのある人の手が必要となるからです。

その一括処理の内容はとても面倒くさく、ミスも起こり易いです

ところが、今回紹介するPower Queryのある機能を使うと、フォルダにファイルを入れておきさえすれば、全て一括で取得してくれるのです!

記事を最後まで読む時間が無い、という方はぜひこちら↓の動画をご覧ください

ちなみに、動画内で使用しているサンプルファイルは下からダウンロードできます

本題に入る前に、今回の解説に使用するデータを紹介します

今回の解説に使用するフォルダ(Data)の中には、3つファイルが入っています

アイコン

フォルダ用データ 22.26 KB 29 downloads

...

営業の部署 にて、営業担当者毎に販売内容をフォルダ内に入れていく想定です

ファイルに書き込まれている内容(シート:Data)は次のような項目です

ちなみにDataシート以外にもメモというシートがあります

では、本格的な内容の解説に入りたいと思います

解説は 「1.取得元のフォルダを指定する」と「2.ファイルの中で取得するシートを指定する」の2つに分けて行います

1.取得元のフォルダを指定する

今回もデータタブの操作から処理を開始します

➀フォルダから取得を指定します(下の図参照)

➁実際に使用するフォルダを指定します

今回の解説で使用するのは「Data」フォルダーです

③指定するフォルダ名を確認 ⇒「OK」を押すとフォルダの指定は終了です

フォルダの指定が終了した後は、1~3回目の解説では出てこなかった画面が登場します

2.ファイルの中で取得するシートを指定する

➀フォルダに入っているファイル名が表示されます

下の図の中に「結合」のボタンが見えますでしょうか?

一番下に4つのボタンが見えますが、一番左のボタンです

このボタンについては次の➁の解説で操作します

➁ボタン右横の▼マークを押し、「データの結合と変換」を押します

この時、フォルダ内のファイルが1つでも開いていると、データの結合と変換がうまくいかないので注意が必要です

「データの結合と変換」をクリックした後は、また更に新たな画面が開きます

③取得するシートを指定します

新たに開いた画面(下の図参照)の左側に、ファイルに含まれるシート名(Data、メモ)が表示されるので、Dataシートを選択します

Dataシートを選択したら、OKボタンを押します

そうすると、Power Queryエディターが開きます

④Power Queryエディター画面で読込処理を行う

Power Queryエディター画面には複数ファイルの情報が一括表示されます

まず、設定されるクエリの名前を「一括データ」に変更しましょう!

次にPower Queryエディター画面左上で「閉じて読み込む」ボタンをクリックします

これでフォルダ内のデータが一括で読み込まれます

ファイル別に分かれていた注文NOも1~6まで一括で表示されています

さて、ここからがこのフォルダ一括読込機能の最大の醍醐味です

フォルダ内にもう一つ、ファイルを追加します

アイコン

追加用1 9.66 KB 15 downloads

...

通常は、これまで行ってきた1、2の作業を行う必要がありそうですよね

ところが、ワンクリックで追加ファイルを一括で読み込むことができます

エクセルシートの右に”一括処理”という前回作成したクエリがあります

こちらのクエリの上にカーソルを置き、右クリックします

そうすると最新の情報に更新できるようになります

更新処理を行うと、フォルダ内に新規追加したファイル内の注文NO:78が下の図のようにシート上に反映されています

<まとめ>

この機能はこれまでのエクセル処理の常識を覆す内容です

今までは私もそうでしたが、フォルダ内にある複数ファイルのデータを一括で取得しようとしたらVBAのコードを書いていました

しかも、そのVBAコードはVBA初心者が書ける内容ではないです

2-②「データの結合と変換のクリック時」でも説明しましたが、フォルダ内のファイルが一つでも開いているとうまく行かない点だけは注意が必要です

後はPower Queryの画面操作に慣れてくれば、とても簡単な処理だと思います

ぜひ、職場で有効活用してみてください!

次回は読込先の変更について解説します!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村