タグ別アーカイブ: excel

【クラウド活用】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へ

グラフデータを非表示にしてもグラフは表示する方法

グラフを人に見せる際にデータを見せるのは格好悪いと思い、データを非表示にしたらグラフの中味も消えてしまった経験はないですか?

グラフは本来、表示されているデータを元にして作成されるので、元データを非表示にするとグラフの中味は消えてしまいます

ところが、エクセルは便利にできているので、回避する方法がちゃんとあるのです

非表示および空白のセル

グラフデータが消えてしまったグラフ上で右クリックをすると、「データの選択」が見えます

こちらをクリックすると「非表示および空白のセル」という表示が下に見えます

こちらをクリックすると別なダイアログボックスが表示されます

ダイアログボックスの内容は下の画像のようになっています

こちらで「非表示の行と列のデータを表示する」にチェックを入れてください

これで元通りに表示されます

今回は短いですが以上です

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

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

にほんブログ村

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

Power Automate Desktop逆引き辞典~Excel~

Microsoft社の無料RPA・Power Automate Desktopのアクションの中から、Excelのアクションを紹介します

 ➡逆引き辞典に戻る

ファイルを開く

アクション名称:Excelの起動

新規や既存のエクセルファイルを開けます

パラメーターの選択

Excelの起動

新規のファイルと既存のファイルの両方を指定できます

次のドキュメントを開く➡ドキュメントパス

開く既存のファイルを指定できます

インスタンスを表示する

開いたファイルの表示・非表示を指定できます

セルの値の抽出(単一セル)

アクション名称:Excelワークシートからの読み取り

 上記のようにアクションを設定した場合には、開いたファイルの「選択したシート」の「3列目」「3行目」のセルの値を抽出して、変数/ExcelDataに格納します

ちなみに、開いたファイルの選択したシートは次の画像の内容です

パラメーターの選択

Excelインスタンス

通常は開いたファイルが自動設定されます

下の画像はファイルを開いたアクションの画像です

「生成された変数」はExcelinstanceにて設定されています。こちらの変数が自動設定されます

取得

単一のセルの値を設定します

先頭列・先頭行

セルの位置の列と行を設定します

サンプル

実際に使用する時には1行目のフォルダ指定を変えてください

セル範囲の抽出(複数セル)

アクション名称:Excelワークシートからの読み取り

上記のように設定した場合には、2列目2行目のセルから3列目8行目までのデータを抽出します

抽出した内容は変数/ExcelDataに格納されます

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

取得

「セル範囲の値」を設定します

先頭列~最終行

取得する範囲を設定します

詳細➡範囲の最初の行に列名が含まれます

選択した範囲の1行目を見出しにする場合は「オン」にします

セルへの入力

アクション名称:Excelワークシートに書き込み

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

書き込む値

セルに入力する値を設定します(上の画像では変数を入力値に設定しています)

書き込むモード

入力するセル位置を指定する方法か、カーソルがある位置に入力する方法いずれかを指定できます

列~行

書き込むモードを「指定したセル上」と指定した場合にセル位置を設定します

セル範囲の選択

アクション名称:Excelワークシート内のセルの選択

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

選択

通常は絶対位置で指定したセルで問題ありません。もう一つ相対位置で指定する方法があります(エクセル関数のOFFSET関数と同じ様な機能です)

先頭行~最終行

セル範囲を設定します

サンプル

新たなワークシートの挿入

アクション名称:新しいワークシートの追加

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

新しいワークシート名

挿入するワークシートの名称を設定します

名前を付けてワークシートを追加

新たなワークシートを既存のワークシートの後に挿入するか、前に挿入するかを設定します

サンプル

作業するワークシートの選択

アクション名称:アクティブなExcelワークシートの選択

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

次と共にワークシートをアクティブ化

選択するワークシートを「名前:シート名」か「左からの位置:インデックス」で指定するかを設定します

ワークシート名/ワークシート インデックス

名前で指定した場合には「シート名」、インデックスで指定した場合は「左からの位置」を設定します

サンプル

セルへの値の書込み

アクション名:Excelワークシートに書き込み

下のGIF画像では、ダイアログボックスに入力した値をエクセルシートの2行目2列目に入力しています

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

書き込む値

変数を選択、もしくは直接値を設定します

書き込むモード

「指定したセル上」もしくは「現在のアクティブなセル上/カーソルの選択位置」を設定します

*「指定したセル上」を選択した場合には下の欄でセル位置を指定します

値を書き込むセルの列位置を設定します

値を書き込むセルの行位置を設定します

サンプル

最終行+1行の行位置取得

アクション名:Excelワークシートから列における最初の空の行を取得

 下のGIF画像では、このアクションでA列の最終行+1行の行位置を取得して変数に格納し、メッセージボックスで変数の値を表示しています

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

最終行+1行の位置を取得する列を設定します

サンプル

最終行+1行、最終列+1列の行列・位置取得

アクション名:Excelワークシートから最初の空の列や行を取得

最終行+1行の位置取得を参照

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

Excelマクロの実行

このアクションでは、エクセルファイル内のマクロを「マクロ名」で指定して実行することができます

マクロ実行時には、マクロに引数を渡すこともできます

下のGIF画像ではダイアログボックスに入力されたメッセージをまず変数:UserInputに格納しています

その後、エクセルファイルを起動した後に、メッセージを表示するマクロ(マクロ名:test)を実行します

その際に、マクロ名:testに引数/UserInputを渡しています

メッセージ表示しているのは、RPAでダイアログボックスに入力した変数の内容です

上のGIF画像で実行したマクロは以下の画像の内容になっています

パラメーターの選択

Excelインスタンス

セルの値の抽出(単一セル)参照

マクロ

マクロ名;引数1;引数2・・・の形で実行するマクロと引数を指定できます

サンプル

ファイル位置を指定し直す必要があります

*テキスト/RPAコードと実行するマクロを含むエクセルファイルを添付しています

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

にほんブログ村

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

M言語に慣れる_3回目~ダイナミックフィルタリング~

M言語は難しくない!】今回は、数式バーを編集して「ダイナミックフィルタリング」を行ってみましょう!。ここで言う「ダイナミックフィルタリング」とはフィルタリングの値を固定せず、元データの追加や修正に応じてフィルタリングの値を自動で変動させていくものです。

例えば、受注金額・全体の「最高値」などは毎月、変動していくはずです

 ダイナミックフィルタリングでは、例えば「全体最高値」の半額未満だった担当者のリストを、毎月自動で抽出を行えるようにします

 今回のダイナミックフィルタリングを行うにあたっては、M言語を一から作成するといったことはしません

 あくまで、Power Queryエディタ(以降エディタ)にて、既に数式バーに記録されているM言語を修正するだけです

マクロ作成で言えば、記録マクロ修正するような内容です

記録されているM言語を修正するだけでも、かなりの内容が行えることを肌で感じて頂ければ幸いです!

目次

今回のポイント

今回使用するデータと行いたいこと

演習1/受注金額1位の担当者を抽出

演習2/最高値の半分未満の担当者抽出

<まとめ>

今回のポイント

ステップ名変更

実は、エディタのステップ名は自分好みに修正していけます

今回の内容とは直接関係ないですが、ステップ名を変更していけると、後々、M言語の管理がとても楽になります

参照ステップ

 前々回、ステップをスキップして参照することで「参照ステップ」を作成しました

前々回は平均値を参照しましたが、今回は「最高値」を参照します

 クエリを更新する毎に、参照ステップの「最高値」も更新してフィルタリングの値とします

数式バーへの参照ステップ組み入れ

一度、数式バーにてダミー値でフィルタリングを行います

ダミーで設定をした箇所に、前述の参照ステップを組み入れます

今回使用するデータと行いたいこと

今回は次のデータを使用します

演習データ

担当者別に受注金額を管理する表です

 こちらの表の中味が変更になっても、「最高受注金額」の担当者や「最高受注金額の半分未満」の担当者のリストを自動で抽出できるようにします

演習の中で、こちらの表にデータを新たに追加したりします

今回のポイントと使用するデータを確認したところで、本格的な演習に入ります!

続きを読む M言語に慣れる_3回目~ダイナミックフィルタリング~

名前機能について

皆さんは、学生時代に友達にあだ名とかつけていませんでしたでしょうか?

例えば、佐藤という苗字の友人が複数いたら、呼ぶのに便利ですよね?

このあだ名はエクセルを使用する際にも結構、有効活用できます

エクセルのセミナーを行っていて、「あれ?あまり知られていないな・・」と感じたのが名前機能です

これは結構、便利なのでぜひ有効活用して頂きたいと思います

この名前機能を有効活用すると、次のGIF画像のようなこともできてしまいます!

名前機能とは何?

文字通り、セルや範囲に名前、すなわちあだ名をつけてあげる機能です

他人が作成したエクセルファイルは使いにくいですよね

実は自分自身でも「あれってこの数式ってどうなってたっけ?」と後から思うこともあります

常に重要なセルの箇所や範囲に名前をつけて管理できるようにしておけば、エクセルを使いやすくできます

ちなみに、付けた名前は「数式タブ」の「名前の管理」で一覧化されます

つけた名前の一覧は名前ボックスからも確認できます

名前の付け方

何種類か方法はありますが、今回は一番シンプルな方法だけ解説します

下の画像のように、「名前の管理」の右にある名前の定義から①名前と②参照範囲を設定します

上の画像の場合は、下の画像のペンギンを参照範囲として指定しています

もし、後から「ペンギン」とは何のことか忘れてしまった場合は、名前ボックスからペンギンの場所に移動することができます

関数内での名前の使用

名前は関数の中でも使用することができます

例えば、下の画像の表に「検索範囲」と名前を付けておきます

この検索用の範囲をVLOOKUP関数に使うのですが、名前で代用することが可能です

<まとめ>

短い内容でしたが、いかがでしたでしょうか?

名前機能についてのイメージは明確になりましたでしょうか?

この名前機能は様々な応用が効きます

このブログでも2つ事例を紹介しています

興味のある方はぜひそちらの記事もご参照ください

1.VLOOKUP関数の参照範囲を切り替える 記事

下のGIF画像では、VLOOKUP関数の2つの参照範囲に「レディース」「メンズ」と名前をつけています。

VLOOKUP関数内のINDIRECT関数が都度、2つの名前を切り替えながら参照しているイメージになります

2.表示画像の切り替え記事

スライサーなどで表示を切り替える際に、表示画像も変えて「何に切り替えたのか?」を分かり易くします

こちらも1と同じくINDIRECT関数を使用します


にほんブログ村

テーブル列操作関数

M関数辞典はこちらから

列結合

Table.NestedJoin

文法

キー列を基にして2つのテーブルの内容を結合します

=Table.NestedJoin(テーブル名1,キー,テーブル名2,キー,新しい列名,省略可|結合タイプ)

*結合タイプが省略された場合には、左外部結合が指定される

使用方法

列名をリストとして返す

Table.ColumnNames

文法

ハードコード/自動記録された列名リストをTable.ColumnNamesで置き換えると、列が増えても列名のリストが網羅される

使用前
使用後

実際の使用例

 ➡【豆知識】ピポット解除時の空欄の扱い

リストからテーブル作成

Table.FromColumns

文法

リストを組み合わせてテーブルを作成します

例:Table.FromColumns({[勤務日],[曜日]})

使用例

列変換(研究中)

Table.TransformColumns

文法

元データ
Table.TransformColumns
列変換後


にほんブログ村

クエリの高速化・関数

M関数辞典はこちらから

キー設定

Table.AddKey

文法

マージを行う際に、主キーを設定してクエリ処理を高速化します

*明細側(多)より集計側(1)で高速化の効果が高いです

Table.AddKey(テーブル名, 主キーにする列, 主キー有無)

使用方法

let
With.Addkey1=Table.AddKey(売上台帳,{“商品コード”},true),
With.Addkey2=Table.AddKey(商品台帳,{“商品コード”},true),
ソース = 売上台帳,
マージされたクエリ数 = Table.NestedJoin(With.Addkey1, {“商品コード”}, With.Addkey2, {“商品コード”}, “商品台帳”, JoinKind.LeftOuter),
#”展開された 商品台帳” = Table.ExpandTableColumn(マージされたクエリ数, “商品台帳”, {“販売単価”}, {“商品台帳.販売単価”}),
挿入された乗算 = Table.AddColumn(#”展開された 商品台帳”, “乗算”, each [商品台帳.販売単価] * [販売個数], Int64.Type),
#”名前が変更された列 ” = Table.RenameColumns(挿入された乗算,{{“乗算”, “販売金額”}})
in
#”名前が変更された列 “

バッファー化

マージ対象のクエリをバッファー化します

文法

=Table.Buffer(最終ステップ名)


にほんブログ村

文字列・操作関数

文字列を操作する為の関数です

M関数辞典はこちらから

文字列・型式への変換

Text.From

文法

値を文字列・型式に変換

*3であれば”3”を返す

=Text.From(値)

使用方法

実際の使用例

 ➡M言語に慣れる_2回目~カスタム列~

検索文字の位置抽出

Text.PositionOf

文法

文字列の中にある特定の文字の最初の出現位置を抽出します

注意点としては、M言語は0ベースなのでカウントが0からはじまります

例えば、1文字目に特定の文字列が見つかった場合には0を返します

この点はご注意ください

*最後の出現位置を抽出することもできます

*文字列が見つからない場合は-1を返します

= Text.PositionOf(“検索対象・文字列”,”検索・文字列”,省略可)

使用方法1
使用方法2

実際の使用例

 ➡M言語に慣れる_5回目~M関数を検索する方法~

検索文字の有無判定

Text.Contains

文法

検索対象の文字列に、検索文字が含まれているかどうかを判定

含まれている場合にはtrueを、そうでない場合にはfalseを返します

=Text.Contains(“検索対象・文字列”,”検索・文字列”)

使用方法

実際の使用例

 ➡【M言語に慣れる】_15回目_TEXT関数/文字列関数

文字列の置換

Text.Replace

文法

文字列内に出現する、指定文字を全て置き換えます

=Text(文字列,置き換える対象の文字列,置き換え後の文字列)

使用方法

実際の使用例

 ➡【M言語に慣れる】_15回目_TEXT関数/文字列関数

数値型式への変換

Number.From

文法

文字型式などの型式から数値型式に変換します

=Number.From(値)

指定桁数に揃える

Text.PadStart

文法

文字列を指定した桁数になるように、文字列を繰返し補う

=Text.PadStart(元の文字列,指定桁数,補う文字列)

実際の使用例

 ➡ 【M言語実践】グループ別にIDを設定

にほんブログ村

テーブル行操作関数

VBAで言えば、メソッドにあたるものです

M関数辞典はこちらから

行削除/先頭からの行数指定

Table.RemoveFirstN

文法

指定した行数分を先頭行から削除

Table.RemoveFirstN(テーブル名, 行数指定) 
Dataテーブル
使用方法

実際の使用例はこちらから

連番追加

Table.AddIndexColumn

文法

テーブルに新たな「連番」の列を追加します

連番の開始番号や増分は調整できます

Table.AddIndexColumn(テーブル名, 列名, 開始番号, 増分) 
画像に alt 属性が指定されていません。ファイル名: image-12.png
Dataテーブル
使用方法1
使用方法2

実際の使用例

 ➡ M言語に慣れる_10回目~グループ毎に連番作成~

先頭行から見出し/ヘッダー作成

Table.PromoteHeaders

文法

先頭行をテーブルの見出し/ヘッダーにします

画像に alt 属性が指定されていません。ファイル名: image-12.png
Dataテーブル
使用例

実際の使用例

 ➡不規則に散らばっているデータを一括取得~M関数~

行フィルター

Table.SelectRows

文法

抽出条件と一致する行を選択します

Table.SelectRows(テーブル名, 抽出条件)
画像に alt 属性が指定されていません。ファイル名: image-12.png
Dataテーブル
使用方法

実際の使用例

 ➡M言語に慣れる_8回目~EACHを使いこなしてM関数作成~

 ➡POWER QUERYエディタ上で複数条件付き合計処理~M関数使用


にほんブログ村

M言語に慣れる_5回目~M関数を検索する方法~

【M言語は難しくない!】今回は使用方法に合ったM関数を、Power Queryエディタ(以降エディタ)上で検索する方法を紹介します

エクセル関数では、エクセルシート上で直接、関数を検索できます

実は、Power Queryでも同じような機能があります

エクセル関数と同じ様に検索した後に、そのまま使い回すことはできませんが、この機能を覚えておくととても便利です

目次

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

M関数一覧を取得

一覧をテーブル化

実際に検索してみる

<まとめ>

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

まずは準備として、空のクエリを作成します

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

次に「その他のデータソース」を選択し、「空のクエリ」をクリックします

続きを読む M言語に慣れる_5回目~M関数を検索する方法~