analytic-vba のすべての投稿

グラフを内容に合わせた形で表示する~Infographic Designer~

【グラフは見た目の瞬発力が重要です!】

今回は、一目でグラフの内容がわかる「Infographhic Designer」を使ったグラフの作り方を解説します

実際にレポートを触ってみたいという方はこちらをクリックしてみてください⇒サイト

開いたWEBサイトで、実際にレポートを操作できます

Infographic Designerとは?

Power BI Desktop上で「その他のビジュアル」からダウンロードできます!

要はアドインです!

次に開く画面で「INFO」と検索すると出てきます

そして、こちらでダウンロードします

「追加する」をクリックしたら、レビュー画面でこちらをご確認ください

元データ

元データは下の画像のデータになります

このデータをPower BI Desktopに取り込んだ上で2種類のグラフを作成します

左側のグラフの作成

男女別の形の選択

Infographic designerをクリックしてビジュアルをページに挿入します

ビジュアルを挿入したら次のようにデータを配置します

・Category ⇒性別

・Measure ⇒売上金額

次にこちらのマークをクリックします

これでMark Designerという画面が開きます

この画面で実際にグラフの形が設定できます

次に、

こちらのマークをクリックします

すると、別な画面が開きます

こちらの画面でフィル―ルドを選択します

すると、性別に「形」を選択できるようになります

「形」は様々なものが選べます

今回は、Peopleから形を選びます

形を選択したら「Apply」することを忘れないようにしてください

Applyで設定を完了したら「Back」で前画面に戻ります

テキストの作成

では、ここからはテキストを作成します

テキストを挿入するには「Mark Designer」の上の「Insert text」をクリックします

ここから、下の画像の「Text」の中身を設定します

「Text」の横のマーク「Data-Binding On」をクリックすると設定画面に移ります

次の画面では「None」を他のフィールドに切り替えます

こちらでフィールドを設定し、Applyをクリックして設定を確定します

次に上の画像の「Back」で前の画面に戻ります

これで「Text」の中身が設定できたので、フォントサイズと位置を調整します

上の画像の調整ができたら完成です

ちなみに「Text」の設定から「グラフ自体」の設定に戻すにはこちらを操作します

Mark Designerを消すには、右上の×印をクリックしてください

右側のグラフの作成

メジャーの作成

左側のグラフの選択に応じて、性別の売上割合を算出するメジャーを作成します

DIVIDEを使い「選択された性別の売上/左側のグラフでの選択」を全売上で割ります

全売上は「ALL」を使い、選択が行われてもすべてを抽出するようにします

売上割合 = DIVIDE(sum(‘売上金額'[売上金額]),CALCULATE(SUM(‘売上金額'[売上金額]),ALL(‘売上金額’)))

割合を表示するための設定

左側の設定と同じく、Infographic designerを使用します

今回は、Measureに上で作成したメジャーを設定します

すると下の画像のように100%とだけ表示されます

次に左側のグラフと同様に、Edit LinkをクリックしてMark Designerを開きます

Mark Designerが開いたとしても、Textの設定になっているので「Insert shape」をクリックします

次に開いた画面でグラフの形を選択します

今回は割合を表示するので、Layoutをクリックします

そして、Bound toの箇所をOuterに設定して前画面(Format)に戻ります

Format画面で2つ設定を行います

「Fill Percentage」の箇所でフィル―ルドを設定し、100の意味合いの「1」をofの隣に設定します

これで色などを調整したら完成です

ちなみにグラフの色は「値の出る場所」「出ない場所」に分けて設定できます

<まとめ>

今回は、アドイン機能の「Infographic designer」を使用して、内容に沿ったグラフの形を設定できるようにしました

全て英語なので、わかりずらい箇所もありますが、設定が必要な箇所はそんなにないはずです

X軸などの調整は他のビジュアルと同じ画面で設定することができます

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

にほんブログ村

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

ページ移動用のボタンをPower BIダッシュボードに作成する

今回は、Power BI Desktopの便利機能を活用して、簡単にページ移動ボタンを作成したいと思います

Ctrlキーを押しながらクリックするだけで、該当のページに飛ぶのでとても便利ですよ!

ページナビゲーター

ページ移動のボタンを作成するなら、この方法が一番手っ取り早いです

まず、挿入タブをクリックします

すると、右側に「ボタン」が見えますので、こちらをクリックします

出てきた一覧の下に「ページナビゲーター」というのが見えてきます

これだけで、ファイル内のページを網羅したボタンが作成できます

個別のページへのボタン

こちらは上の「ボタン」には限らず、「図形」や「イメージ/自身で画像アップロード」から作成します

今回はイメージでアップロードをした画像を使用して、個別のページへのボタンを作成します

まず、ページに画像を配置します

画像を配置したら、画像をクリックします

すると、アクションという文字が見えます

このアクションは当初は「オフ」になっているので「オン」にしておきます

その後、下の画像のように必要項目を設定します

設定は入力を必要とせず、クリックで行えます

参考:戻る

戻るボタンは既にアクションが設定されています

戻るボタンをクリックすると、該当ページへの遷移元に自動的に遷移します

<まとめ>

今回は、複数ページ間で移動するためのボタンの設定方法を解説しました

エクセルと違い、Power BIではとても簡単にページ移動のボタンが設定できるようになっています

Power BIには意外な便利技があります

知っているのと知っていないのでは損ですので、ぜひ便利技は研究しておさえておきましょう!

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

にほんブログ村

にほんブログ村 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 BIでWaterFallグラフを作成する~増減が線でわかる~

このページの読者の中には、どうやって値の増減をビジュアル化するか?について頭を悩ましたことがある方も多いと思います

下の画像を見てみてください。こちらは通常の縦棒グラフです

9月末残高が増減を伴った結果、一体どうなったのかがよくわかりません

今度は、この記事で紹介するWaterFallグラフです

値の増減と左の棒グラフがどうなったのかが点ではなく、線で理解ができます

増減が表示されるだけでなく「合計」という元データにない項目も自動で表示されるのも特徴です

このWaterFallグラフの作成は、あまり難しくはないですが、1点だけ問題があります

それは項目の並び替えの問題です

この問題は後で後述したいと思います

元データ

今回はこちらの増減を含むデータが元データになります

ビジュアルの選択

WaterFallグラフのマークをクリックします

データの配置

WaterFallグラフでは「カテゴリ」と「Y軸」を指定します

ここまでは、普通のグラフと同じですが、なかなか並び順が思うようにならなかったりします

並び順を調整する方法をこれから解説します

並び順の調整方法

並び順の調整はPower Queryエディターで行います

エディター画面でインデックス列を追加します

ここからデータ管理画面に移ります

この画面で「項目」列をインデックス列をもとにして並び替えを行えるようにします

ちなみにこの画面通りにレポート画面で並ぶとは限りません

並び替えは「列で並び替え」で行います

この時、項目列を指定したままにしておいてください

これでレポート画面でインデックス列通りに並び替えが行われます

<まとめ>

グラフはシンプルなものが一番です

このWaterFallグラフでシンプルにできるシーンも多いとおもいますので、ぜひ有効活用してください

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

にほんブログ村

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

Power BIでスピードメーターのようなグラフを作成する

Power BIでは「ゲージ」というグラフを作成できるようになっています。この「ゲージ」グラフを活用できるようになると、スピードメーターのような臨場感のあふれるグラフも作成できるようになります

ポイント

ゲージグラフは下の画像の赤印をクリックすると設定できます

ゲージグラフでは設定項目として、下の画像のように「値」「最小値」が出てくる他に「最大値」「目標値」という設定項目がでてきます

最初はこの複数の設定項目がよく意味が分からないと思います

こちらは下の画像のように表示の工夫でわかりやすく解説していきます

ゲージグラフの作成

目標値とは?

最小値と最大値はゲージグラフの端のことだと想像はつくと思います

では、目標値とは何か?

これは最大値を超えない範囲で、値が持つ温度をわかりやすくするための指標です

仮に値が目標値を超えると以下のような表示になります

ちなみに最小値や最大値、目標値は以下の欄でも設定できます

こちらは手動でも設定できます

DIAL GAUGE

こちらが、記事の冒頭で紹介したスピードメーターグラフです

こちらは「その他のビジュアル」で追加します

こちらのDIAL GAUGEの場合は「警戒ゾーン」「目標ゾーン」の2つの範囲を設定する必要があります

*こちらはあくまで私独自の解釈になります

警戒ゾーンは下の画像の「赤」のゾーンの箇所になります

目標ゾーンは下の画像の山吹色の箇所になります

最後に、達成値を計算してPercentageの欄に表示しましょう!

<まとめ>

今回は、ゲージグラフとゲージグラフを応用したDIAL GAUGEグラフの作成の仕方を解説しました

こちらのグラフはエクセルで作成しようとしたら、とにかく手間暇がかかります

紹介記事

ぜひ積極的に活用して、ダッシュボードをF1マシンのコクピットのようにしてみてください!

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

にほんブログ村

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

【クラウド活用】Power BIのデータセットの内容をOneDriveのエクセルに自動転記

Power BIで作成した内容をエクセルで検証したい、もしくはエクセル活用したいというケースも多いと思います

しかも、クラウド上にて利用できるととても便利です

今回はPower BI Desktopからクラウドに「発行」した内容を、OneDriveのエクセルにPower Automateを利用して自動転記する仕組みを解説します

ポイント

Power Automate内で、対象となるデータセットを指定した上でDaxクエリを書くのがポイントです

基本的にはクエリの中身は、後述するようにPower BI DeskTop内で作成し、コピーするのが無難です

クエリの準備

クエリを作成するのに何をしたらいいかわからないかたは、基本的には「SummarizeColumns」関数を使うところから始めるのがよいと思います

SummrizeColumns関数により、必要な対象列を指定します

クエリのコピー

Power BI Desktopで作成したDAX式は、前述のようにPower Automateのアクションにコピーします

画像に alt 属性が指定されていません。ファイル名: image-12-644x296.png

ただ、EVALUATEと宣言するのを忘れないでください

クエリの出力内容の処理

クエリの出力内容はデータ操作のアクションで処理します

その後に、エクセルに転記します

転記内容は関数で前処理を行っておきます

<まとめ>

今回はPower Automateによりクラウド上のデータセットから、OneDriveのエクセルに転記する方法を解説しました

クラウドでデータを連携できると、データ活用の効率があがるので、ぜひご利用頂きたいと思います

尚、今回の仕組みだとPower Automateのフローを動かすとOneDrive上には、自動的にデータ行が追加されていきます

シナリオによっては、重複が起こらないようにデータを削除しておく必要があるかと思います

その時には、クエリを実行する前のフローに対して、繰り返しエクセル行を削除しておくフローを追加する必要があります

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

にほんブログ村

にほんブログ村 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関数講座 ⇒ 特別クーポン

ガッツ鶴岡

【Power Query豆知識】ちょっとしたM関数の書き方の工夫でステップ数を削減する方法

どうしてもクエリが長くなってしまい、後で見返しても内容がよくわからず困っているという声をよく聞きます

今回は、M関数の書き方を工夫してステップ数を削減する「ちょいテク」を紹介します

カスタム列の追加時

カスタム関数を追加した後に、形式を行うことがあります

下の画像では、上の画像のランク列をテキスト形式に変更しています

このやり方だと、形式変更のステップが追加されてしまいます

このケースの場合は、カスタム列を作成したステップに戻り、数式バーに一文を足します

足した一文はこちらです

,Text.Type

この一文を足すだけで、カスタム列の追加と形式変更(テキスト形式への変更)が同一ステップで行えます

では、整数形式に直す時にはどうコードを書くのか?

いちいちすべてコードを覚えておく必要はありません

下の画像は整数形式に直した時の数式バーの記述です

一度、整数形式に変更するステップを追加した後に「コードを把握」し、カスタム列の追加ステップを修正した後、形式変更のステップを削除すればいいのです

列の削除

ある列を削除した後に、別の列を削除したくなることはよくあります

この時は、最初に列を削除したステップに、2度目の内容を追加します

下の画像は1度目に列を削除した時の数式バーの内容です

こちらの波括弧:{}内に2度目に削除した列名を追加します

これで、2度目に列を削除したステップは不要となります

列名に空欄が入っている時は注意が必要です

この時は列名をコピーした方が早いです

<まとめ>

今回は、ちょっとした長いクエリを短くする工夫を紹介しました

今回の内容で一気にステップ数が減るわけではありません

ただ地道に工夫を積み上げると成果には確実につながりますので、ぜひ今回のような工夫を積み上げるようにしましょう

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

にほんブログ村

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