タグ別アーカイブ: 列フィルター

【パワークエリ・チャレンジ】行ではなく、列方向でフィルター・置き換えを行う方法

【列方向ではフィルターは行えないと思っていませんか?実は3クリックをプラスすれば可能です】

Power Queryエディタ画面にて、空欄だけの列は処理したくない・と思ったことはありませんか?

実は「ヘッダーの上げ下げ」と「行列の入れ替え」を組み合わせれば可能です

上記のGIF画像では、空欄になっている「」「」の列をフィルターしています

ポイント

一番重要なのは2回にわたる「行列の入れ替え」です

行列を入れ替えれば、列方向のデータを行方向に変換できます

フィルター処理をした後は再度、行列を入れ替えます

処理の実際

行列を入れ替える前にまずは「ヘッダー行」を下げておきます

ヘッダー行を下げておくことで、見出しも2回にわたる行列入れ替え操作の対象となります

行列を入れ替えた後にフィルター処理により空欄行を除きます

フィルター処理をした後は、再度行列を入れ替えます

そのままだと、ヘッダーに本来配置されるべき列名が反映されていません

ですので、1行目をヘッダーに上げます

そうすれば完成です

<まとめ>

一見、列方向ではフィルター処理ができないように思えますが「行列入れ替え」処理を組み合わせれば実は簡単です

列フィルターが行えるだけで特殊なデータ整理が行えるようになります

今回紹介したのは空欄のフィルタでしたが、列名の置き換えなども一括で行えます

ぜひ実際に手を動かして試してみてください

最後に、ヘッダーの上げ下げを組み合わせることだけは忘れないようにしましょう!

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

にほんブログ村

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

列フィルター

エクセルの便利機能の一つにフィルター機能があります

フィルターをかけさえすれば、誰でも手軽に検索が行えます

でも、列方向にフィルターを行うにはどうしたらいいでしょう?

実は、リストとIF文、そして、列を非表示にするVBAのhiddenプロパティを組み合わせて使えば手軽に実現できます

つまり、フィルターの対象でない列を非表示にしていくのです

以下、列フィルターを行うポイントをかいつまんで解説していきます

まず、フィルターをする対象の文字をリストで網羅して表示できるようにします

ちなみにエクセルの画面はR1C1型式にしていおいた方が便利です

次に、列フィルターを行う対象範囲の最終列を取得しておきましょう

 例:LastC = .Cells(7, Columns.Count).End(xlToLeft).Column

最後に、最終列まで繰り返しを行うFor ~ Next文の中に、If文とHiddenプロパティの”組み合わせ文”を入れます。

リストの文字と一致しない場合には、該当する列を非表示にするようにします

 例:If .Cells(7, i).Value <> str Then

     Columns(i).Hidden = True

   End If

たったこれだけで、最終列がはるか遠くまで膨らんだ表でも手軽に検索が行えます

最後に注意点ですが

フィルターを解除する際には、非表示になっている列は最終列として取得できません。ですから、”セルが空欄でない場合には表示する”などのLoop文で解除するなどの工夫を行いましょう!

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

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

にほんブログ村