タグ別アーカイブ: Power Query

パワークエリ記事一覧

M関数逆引き辞典はこちらから!

初級編

タイトル内容
Power Queryで操作はどう変わる?~初級講座1回目 パワークエリとはなにか?そのメリットをスマホに例えて解説します
シートからデータ取得~ 初級講座2回目~ 別シートのデータをテーブル化して取得する方法を解説します
ファイルからデータ取得 初級講座3回目 別ファイルのデータをテーブル化して取得する方法を解説します
フォルダから複数ファイルデータを一括取得~初級講座4回目 フォルダ内にある複数のファイルからデータをまとめて取得する方法を解説します

中級編

タイトル内容
複数データの組み合わせ/クエリのマージ~中級編1回目~ クエリのマージ技術の概要について解説します
クエリのマージ/項目追加~中級編2回目~ 複数のクエリをマージする方法について、実際のデータで解説します
クエリのマージ/計算処理~中級編3回目~ マージした項目を活用して計算処理を行う方法を解説します
クエリの追加作成~中級編4回目~ 同じ項目のクエリを追加して結合する方法を解説します
クエリの追加・結合~中級編5回目~ クエリの追加をピボットテーブルと連携して行う方法を解説します
ピボット解除/縦横並びの変換処理~中級編6回目 縦横の使いにくいデータを、使いやすい並びに変える方法を解説します
セル分割他・変換処理~中級編7回目 複数のデータが1つのセルに入っている場合に分割する方法を解説します
セル分割他・変換処理2~中級編8回目 前回の内容を使いやすい形式にして出力する方法を解説します
エディター内のやり直し操作~中級編9回目~ ワークシートにおけるCtrl+Zに相当する処理の方法を解説します
変換した列の追加~中級編10回目~ 連番、条件列(IF関数に相当)及び列削除・移動他を解説します
グループ化1~中級編11回目~ データを階層化して集計する方法を解説します
複数条件でグループ化~中級編12回目~ データを複数の条件で階層化する方法を解説します

上級編

タイトル内容
行削除とヘッダー行の調整~上級編1回目~ 見出し行/ヘッダーがおかしい場合の対処方法を解説します
セル結合により見出しが2行の表をデータ活用1~上級編2回目~ セル結合された使いにくいデータを使いやすくする方法を解説します
セル結合により見出しが2行の表をデータ活用2~上級編3回目~ セル結合された使いにくいデータを使いやすくする方法を解説します
各種集計/合計から四捨五入まで~上級編4回四則演算の計算から四捨五入まで、様様な集計方法を解説します
エラー修正_処理ステップエラー~上級編5回目 ファイル保存先変更などに伴うエラーの対処方法について解説します
途中のステップを削除した場合のエラー修正処理~上級編6回目 途中のステップを削除した場合のエラー対処処理について解説します
エラー修正_データ自体のエラー~上級編7回目データ自体がエラーになっている場合の対処方法について解説します
カスタム関数を自身で登録して使い回す~上級編8回目ユーザーが独自で作成するカスタム関数の作成方法を解説します
カスタム関数を自身で登録して使い回す2~上級編9回目作成したカスタム関数を呼び出して活用する方法を解説します
IF式を組み合わせて列作成~上級編10回目 条件付きカスタム列を作成する方法を解説します
「例からの列」にて変換パターン自作~上級11回目~入力した変換例を汲み取って変換を行う方法を解説します
「 例からの列」による桁数が規則列への対応~上級12回目~
「例からの列」による変換方法の応用方法を解説します
エディタを開かずにソース変更処理~上級13回 「パラメーター」機能を使用してデータソースを変更する方法を解説します
シート上からデータソースを変更する方法~上級編14回目シート上の入力を変更するだけでデータソースを変更する処理を解説します
セルの値を変更するだけで読み込みを変更する方法~上級編15回セルの変更内容をクエリに組み入れて、クエリの内容を変更できるようにする方法を解説します
クエリのコピー・バックアップ・削除他~上級編16回クエリのコピーやバックアップ及び削除、その他グループ化などの方法を解説します
文字列の抽出~上級編17回RIGHT関数やLEFT関数、MID関数に相当する内容に加え、特定の文字列を抽出する裏技を解説します
文字列の追加、置換~上級編18回前回の特定の文字列の抽出に加え、文字列の追加や置換方法について解説します
エラー発生の予防/列のデータ形式変更と削除について~上級19回~エディタ内の操作のちょっとした工夫で、エラー発生を予防する方法を解説します

M言語編

タイトル内容使用するM関数
M言語に慣れる_1回目~コード構造の把握~Mコードの基礎的なルール/文字の色、大文字の区別、ステップの参照について解説しますList.Average/平均値・計算
M言語に慣れる_2回目~カスタム列~カスタム列・作成画面でM関数を使用して新たな列を作成する方法を解説しますText.From/文字列への変換
M言語に慣れる_3回目~ダイナミックフィルタリング~セルの変更内容をフィルタイングの内容に反映する方法を解説しますList.Max/最大値の計算
M言語に慣れる_4回目~特殊テンプレート作成~2つのクエリを組み合わせて、1担当者に対して複数の勤務日がある表を作成する方法を解説します
M言語に慣れる_5回目~M関数を検索する方法~ワークシート内の関数のように、M関数を参照する方法を解説しますText.PositionOf/特定の文字列の位置抽出
M言語に慣れる_6回目~3種類の括弧~丸括弧と角括弧そして波括弧とテーブル、リスト、レコードの関係を解説します
M言語に慣れる_7回目~空のクエリからテーブル作成~空のクエリから、リストやレコード、テーブルを作成する方法解説します#table/テーブル作成、Table.RenameColumns/列名変更
M言語に慣れる_8回目~eachを使いこなしてM関数作成~数式バーに良く出てくる「each」の用法について解説しますTable.SelectRows/テーブルから特定の行を抽出、List.Select/リストから特定の値を抽出
M言語に慣れる_9回目~複数シートをコード1行で結合~ファイル内のシートからデータをまとめるクエリを作成する方法を解説しますExcel.CurrentWorkbook/ワークブックの内容を一括抽出
M言語に慣れる_10回目~グループ毎に連番作成~「グループ化の操作/全ての行」を活用してグループ毎に連番を作成する方法を解説しますTable.AddIndexColumn/連番作成
M言語に慣れる 11回目~前行を参照して計算連番と波括弧:{}を組み合わせて活用して前行を参照する方法を解説します
M言語に慣れる~12回目例外処理エラーが発生した際の対処処理を行う方法を解説しています
M言語に慣れる13回~ダイナミックに連続した日付作成ワークシート内にある連続性のない日付から、連続する日付を作成した後、他データも紐づける方法を解説します#date/「年、月、日」から日付を作成、#duration/「日、時間、分、秒」から期間値を作成します、List.Dates/「開始日、リスト個数、増分」から日付のリストを作成、Number.From/値を数値型式にして返します
M言語に慣れる14回目~複数行を1つのセルにまとめるグループ毎のテーブルを作成後、グループ別に1つのセルにテーブルの内容をまとめる方法を解説します
M言語に慣れる15回目~TEXT関数/文字列関数テキスト関数の事例について解説しますText.Contains/文字列の有無を判定、Text.Replace/文字列の置換
M言語に慣れる16回目~List関数リスト関数の事例について解説しますList.Max/最大値の計算
不規則に散らばっているデータを一括取得~M関数~見出し行/ヘッダーがそれぞれ違うシートの内容を一括でまとめる方法を解説しますList.PositionOf/リストの中から特定文字列のリスト内位置を抽出、Table.RemoveFirstN/テーブルの先頭から指定行数を削除します、Table.PromoteHeaders/先頭行を新しい列見出しにします
参照先バッファー化によるパフォーマンス向上~M関数~クエリのパフォーマンスを向上させる方法を解説しますTable.Buffer/参照テーブルのバッファー化
クエリの列名をダイナミックに変更する~M関数使用~入れ子のリストを使用して、ワークシート上の内容でクエリの列名を変更する方法を解説しますTable.RenameColumns/列名変更、Table.ToColumns/テーブルからリスト(入れ子)作成
Power Queryエディタ上で複数条件付き合計処理~M関数使用M関数を組み合わせて「SUMIFS関数」と同様の計算をエディタ上で行う方法を解説しますTable.SelectRows/条件に合う行のみを抽出、List.Sum/合計値を抽出
指定した範囲の値を使用してフィルタリングM関数を利用して、ワークシート上の表にある値に一致するもののみをフィルタリングする方法を解説しますList.Contains/リストに指定の値が入っているかを判定
複数リストを1対1の関係でうまく組み合わせる1行に複数の値を持つリストを複数組合わせる場合に、リスト間で1対1の関係になるようにします(例:8月2日/月、火、水➡8月2日/月)Table.FromColumns/複数のリストからテーブルを作成
列名をダイナミックにしたピボット解除を行う新たな列を追加した場合でも、並べ替える列とそうでない列をコントロールできるようにするTable.ColumnNames/列名リストを作成
PDF変換の応用~フォルダに入れた複数PDFから都合良くデータを切り取る方法複数のPDFファイルから都合よい箇所だけデータを一括抽出できるようにするTable.RemoveFirstN/指定行から上の行を削除
List.PositionOf/リストの中から特定文字列のリスト内位置を抽出
【POWER QUERY裏技】フォルダにある複数ファイルから特定のシートのみを可変で取得する方法フォルダ内のファイルを一括で取得する際に、パラメーターを使用して取得するシートを可変にしますExcel.Workbook/Excel ブックの内容を返します。
M関数を使用して、可変で出現する特定文字の下の行を切り捨てる特定文字列の下の行を可変で削除しますList.PositionOf/リストの中から特定文字列のリスト内位置を抽出
置き換えのIF式を簡略化する方法~リスト活用、列削除省略~メンテナンスが面倒なIF式を簡略化する方法を解説しますList.Contains/リストに特定の値が含まれていればTRUEを、そうでなければFALSEを返します
POWER QUERYならではのカレンダーテーブル活用~経過営業日の算出M言語独自のリストの活用により、経過営業日の算出を自由自在に行えるようにしますDay.DayOfWeekName/曜日変換
クエリの関数化事例~複数シートを一括で編集するヘッダーデータがある複数シートを一括処理します

分析編

タイトル内容
POWER QUERYで手軽にABC分析パワークエリのM関数をうまく組み合わせれば、ABC分析も行うことができます
RFM分析の「R」を集計する注文データから注文者(会員)
別に最終注文データを集計できるようにします
RFM分析の「F」を集計する注文データから注文者(会員)
別に注文頻度を集計できるようにします
RFM分析の「M」を集計してまとめる注文データから注文者(会員)別に注文金額を集計できるようにします

コラム

タイトル内容
【パワークエリ・チャレンジ】グループ別の小計と合計を表示する今回は本来は一律処理のPower Queryに行挿入を行います
【パワークエリ・チャレンジ】列数が可変の表を組み合わせて計算するList.Accumulate関数を他のM関数と組み合わせて使用します
POWER QUERYをクラウドで活用する方法~POWER AUTOMATE使用~DataverseとPower Automateを組み合わせて、Power Queryをクラウドで活用します
(続編)2つの表にてどの行が追加、削除されている? ⇒どの列が変更になっている?ピボット解除と複合キーを活用して2つの表を比較しやすくします
どの行が追加、削除されている?~結合の6種類~結合の各種類をつかいこなせば、行の追加や行の削除の状況が一目でわかります
【パワークエリ・チャレンジ】セル結合が行列にある表をテーブル形式に変換行列双方向にセル結合がある表をテーブル形式に直します
【パワークエリ・チャレンジ】行ではなく、列方向でフィルター・置き換えを行う方法実は行列の入れ替えを行えば、列方向でのフィルター処理が可能です
【パワークエリ・チャレンジ】1列のデータから複数列のテーブルデータを作成する余りの計算とピボット機能を組み合わせて1列のデータから複数列のテーブルデータを作成します
【M言語実践】グループ別に累計を集計する方法グループ別に累計値を集計する方法を解説します
【M言語実践】顧客の2回目のリピート率を分析する方法通常のエクセル処理であれば相当煩雑な分析処理をM言語を活用して簡略化します
M言語実践】グループ別にIDを設定グループ別に連番を採番した上で桁数を揃えてIDを作成します
マスタデータの履歴管理を行う方法マスタデータが重複している場合に、日付が最新のもののみを表示する方法を解説します
POWER QUERYのステップ数を減らす3つの工夫「変更された型」のステップを減らすなどの工夫を解説します
エディタからデータ入力してクエリ作成エディタ上で直接データを入力する方法を解説します
【豆知識】どこの行が変わったかを調べる方法クエリのマージの仕方を工夫しつつ、条件列を組み合わせて、元データと修正があった箇所を特定する方法を解説します
【豆知識】ピボット/縦縦並び⇒縦横に並び替え集計ピボット解除と別な方向で並べ替える方法を解説します
【豆知識】ピポット解除時の空欄の扱いグループ化
【分析作業用】大量データを1目で把握するパワークエリの表示タブでは大量のデータを1目で分かるようにする為の工夫がありますので、そちらを解説します
【分析作業用】グループ毎の平均と個の平均の差を自動集計する方法グループ化機能を2段階で行うことで、グループ単位の集計と個々の集計とを同時に行う方法を解説します
クエリの複製、参照、そしてコピーとの違い~クエリを右クリックした時に出てくる「複製」「参照」「コピー」の違いについて解説します
POWER QUERYって何?~エディタ上でのショートカットキーエディタと他ファイルを並行して開く方法も含めて、操作を早く行う方法を解説します
POWER QUERYって何??~時刻を曜日と日付に変換時刻データを曜日や、日付データに変換する方法を解説します
POWER QUERYって何??~経過時間を一括で計算するワークシート関数では、直接計算できない経過時間を簡単に計算する方法を解説しています
POWER QUERYって何??~日付を月や四半期単位に変換~日付データを簡単に月や四半期単位に変換する方法を解説します
POWER QUERYって何??~読込んだデータに行番号追加~シートに読込んだクエリに行番号を追加する方法を解説します
文字列を記号毎に分割し、行方向に展開する方法コンマなどの記号をもとにして文字列を分割しつつ、列方向ではなく、行方向に展開する方法を解説します
POWER QUERYって何~既存クエリのステップを一括で削除する方法適用してステップの欄で一気に複数ステップを整理する方法を解説します
POWER QUERYって何?12~重複のないリストを一瞬で作成一気に重複を排除したリストを作成する方法を解説します
POWER QUERYって何??11~ユニークな数の集計~パワークエリならではの集計方法を1点だけ解説します
POWER QUERYって何?~ピボット解除(縦横並び替え)と入れ替えの違い~紛らわしい「ピボット解除」と「行列の入れ替え」の違いについて
POWER QUERYって何??9~WEBページからデータ取得~Webページからエクセルデータを直接取得する方法を解説します
POWER QUERYって何8???~PDFファイルをエクセルに変換~PDFファイルからエクセルデータを直接取得する方法を解説します
POWER QUERYって何?~列の結合/複合キー活用~複数の列を結合して複合キーを作成・活用する方法を解説します
文字列から空白を取り除く_POWER QUERY文字列の前後や、文字列間に入り込んでいる空白を取り除く方法を解説します
パワークエリエディターで行コピーを行う方法M関数を使用して行をコピーして複数にする方法を解説します
MICROSOFT POWER QUERY~ACCESSとEXCEL連携~特殊な方法でAccessと連携する方法を解説します
POWER QUERYって???合計を計算するグループ化による合計金額の計算方法を解説します
POWER QUERYって何???連番作成連番を作成する方法を解説します
POWER QUERYって何??パワークエリの使用メリットパワークエリを使うメリットの一つは履歴の管理が便利な点があげられます
POWER QUERYって何???~ACCESSとエクセルの連携~通常の方法にてAccessと連携する方法を解説します
ピボット解除を複数列を軸にして実行する複数列を軸にして縦縦並びを縦横並びに変える方法を解説します
IF 式の中でOR条件とAND条件を使う方法~POWER QUERY~ANDとORの指定を小文字で行うのがポイントです

IT未経験からDX推進!

 私は30代半ばからの10年間、朝から終電まで退屈なエクセル作業をして過ごしましました。それからシステム会社に45歳で転職し、RPAと出会いました。
 ITの世界の常識が大きく変わる予感がしました。業務を理解している担当者自身が、システムエンジニアの力を借りずに、システム開発を効率的に推進していくことができるのではと考えました。
 そこから更にPower Queryなどの「モダンエクセル」、Power BIPower AutomatePower Appsなどの「Power Platform」が登場し、誰もが手軽にデータを有効活用できる世の中が来ることを確信しました。
 「このエクセル作業が効率化できたらいいのに・・・」「このエクセルデータから有効な情報を引き出せたらいいのに・・・」と頭を悩ませている人は数多くいらっしゃいます
 IT未経験者でもモダンエクエル、Power Platformを正しく活用すれば、自身の退屈なエクセル業務を削減しつつ、データを活用した有意義なビジネスライフが送れるようになります。
 私自身は最初はITの世界に飛び込んだ時は用語さえわからず、相当苦労しました。この時に味わった苦労の一つ一つがこれからエクセル作業を改善していこうとしている皆様のお役に立つと思います。
 
ところで、皆様はブルース・リーをご存知でしょうか?
 ブルース・リーはカンフーの神様、先駆者と呼ばれ、ハリウッドで大活躍し、未だに多くのハリウッドスターに尊敬されている香港生まれのアクションスターです
そのブルース・リーがこんな言葉を残したそうです。

「Don’t think.Feel!(考えるより、まずは感じること)」

ぜひ一緒に手を動かしてITを楽しんでいきましょう!

Excellentなレッスン

ストアカにてレッスンを定期的に行っています

Don’t think.Feel!(考えるより、まずは感じること)」をモットーに丁寧に解説を行います

オンラインに加えて対面レッスンも行っています

🌟ここまでできるPower BI~計算、分析、操作、魅せる~

Power BIの脱初心者になりたい人向け。動くグラフは必見です!

*ブログ読者優待割引あり紹介記事はこちら詳細

🌟Power BIをはじよう~マンツーマン/対面・オンライン両方可

これからPower BIを始めたい人向け

🌟Powerシリーズならなんでもマンツーマンレッスン

30分からの時間制講座です。*内容・日時等を事前に問合せをお願いします(提供が可能でないこともあります)

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

にほんブログ村

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

置き換えのIF式を簡略化する方法~リスト活用、列削除省略~

IF式は便利ですが、作成後のメンテナンスが大変だったりします

1つ内容を追加するだけでも、or以降のコードを追加しなくてはなりません

今回は、リストを使ってIF式の作成を簡略化する方法と、IF式自体を列に置き換える方法を紹介します

List.Contains関数

今回はList.Contains関数をIF関数内で活用します

このM関数はリスト内に該当するものがあれば「TRUE」そうでなければ「FALSE」を返します

上のGIF画像でいえば、リスト{1,2,3}に対して3は含まれているのでTRUE、4は含まれていないのでFALSEを返しています

置き換えのIF式にリストを埋め込む

下の画像の商品コードを①か②にグループ分けをしたいとします

以下のようなイメージです

その時は、通常は以下のようなIF式を使ったカスタム列を挿入すると思います

今回は、or式の部分を前述のList.Contains関数で置き換えます

ただこのままだと、①に置き換える商品コードを追加するには、M関数のメンテナンスが必要です

ですので、次に

{“10001″,”10002”}の部分を別途作成するリストで置き換えます

このような感じです

これで、別途作成するリストの内容を置き換えれば、IF関数の出力も変ります

列削除の省略

置き換えのIF式を作成した後、既存の列を削除することもあるかと思います

工夫をすれば、列削除のステップを省略できます

まずは、

ダミーで変換タブから置き換えを行います

置き換えの内容はなんでもいいです

すると、数式タブの内容が次のようになっているはずです

こちらを次のように置き換えます

A:置き換え前の文字列の箇所は「each [商品コード]」とします

A’:置き換え後の文字列の箇所に先ほどのコード「if List.Contains(myCode,[商品コード]) then “①” else “②”」を使います

ここでポイントは「each」をうまく使うことです

eachを使うことで「各々の行」という意味になります

<まとめ>

今回は、置き換えのIF式をうまく簡略化する方法を解説しました

Power Queryはとにかく便利ですので、ついついクエリのステップが長くなったり、後でメンテナンスが面倒になったりするケースもあります

今回のように、工夫すれば簡略化できますので、ぜひ活用してみてください

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

にほんブログ村

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

M関数を使用して、可変で出現する特定文字の下の行を切り捨てる

以前、出現する特定文字の上の行を可変で削除する方法は過去の記事で紹介しました

今回は「特定文字の下」を削除する方法を解説したいと思います

上の画像に「部門」という文字が出現しますが、こちらの文字以降の行を可変で削除します

「部門」の文字が5行目に現れようが、100行目が現れようが、それ以降の行を削除できるようにします

ポイント

今回のポイントはM関数「List.PositionOf」を使用し、特定文字の行位置を取得することです

そして、行位置を取得するM関数は数式バー内に仕込むのもポイントです

List.PositionOf

改めて、M関数/List.PositionOfについて解説します

このM関数はリストの中から、特定の文字の位置を抽出します

文法は以下のようになります

List.PositionOf(リスト,文字列)

今回はこの「特定の文字の位置」を行位置に置き換えて使用します

List.PositionOf関数の第一引数のリストには、今回は「前ステップ名+列名」を使用します

行の保持

ホームタブに行の保持というメニューがあります

今回は「上位の行を保持」を使用して、特定の文字以降の行を削除します

メニュー通りに使用すると、下の画面で保持する行数を指定します

ここで注意して頂きたいのは、上の画像の行数を指定する箇所にList.PositionOfを埋め込むわけではありません

こちらには一旦、仮の行数を入力します(今回は5)

すると、上の画像のように「5」という数字が数式バーに入ります

こちらをM関数に置き換えます

数式バーの内容変更

上の内容では仮の行数で「行削除」が行われました

こちらをM関数により可変にします

その前に「行削除」が行われる前ステップの状態を確認します

受注NOの列に「部門」の文字列があります

こちらのステップ名と列名をM関数内のリストとして使用します

ですので、以下の画像のように数式バーを変更します

= Table.FirstN(昇格されたヘッダー数,List.PositionOf(昇格されたヘッダー数[受注NO],”部門”))

M関数:Table.FisrtNの第二引数に「5」と入力されていたところを、List.PositionOfに置き換えます

これで、特定文字で行削除を行う仕組みの完成です!

<まとめ>

今回は、List.PositionOf関数を使用して、特定文字列から下の行を可変で削除できるようにしました

内容を最初聞くと、難しそうに感じられる方もいらっしゃったかと思いますが、ダミーで行削除したステップの数式バーに関数を埋め込むだけなのでとても簡単です

記録マクロを修正するような内容でも、とても本格的なことができるのがPower Queryの良さですね!

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

にほんブログ村

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

Power Queryをクラウドで活用する方法~Power Automate使用~

【Power QueryをOneDriveなどのクラウドのエクセルでうまく活用する方法を解説します!】

クラウドがビジネスの主戦場になってきた今、Power Queryをクラウドでうまく活用できないか?という声を最近聞くようになりました

「Power Apps/Dataverse」「Power Automate」をうまく使用すれば、Power Queryをクラウドでも有効活用できます

ポイント

Dataverse

Dataverseでテーブルを作成する際、データソースにエクセルを指定するとPower Queryを使用した、データフローが作成されます

つまり、クラウド上のエクセルを触るわけではないですが、Power AppsではエクセルをデータソースにしてPower Queryを使用できます

Power Automate

Power Automateはクラウドで使用するRPAです

Power Automateでデータフロー/Power Queryを使用して作成したテーブルを、OneDrive上に転記することができます

ですので、Power Apps/DataVersexPower Auttomeの組み合わせをすれば、クラウド上でPower Queryを活用できます

データフローの作成

まずはテーブル画面からインポートを指定します

次にデータソースを「Excelブック」で指定します

データソースを指定したら、OneDrive内のファイルを指定します

次に取得元のテーブルを指定します

ここからはPower Queryエディターが立ち上がります

エクセルでPower Queryエディターを操作する場合は、クエリを作成後、読み込み処理を行います

Dataverseの場合には、読み込みではなく、既存のテーブルへのマッピング(列の割り当て)を行います

ただし、作成済みの既存のテーブルにマッピングするのではなく、全く新しくテーブルを作成する場合には「新しいテーブルに読み込む」を指定すればOKです

ちなみに「読み込まない」を指定して、データフロー上だけでテーブルを使用することもできます

Power Automate

こちらでは、要点を抜粋して記事を書かせて頂きます

データフローを更新するには、「データフローを更新する」アクションを使用します

データフローを更新した後に、OneDrive上にデータフローで更新したテーブルの内容をコピーするには、まずは「行を一覧にする」アクションを使用します

一覧にしたテーブルの各行は、繰り返し、OneDrive上のエクセルに追加します

<まとめ>

今回は、クラウド上でPower Queryを活用する方法を解説しました

Power AppsではPower Queryエディターを使用できるのでとても便利です

今回の記事ではPower Automateに関しては、要点を抜粋して記事を書かせて頂きました

実際には、使用したい内容に合わせて調整が必要です

例えば、データフローを更新すると、自動的にデータがテーブルに追加されます

ですので、時には、テーブルを削除するという対処方法が必要な時もあります

後、データフローを更新した際に、待ち時間を設定する必要も時にはあるかと思いますので、この点を意識しておく必要があります

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

にほんブログ村

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

受付終了しました⇒【Udemy講座リリース】とても簡単!明日から即使えるPower Query・表変換レシピ集

Udemyの講座の第二弾をリリースしました!

しばらく無料で購入できますので、購入してみてぜひ意見等をお寄せください!
*無料期間は前触れもなく終了する時がありますので、あらかじめご了承ください

⇒受付終了しました

内容としては、セルの結合に加えて行列の見出しが複数ある表などの「規則性の低い」表を、Power Queryで簡単に規則性の高い表に変換する方法を解説するものです

表変換に困っている、エクセルの手動処理から解放されたいという方にぜひ見て頂ければと思います

表変換のレシピは5つ用意しています

どれも実用性の高いものばかりですので「明日から」活用して頂ける内容だと自負しております

尚、Udemy講座第一弾については、ただ今セールスをしております

Power Queryを極めたい人必見!!M関数講座 ⇒ 特別クーポン

ガッツ鶴岡

UDEMYの動画コース「Power Queryを極めたい人必見!!M関数講座」の無料・勉強会の開催報告

昨日、リリース済みのUdemy動画コース「Power Queryを極めたい人必見!!M関数講座」の無料勉強会を開催しました

参加して頂いた皆様には感謝の一言です!

今後の動画コースの内容、並びに、Power Queryの技術改善に多くの示唆を得ることができました!

今回の勉強会では2点「let式を使用した複数ステップの集約」「クエリの関数化」に絞ってお話させて頂きました

長いクエリの対策

Power Queryは便利なので、Power Queryに慣れてくるとどうしても適用したステップが長くなります

ステップが長くなると、後で見返してもどこがどうなっているのかわからなくなったりします

この点が、皆でPower Queryを共有して使う時にも問題となります

今回、日常的に業務でPower Queryを使用している参加者の皆さんと議論させて頂き「長いクエリ」への対策が必要なことがよく認識できました

そして「let式を使用した複数ステップの集約」の技術が長いクエリへの対策に役立つことも、参加者の皆さんに意見や感想をお聞きしてよく認識できました

下の画像のように、カスタム列作成画面でlet式を使用すれば複数ステップを1つのステップに集約することができます

しかも、コメントなども入れれば処理が複数ステップに分かれている場合よりもステップの意図がわかりやすくなります

let式の文法に慣れる必要がありますが、この方式を積極的に使えば、長くクエリをシンプルにわかりやすくできます

クエリの関数化

「販売単価の列」「生存原価の列」と「販売個数の列」を乗算し「利益を計算する列」を作成するなどのカステム関数はこのブログでも紹介しました

今回解説したのは、クエリ自体を関数化する方法です

通常のカスタム関数では各行にて1つの値(販売単価、製造原価、販売個数⇒利益)が出力されますが、クエリの関数化の場合には値の代わりにテーブルが算出されます

今回紹介したのは、ファイル内のテーブルを取得するクエリの関数化ですが、思った以上に使い道がありそうです

複数ファイルを取得するのは、フォルダ内の複数ファイルを取得する方法でも行えます

参加者からおききしたのですが、この方法だとクエリが重くなり、フォルダからファイルを幾つか抜き出すケースもあるそうです

確かにフォルダ内のファイル一括取得は便利ですが、日常業務では確かに頻発しそうな問題だと感じました

今回紹介したデータ取得するクエリの関数化ではフォルダ内のファイルを細分化して取得することができるので、クエリが重くなる可能性を低くできます

データ取得以外にもクエリの関数化の用途がありそうなので、今後も積極的に研究していきたいと思います

<まとめ>

今回は本当に貴重な意見をいくつもお聞きすることができました

今後もユーザーの方との交流しながら、自分自身のスキルアップを図っていきたいと思います

Udemyの動画も頂いた指摘を基にして修正を行っていきたいと思います

⇒Udemyの動画・詳細はこちらから

にほんブログ村

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

Udemyの動画コースの内容についての無料・勉強会~M言語に触れる60分~

先日、Udemyで動画コース「Power Queryを極めたい人必見!!M関数講座*」の発売を開始しました

*期間限定の特別価格・1600円のクーポンです

なかなか他では知ることのない技術が詰まっています!

今回は、この動画コースの一部を体験して頂きたいと思い、無料勉強会を開きたいと思います

ぜひ、これから「M言語の素晴らしさ」や「Power Queryを通常のエクセルワークシートのように自由に扱う面白さ」を一人でも多くの方に広めていきたいと存じます!

概要

開催者/解説者:ガッツ鶴岡

IT講師をしております。Power QueryやPower BI、RPAなどを得意としております。ストアカ・ゴールドバッチ

・日時:2022年7月18日(月曜日・祝日)

 ①13:30-14:30⇒受付停止、②16:00-17:00⇒受付停止、③20:00-21:00⇒受付停止

・料金:無料

・内容:クエリの関数化、複数ステップの集約等

-クエリの関数化:作成済みのクエリ自体を関数化します。クエリを関数化すると、別なクエリの各行に対してテーブルを作成することができます。今回は複数ファイルの内容を、別途指定した内容のクエリを基にして一括取得します

-複数ステップの集約:let式を使用して、複数ステップの内容を1ステップの集約します。この技術を活用すると長いクエリをシンプルにすることができます

詳細・お申込み

こちらからお願いします

詳細・お申込み

以上、ぜひ一人でも多くの方にご参加いただきたいと存じます!

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

にほんブログ村

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

(続編)2つの表にてどの行が追加、削除されている? ⇒どの列が変更になっている?

前回の続きで、パワークエリを使用してだけでなくについても、の変更もあわせて変更箇所を特定できるようにしたいと思います

ポイント

2つの表を結合するのは前回と一緒です

今回はピボット解除を行い、複合キーを作ったうえで結合を行います

使うデータ

Before、Afterの2つの表を用意するのですが、キー(りんご、みかん・・)を行単位で作成し、列は月単位で作成します

最後は2つの表でどこが変わったかを明確にできるようにクエリを作成します

ピボット解除&複合キー作成

BefoerとAfter、それぞれのクエリはピボット解除を行い、縦横並びを縦縦並びに変えます

その後、「列のマージ」を使用して、複合キーを作成します

この複合キーを使用して、BeforeとAfterの2つの表を結合(マージ)します

マージ処理

ポイントでも前述したように、2つの表を複合キーを使用してマージ処理します

マージ種類は通常でいけば、完全結合がよいです

「完全外部」の結合であればAfterの表にて追加・削除されたものが全て網羅できます

但し、こちらは用途にあわせて6つの結合種類を使いわければよいかと思います

各種調整

判定列の追加

マージ後は、条件列を使用して〇×を判定する列を追加することができます

複合キーの分解

マージ後は複合キーを分解して必要な情報だけ抜きだすこともできます

複合キーの分解は「抽出」の「区切り記号の後のテキスト」を使用し、複合キーから「月」を抜き出します

そうすると、BeforeとAfterの比較が行いやすくなります

<まとめ>

今回はマージを更に有効活用して、行だけでなく、変更があった列と値を特定できるようにしました

ポイントはピボット解除と複合キーの作成により、2つの表を比較しやすい形で結合することです

ぜひ有効活用してみてください

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

にほんブログ村

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

これまで受けてきた質問と回答~Power BIレッスン日記~

Power BIはエクセルと比べると歴史が浅く、まだ知見が溜まりきっていません

私自身のためにもこれまで受けてきた質問と回答についてまとめていきます

スライサー文字列検索

質問

通常のスライサーにて文字列で検索すると、いちいち表示されたものをクリック・指定するのがとても大変です

回答

「その他のビジュアルの取得」から文字列検索用のスライサーを追加します

「Text Filter」が文字列検索用のスライサーです

「Text Filter」で文字列検索が行えます

複数のグラフの軸の範囲を常に同じにしたい

質問

複数のグラフを同じ基準で比較できるように、データの中身が変更になっても最大値と最小値を’常に’グラフ間で同じ基準にて設定できるようにしたい

回答

下の画像の関数マークから「変数」のような設定の仕方が可能です

適したフィールドの最小値や最大値で設定することができます

場合によっては、専用のテーブルを作成して「フィールドの最小値x1.3」などの調整も可能です

グラフのデータラベルの表示

質問

データラベルが重なり合って表示されません

回答

この場合はグラフを縦に延ばせば、表示されますが、常にこの方法を行うわけにはいきません

この場合は文字の向きを縦にする方法もあります

ビジュアルの書式設定の「データラベル」⇒「オプション」から設定は変えられます

取り込んだデータが表示されない

質問

複数シートから構成されるファイルのデータを取り込んでも、一部のシートのデータが「データ管理画面」に表示されない

ただ、エディタ画面には表示される

回答

この場合には、エクセルファイル内で事前にテーブル化を行っておくことをおすすめします

yyyyMM形式のカレンダーテーブルでの活用

質問

201901などの形式しかデータにない時があります

この場合は、そのままではカレンダーテーブルとリレーションが作成できません

回答

一番簡単なのは、データの変換(パワークエリエディタ)画面にて年と月の列に一旦分け、#date関数によりyyyy/MM/01に変える方法です

・年⇒列の追加タブ⇒抽出⇒最初の文字

・月⇒列の追加タブ⇒抽出⇒範囲

その後、カスタム列作成画面で#date関数を使い、「2019/01/01」に変えます

 ⇒#date(年,月,1)

*データ形式は日付形式

累計の計算

質問

累計の計算はどう行いますでしょうか?

回答

DAXで下記のようなメジャーを作成します

累計 = TOTALYTD(SUM(‘売上データ'[売上金額]),’Calendar'[Date],”3/31″)

*会計年度が4月~翌3月の前提

空欄の表示

質問

ピボット解除をした時に、空欄の箇所が表示されない

元データ

元データは9月(G列)まであるのに、6月までしか表示されない

ピボット解除後

回答

ピボット解除のステップ前に、空欄/null⇒0への置き換えが必要です

値の置き換えを行う前に、事前に列の形式は「整数」に変えておく必要があります

理由はテキスト形式などだと「0」への置き換えができないということです

ただ、もう一工夫が必要です

上記のように7月~が日付形式になっています

何故なら、nullがあると他の列と違い、自動的に7月~の列が日付形式になり、7月1日に自動変換されるからです

ですので、更に形式をテキスト形式にしておく必要があります

スライサーの非連動の設定

質問

グラフが複数あり、スライサーでの絞り込みを反映させたくないグラフがあります
ただ、相互作用の指定を行おうとしていますが、うまく非連動に設定できません

回答

グラフが複数あり、一部が重なっていると該当のグラフの「連動なし」マークが隠れてしまっていることもあります

この場合はグラフなどを一度小さくして、グラフや他のスライサーとの重なりが起こらないようにしてから「非連動」の設定を行います

ただし、この方法だと一度設定したものを崩さなくてはなりません

ですので、「選択項目」の機能を使うともっと手軽に「非連動」の設定が行えます

表示タブにある選択項目の機能を使えば、グラフが重なっていそうなところを一時的に非表示にできます

そして、非連動の設定を行った後に「表示」に設定を変えれば大丈夫です

<更に選択項目機能を有効活用>

スライサーなどが特に該当するのですが、「選択項目」での表示が一緒になっていると、どれを操作していいかわからなくなります

この場合はきちんと各々のビジュアルに「タイトル」を付けることで表示を区別することができます

タイトルを区分しやすいようにつければ、「選択項目」機能の表示もきちんと区分して表示されます

尚、タイトルは必ずしも下記の画像のように実際に表示する必要はありません

タイトルを非表示にしても選択項目には正しく表示されます

時間をデータラベルで表示する

質問

エクセルでは時間をグラフのデータラベルに表示できます

これがPower BIだとこんな風になります

時間と認識できない値に変換されてしまいます

回答

力技ですが、X軸のタイトルに時間を変換した内容を組み込むという方法を取りました

こちらはPower Queryでカスタム列にて作成します

ポイント1

時刻を時、分、秒の3つに分けます(例:1:01:01→1→1)

ポイント2

カスタム列で本来のX軸の項目と、上記の時間、分、秒を組み合わせます

この時、Text.Fromで時間、分、秒を文字列に変換することを忘れないようにしましょう!

スライサーで指定したある箇所のデータが表示されない

質問

データはきちんとあるのに、スライサーで指定するとデータが表示されない箇所がある

回答

スライサーの元データである「マスタデータ」と「リレーションで結んだ取引データ」間で齟齬がありました

マスタデータ
取引データ

ですので、部門Cをスライサーで指定してもキーが紐づいてないので内容が表示されません

これは話を分かりやすくするために「九州」「博多」としました

実際の質問では「東京・・A・・あ・・」みたいな、一目では違いが判別できない内容でした

やはりマスタデータはA001、A002のようなシンプルなコードをキーにして管理したいものです

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

にほんブログ村

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