タグ別アーカイブ: 複数シート

クエリの関数化事例~複数シートを一括で編集する

【一度作成したクエリを関数化して複数シートに使いまわし、結果的に一括処理する】

エクセルファイル内で複数シートに分かれていると、一括処理ができなくて困ることがあります

一番、困るのは各シートにヘッダーデータがあるようなケースです

このような場合はまずは1シートを処理するクエリを作成します

そして、そのクエリを関数化します

関数化するということは、Y=2X+1のような式で表せるということです

こちらのXには複数シート名を入れて使いまわせるようにします

SUM関数/SUM()では()の中身を変えれば、それぞれの合計が出力されます

今回は、()の中身が次から次へと格納されて、連続的に出力されるイメージになります

使用データ

前述のように各シートにはヘッダーデータがあります

その下に欲しい一括処理したいデータがあります

そして、上記のようなシートがファイル内に複数あります

各シートの開始行などは一致している前提です

上の画像は東京のシートですが、次の画像は大阪のシートです

関数化するクエリの作成

まずは1シートを処理するクエリを作成します

こちらのクエリを前述のように関数化します

今回はテーブル化からはじめず、ファイルからデータを取得します

指定するファイルは「今処理しているファイル」です

ファイルを指定したら、ナビゲーター画面が開きます

こちらでは1つのシートを指定し「データの変換」をクリックします

ここでクエリは複製しておきます(1つは関数を作成した後に、関数を適用するクエリになります

下の画像がPower Queryエディタを開いた状態です

必要なのは11行目から下です

こちらは「行の削除」アクションで10行削除します

ここからもう1アクションあります

変換タブで「1行目をヘッダーとして使用」アクションを使用して、見出しを整えます

これで関数化のもとになるクエリは完成です

関数化

関数化は詳細エディタで行います

具体的に関数化する箇所は「可変の箇所」、シート名の箇所です

ここでソースステップの内容を確認しておきましょう

要はファイル内の複数シートを取得しています

ここからナビゲーション画面で1つのシートを選択しています

ですので、作成した関数を適用する場合は「東京、大阪、名古屋」と関数化した箇所に連続して格納されるようにすればいいのです

では実際に記号Xを埋め込んでみましょう

(X)=>はXを記号として使用するという合図になります⇒詳細

ここまで行うとクエリが関数に変ります

関数は「myFunction」と名前を変えておきましょう

ここでパラメーターに「名古屋」と入れてみましょう

これで名古屋のシートデータが変換されて出力されます

関数の適用

ここで関数の複製元のクエリを選択し直します

その後は、適用したステップでソースデータを残して後は全て削除します

ここから列の追加タブで作成済みの関数を呼び出します

関数のXに入るのは「Item」になります

これでXに東京、大阪、名古屋と値が格納され、クエリが作成されていくことになります

結果、次の画像のようになります

ここからmyFunctionを展開すれば完成です

次の画像が展開した後のものです

<まとめ>

今回は、ヘッダー行がある複数シートを、クエリの関数化を使用して一括処理しました

クエリの関数化のポイントは可変の箇所を見つけることです

今回は、1度作成したクエリから可変の箇所を見つけました

そうはいっても、なかなか最初は慣れないかと思いますが、次第にツボが見えてくると思います

もう少し詳しく「クエリの関数化」について知りたいという方はぜひUdemy講座(動画)もご利用ください

期間限定で「4,800⇒1,200」の割引クーポンが利用できます

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

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

【Power Query裏技】フォルダにある複数ファイルから特定のシートのみを可変で取得する方法

【Power Queryのパラメーターの仕組みを使い、複数のファイルから特定のシートのデータを可変で取得しよう】

Power Queryのフォルダにある複数ファイルから一括でデータを取得する仕組みは驚くほど便利です

この仕組みで大量の転記処理から解放された人も多いのではないでしょうか?

ただこの仕組みには一つだけ問題があります

ファイル内に複数シートがある場合や、シート名が変更になる場合です

今回の記事では、必要に応じてファイル内で取得するシート名を変更できる方法を解説します

今回使用するデータ

今回使用するファイルには次の画像のように複数のシートが入力されています

このような複数シートがある複数ファイルを一つのフォルダに格納しておきます

こちらのフォルダを指定して複数ファイルのデータを一括で取得します

ポイント

パラメーター

今回は過去の記事で解説したパラメーターを使用してシート名を指定します

今回は上の画像にある「sheetName」というパラメーターを作成し、こちらでシート名を可変で指定できるようにします

ダミーの値によるフィルター

こちらも過去記事で紹介した方法です

簡単に可変の値でフィルターをかける方法です

一度、ダミーの値でフィルターをします

その後、前述のようにフィルターをかけた値に可変にするパラメーターを組み入れます

不必要な列の削除、および行のフィルター

今回の処理では、不要な列の削除と行のフィルターを行う箇所が随所にでてきます

フォルダからデータ取得

従来の「フォルダからデータを取得してエディタを開くフロー」と一部違う点があります

今回は上の画像の箇所ではなく、次の箇所から直接エディタを開き、シート選択のステップは省略します

データ成型

エディタを開いて「適用したステップ」を確認すると、次の画像のようにステップが1つしかありません

エディタの中味はというと、次の画像のようにまだファイル内のデータを取得していない状態になっています

こここから、カスタム列作成画面でM関数を使用してデータを成型していきます

その前に、不要なファイルや列を削除していきます

~で始まるファイルはフィルター条件を指定して除いておきます

その後、「Content」「Name」以外の列を削除します

不要なファイルや列を削除したら、カスタム列作成画面でM関数を使用します

M関数:Excel.Workbookでファイル内のデータを取得できるようになります

次の画像が上記の「M関数を含むカスタム列」を挿入した後の画面です

ファイル内のデータを取得した内容を展開できるようになっています

こちらを展開処理します

ただ1回展開処理しても、まだ次の画像のようにデータ成型したと言える状態になっていません

ここから再び不要な列を削除した後、データ/Data列を展開処理します

ここから、データの1行目をヘッダーにします

その後は不必要な列は削除し、不必要な行はフィルターしておきましょう

*シート名の列は残しておきましょう

パラメーターの作成及びシート名でのフィルター処理

ここからはポイントの項で前述したパラメーターを作成します

上の画像の「新しいパラメーター」をクリックして次の画像の画面を開きます

現在の値には取得したいシート名を設定します

これでシート名を可変にするパラメーターは作成できました

その後、ダミーの値でシートをフィルターします

ここで数式バーに注目してください

ダミーでフィルターした値が数式の中に組み込まれています

こちらを設定したパラメーターで置き換えます

フィルターされたシートがData_202202➡Data_202201に変わりました

これで処理は終了です

試しにパラメーターの設定値を他の値に変えてみます

パラメーターの値に合わせてフィルターされるシート名が変更になっています

<まとめ>

今回は複数ファイルの中にある複数シートの中から、特定のシートのデータのみを一括で取得する方法を解説しました

パラメーターとダミーでフィルターを行う仕組みを組み合わせると、意外と簡単にシート名を可変で取得する仕組みが構築できます

ただ、無駄な列の削除や不要な行のフィルター処理が多い点が難点です

この点さえクリアーすれば、一度作成したパラメーターを何度でも使い回せますので、シートの管理がとても楽になります

ぜひ試してみてください

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

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ

フリーアドイン~目的シートの検索~

エクセルファイルは、データをシート別に区分して管理できる点がとても便利です

但し、あまりにシート数が多いと効率が悪いですよね

ファイルの中から目的のエクセルシートを探したり、目的のシートに移動したりするのはとても面倒なものです

今回、紹介するアプリ(アドイン)であれば、シート名に関連するキーワードでも、シートの検索が可能です

しかも、検索したシートへの移動もワンクリックで行えます!

このアドインがあれば、シート間のリンクを貼った目次シートも作成不要ですので、作業効率があがること間違いなしです!!

1.アドインを入手

エクセルの挿入タブから「アドインを入手」をクリックし、「Sheet Explorer」を検索しましょう!

「Sheet Explorer」が検索できたら追加ボタンを押しましょう

追加ボタンを押したら、HOMEタブにアドインが追加されているはずです

もし、入手の仕方がよくわからない、もしくは、実際に使用して見て不明な点がありましたら、こちらの記事もご参照ください

2.「Sheet Explorer」を実行

入手したアドインを実行するには、アドイン自体をクリックします

すると、ファイルに含まれるシートが一覧で出力されます

一覧が出力された後は、シート名を含むキーワードでのシート検索も可能になります

シート一覧
シート一覧取得

3.キーワードでシート検索

検索窓にキーワードを入れれば、自動的に検索が行われます

シート検索

検索が終了した後は、リフレッシュを押せば元のシート一覧が再出力されます

4.シートへの移動

検索したシートへの移動は該当のシート名をクリックするだけで行われます

シート間
シート移動

5.シート内の関数を把握

このアドインが優れているのは、シート内の関数の数や、関数の他シートへのリンク状況も把握できる点です

例えば、上の画像のシートであれば

⇒シート内の関数は他の6シートを参照している

⇒シート内には36の関数がある

ということが分かります

<まとめ>

今回、「Sheet Explorer」で行える機能を3つ紹介しました

ⅰ)シート検索

ⅱ)シート移動

ⅲ)シート内関数の状況把握

ぜひ有効活用して、シート管理を効率化していきましょう

もしシートを追加したり、シートの中に関数を追加したりした場合には、3.で紹介したリフレッシュボタンを押してください

尚、アドインを追加する際には規約等の同意が求められますので、こちらはご確認の上でアドインをご使用ください

他にも便利なアドインを紹介していますので、興味のある方はこちらから!

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

にほんブログ村

複数シートを自動集計~3D参照~

筆者は昔、予算管理の仕事をしていましたが、いつも複数シートの集計に苦しんでいました

月ごとの数字を管理するのに、ひたすらシート名+シート名+シート名のつるべ打ちをしていたのです

この方法だと手間がかかるだけでなく、シートを追加したり、削除した時にミスが起こり易いです

一方、今回の回で紹介する3D参照では、一気に複数シートをSUM関数で集計することができます

シート追加や削除した時にも、追加・削除に連動して集計値が変わりますので、集計ミスも防げます

下のGIFではシート追加前は200だったセルが、追加後は追加したシートの数字20が自動的に追加されています

この3D参照は特に難しい技術は必要なく、あくまで文法の問題だけをクリアすれば誰でも活用できます

それでは3D参照についてのポイントを2つ、以下に解説します

A.文法

以下は複数シートをシート名のつるべ打ちで集計する数式です

シート名とセル名を除くと同じパターンで文字が出てくるのが分かりますでしょうか?

 =’シート名’!セル名+’シート名’!セル名+・・・

今回の3D参照では、+でシート名を足す代わりに「’と’!」の中で、通常のSUM関数と同じ様に”:”で範囲を指定するのです

こんな↓感じです

B.ワイルドカード*

シート名を工夫した上での前提ですが、*カードを使って更に複数シートの集計作業の効率化を行うことができます

例えば、シート名を四半期単位で集計できるように工夫しておきます 

そうすれば、ワイルドカードを使った集計が行えるようになります

例えば、シート名が1Q_4月、1Q_5月、といった具合に並んでいる場合は、1Q以降を*で置き換えます

このワイルドカードを使えば、SUM関数内に1つのシートでも指定すれば、後は必要箇所を*で置き換えるだけですので、とても効率的です

ポイントを2点、文法とワイルドカード*について解説したところで、ぜひ、以下のサンプルファイルをダウンロードして頂き、実際のデータで試してみてください

サンプルファイルは完成と演習の2つのシートがあります

演習のシートでは実際の操作の様子を参照できるように、2つの方法を用意してあります

どちらもフリーアドインを使用した方法です

①Web Video Player

このアドインはエクセルシート上で動画を開くことができます

演習シート上に記載されたURLをWeb Video Playerにコピーして使用してください

➁QRコード

演習シート上のQRコードをスマホで読み込んでください

動画が自動的にスマホ上で開きます

<まとめ>

今回は、複数シートの集計を、シート名+シート名のつるべ打ちではなく、3D参照によりSUM関数で一気に集計する方法を学びました

3D集計は複雑ではないのですが、ひとつでも記述を間違えただけでもエラーになってしまいます

ですから、’や!の位置をひとつひとつ確認して頂きながら作業を進めていけばスムースに作業を完了させることができます!

後は、サンプルファイルを基にして、とにかく手を動かしてみましょう!

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

にほんブログ村