2017/06/15

[Excel] Excel で JSON データを読み込む

この前の投稿でご紹介したように、Power Query が「データの取得と変換」となって Excel の標準機能となり、様々なデータの取り扱いが可能になりました。(2017年6月現在、Office 365 サブスクリプションの 最新の Excel が機能拡張の対象となります)

データの取得と変換である Power Query は、アドイン単体としての機能追加、さらに Power BI Desktop の登場によって、Power BI Desktop の ETL 機能 (Extract, Transform, Load)として拡張が行われてきました。Power Query は、Excel そして Power BI Desktop のデータの取り込み、変換・加工、ロードを受けもつ ETL 機能として今も進化し続けています。

JSON 形式のデータをプログラミングなしで取り込む

この進化し続ける「データの取得と変換」機能で、すぐにでも使ってほしいのが CSV データの取り込み機能ですが、人によっては JSON 形式データの取り込みのほうを重宝するかもしれません。

というのも、JSON 形式のデータ取り込みは、以前からも Power Query を使ってできていたのですが、現在は空のクエリから詳細エディターを開いて Power Query 関数を手で記述することなく、クエリ エディターのクリック操作のみで取り込みが可能になったからです。

また、JSON形式のデータを表形式に変換してワークシート上に読み込むためには、VBAを使う方法がこれまで多く紹介されていましたが、VBAでプログラムすることなく、JSON形式のデータをワークシートに展開することができるようになりました。

Web から JSON でデータを取り込む

実際のところ、JSON形式のデータによるテキスト ファイルをフォルダーから読み込むよりも、Web 上での検索条件設定の結果で、JSON形式のデータが表示されることが多いと思います。

サンプルとして、IT勉強会の告知・募集でお世話になることが多い connpass さんの API を使ってみたいと思います。

https://connpass.com/


connpass さんは、イベントサーチ API を提供していて、検索クエリの条件に応じた一覧を JSON 形式のデータとして取得することができます。

connpass API リファレンス

Web API や REST API でデータ提供サービスをしています、という場合、上記のような API リファレンスのページが必ずありますので、探してみてください。

たとえば "BI" というキーワードでイベントを検索するための URL は以下のようになります。

https://connpass.com/api/v1/event/?keyword=bi

この URL で、以下のような JSON 形式のデータによるレスポンスがブラウザに表示されます。


このデータを、Excel のワークシートに展開できるように2次元の表形式に「変換」して、私たちが読めるようにデータを加工することが、データの取得と変換のクエリ エディターだけでできます。上述のように VBA などでプログラミングをすること無しに可能です。

シンプルなデータの取り込み手順

JSON データの取り込みには2つの方法があります。ファイルから取り込む方法と、Web から取り込む方法です。ファイルから取り込む方法を使っても URL を指定することで Web からの取り込みが可能ですが、今回は「Web から」を使ってみます。


「Web から」のデータ取得は、これまでの Web クエリよりも高機能になっています。HTML ページの table だけではなく、今回のように JSON にも対応しているのです。

connpass の Web API 利用はサインインする必要がありません。以下のダイアログで "PowerBI" キーワードを含むイベントを検索する URL を入力し、OKをクリックします。(上記 JSON サンプルのキーワード "bi" の検索結果の数が多かったので、キーワードを PowerBI に変更しています。注意してください。)


接続が完了するとクエリ エディター ウィンドウが立ち上がり、以下の画面が表示されます。


注意点は、ここでファイルのアイコンの [connpass.com] をダブルクリックしてはいけません。アイコン上でマウスオーバーすると「開くにはダブルクリックします」というツールチップが表示されますが、ダブルクリックすると、現時点ではテキストファイルとして処理されてしまいます。リボンの [変換] タブの [形式を指定して開く] から [JSON] を選んでください



Json 形式で開くと以下のデータが表示されます。


results_returned、events、results_start、results_available の意味は、上述の API リファレンスに解説がありますので、詳細については後で参照してほしいのですが、情報から「指定した(PowerBI)キーワードの検索結果の総数は 19 件で、このファイル(データ)に含まれるのは 10 件、検索開始位置は 1 件目からですよ」という意味です。

あらかじめだいたいの件数がわかっている、もしくは取得する件数に上限を付けることができるのであれば、取得件数を 20 件に指定して全件を一気に取得することができます。PowerBI のサンプルは件数が少ないので、以下の検索条件にしてみます。

条件を変更(URLの変更)のため、クエリの設定の [適用したステップ] の [ソース] の横にある歯車マークをクリックします。


ダイアログの URL を変更します。取り込む件数の上限を 20 とするパラメーターの &count=20 を追記した URL です。


[OK] を押すと、results_returned が 19 に更新されます。


今回は例をシンプルにするために、検索結果で全件を取り込むパラメータを追加しました。また、匿名アクセスで利用が可能なので、認証に関する設定はありません。これらへの設定・対応はもちろん可能です。あらためて別の機会にご紹介したいと思います。

今、この状態は、検索したいキーワードを設定した URL をサーバーに送り、その結果を JSON 形式のデータとして Web 経由で 19 件取得しています。
この表示されているリストの events の List のリンクに、JSON 形式で 19件の検索結果の格納されています。
List のリンクをクリックすると、以下のように List リンク内のリストが 19件のデータとして展開されます。


Record のリンクをクリックすると、クリックした1件分だけの内容を確認することができますが、今回はすべての Record(勉強会)の詳細を一気に展開したいので、ここでリボンにある [テーブルへの変換] をクリックして、19件のレコードを含むリストを、テーブル(表)形式に変換します。すでに1件1レコードとして認識されているので、テーブルへの変換のダイアログのオプションはそのままで、[OK] ボタンをクリックします。


リストだったデータがテーブル形式になりました。


ここで Record リンクをクリックすると1件分のみの展開をしますが、テーブル形式に変換したことによる「列名」の Column1 の横にある [展開] ボタンを押すと、Record に含まれるデータをテーブル形式1件分のデータのみなした場合の列名の一覧が表示されます。ここで取り出す列を絞り込むこともできます。今回はすべての列を選択し、かつ、列名が長くなるので、[元の列名をプレフィックスとして使用します] のチェックをはずして、[OK] ボタンをクリックします。


JSON形式の元データを、21列19行のテーブル形式のデータに変換することができました。クエリ エディターの操作のみで1行もコードを書かずにここまでできました。


テーブル形式になったデータを Excel 向けに加工する

今回は Excel の「データの取得と変換」を使って connpass から検索結果を JSON 形式のデータで取得しました。その後、ここまでの処理・操作で、データはテーブル形式になりました。それぞれの列名がどのような意味なのか、connpass の API リファレンスのレスポンス フィールドで確認することが可能です。

ここで、必要な列や行のみを残す、といった加工が可能です。ここからの処理は、JSON だから特別、というものはなく、普通のテーブル形式のデータのフィルター オプションを操作する感覚でできるのは、クエリ エディターを使ったことがあれば理解できるでしょう。まだ慣れていない方は Power Query によるデータの加工や絞り込みについて、もう少しだけ情報収集するといいでしょう。

この connpass のデータや、特にサーバーからデータを取得した際に、Excel ユーザーが一瞬「おや?」と思うのは、日付データの扱いです。この日付データのトピックだけで結構長いお話になってしまうので、ここで詳細は割愛しますが、1つだけ意識してほしいのは、サーバーの日付形式のデータは、そのまま Excel で扱うことができない場合がある、ということです。


上記はデータ変換をせずにテーブル形式に変換したJSONデータをワークシートに読み込み、列名 started_at の1行目のセルの書式を表示したものです。2017-05-20T13:00:00+09:00 は勉強会・イベントの開始日のデータですが、Excel は単なる文字列として認識し、日付として扱っていません。
多くの場合、Excel は日付「らしい」文字列のセルへの入力があると、日付データの「シリアル値」に変換し、表示形式によって人間が日付と認識できるデータに見た目上変換します。残念ながら、2017-05-20T13:00:00+09:00 という ISO-8061 形式の文字列は Excel によって日付データと認識されなかった、となります。このままではシリアル値として扱っていないため、日付関連の関数の利用や演算ができません。

そのため、クエリ エディターで Excel が日付として認識できるように加工します。
データをワークシートに読み込む前の、クエリ エディター上で、対象となる日付のデータの started_at の列データを変換します。
started_at の列名をクリックし列を選択した状態で [変換] タブの [データ型の検出] を使ってもいいですし、この日付データ型は [日付/時刻/タイムゾーン] と呼ばれるものなので、列名横のデータ型のボタンを押して、明示的に選択することで変換可能です。[ABC 123] のアイコンが地球儀と時計のアイコンに変わります。


この変換ステップを行うことで、[日付/時刻] に変換できるようになります。[日付/時刻/タイムゾーン] に一度変換しないで、いきなり [日付/時刻] を選択すると Error になるので注意してください。データ型ボタンで [日付/時刻] を選ぶと、列タイプの変更 ダイアログが表示されるので、[新規手順の追加] を選んでください。[現在のものを置換] はタイムゾーン付きのデータに変換したステップを置き換えてしまうのでエラーになります。


このように日付データを変換して Excel のワークシートに読み込むことで、シリアル値として扱うことができます。

日本語データも特に問題なく扱うことができています。イベント(勉強会)の概要データの description は HTMLタグを含むテキストデータとして取り込まれています。ここからまた何らかの判断をしたい場合は、クエリ エディターの詳細エディター上で M 言語を使ってやってもいいですし、ワークシートに取り込んだ後で、関数や VBA を使ってもいいでしょう。


実際は考慮すべき点がいっぱい

今回は JSON 形式のデータでも、取得と変換のクエリ エディターを使うことで、プログラミングすること無しに Excel ワークシートに取り込むことができることを紹介するのが目的でした。しかし、それ以外のところで考慮すべきことが出てくるのが実際でしょう。

たとえば、取得する件数。サービスによっては上限が決まっていて、それ以上のデータの取得は、今回のような件数の指定のほかに、ページ数指定や、オフセット指定を使うことが推奨されます。
Power Query / 取得と変換のクエリ エディターで、詳細エディターを使ってこれらへの対応が可能です。ページ数やオフセットの「繰り返し」の処理は、URLを組み立てる一連のステップを「関数化」して、ページ数やオフセットを引数として渡す、という方法を使います。

この件数の上限への対応は結構「頭の体操」的なアイディアが必要になります。場合によっては CData さんの ODBC ドライバーを使うと幸せになれることがあります。
サイボウズの kintone の API も1回のリクエストあたりのデータ取得件数の上限がありますが、CData さんのドライバーを使うことで、その上限を気にせずにデータの取得が可能になります。

CData ODBC ドライバー一覧
https://www.cdata.com/jp/download/?f=odbc

Power Query/Excel 取得と変換/Power BI Desktop も標準機能としてさまざまなデータソースに対応していますが、CDataさんのような専業メーカーさんの ODBC ドライバーを試してみると、意外な発見や、解決策を見つけることができるかもしれません。

また、匿名アクセスではなく、ユーザー名+パスワード、アプリケーション登録による Web キーの利用など、サービスによって認証の方法はさまざまです。
connpass と同じくらい IT 勉強会の告知・募集・管理ツールで人気がある Doorkeeper の場合は、検索の URL の送信と一緒に Header データに認証情報を入れる必要があります。connpass は「Web から」の「基本」を使いましたが、Doorkeeper は「詳細設定」を使って、Header に認証情報をセットして、検索リクエストを送信する必要があります。Doorkeeper の API の解説には、Power BI Desktop や Excel クエリ エディターの具体的な設定方法や手順はないので、苦労するポイントでしょう。

登録して、Public API Access Token を取得
HTTP要求ヘッダーに Bearer を使ってトークンを追加
正直いうと、Doorkeeper API で Authorization Bearer に行きつくまで結構な時間がかかりました。

長くなりましたが、Excel のデータの取得と変換という新しい外部データ取り込みの仕組みを使うことで様々なデータソースへ接続し、様々なデータ形式のデータを扱うことができます。まだまだ進化中ですが、その方向はなるべくコーディングさせない方向で、JSON形式のデータであっても、コーディングなしでテーブル形式に展開して、ワークシートに取り込むことが可能です。

食わず嫌いせずに、この新しい機能をぜひ使ってみてください。

[追記] 最後まで読んでいただいてありがとうございます。取得と変換の機能の一つの「ピボットの解除」もJSON処理同様これまでVBAでなければできないと言われていた処理です。こちらもおすすめ機能なので是非使ってみてください。
https://road2cloudoffice.blogspot.jp/2018/03/blog-post.html

[追記] REST APIで取れないデータをWebページスクレイピングでとる方法を追加しました。
https://road2cloudoffice.blogspot.com/2020/05/excel-web.html

2017/06/12

[Excel] データの取得と変換が標準になりました

Excel の [データ] タブの [外部データの取り込み] がリボンから消え、[データの取得と変換] が標準機能になることが発表されていました。Insider などの最新版を早く使う更新チャンネルでは3月で変更されていましたが、一般の人向けのチャネルでも更新が反映されたようです。

バージョン 1704 ビルド 8067.2157

データの取得と変換がリボンで標準機能になりました
この [データの取得と変換] は、Power Query と呼ばれていたアドイン機能が Excel の標準機能として取り込まれたものです。さまざまなデータを扱うことができ、これまで VBA を使わなければできなかったデータの操作・取り込みも可能になっています。

マイクロソフトによる記事
統合された取得と変換(support.office.com)

上記のマイクロソフトによる記事に書かれているように、この機能は「Office 365 サブスクリプションご利用の場合に限ります。」です。

過去にこのブログでも「Power Query」の機能として、いくつか紹介しています。

Excel ユーザーのための Power Query

[Power Query/取得と変換] ブックにある複数のワークシートをまとめる

[Power Query/取得と変換] ブックにある複数のワークシートをまとめる 2

CSVファイルの取り込みも、この新しい「データの取得と変換」をぜひ使ってみてください。代表的な新機能として、CSVデータ取り込み時に条件を指定して取り込み件数を絞り込むことができます。大量件数のCSVファイルの扱いで悩んでいる人にとっては、VBA を使わなくても、Excel に取り込むデータ件数を少なくできます。

いやいやいや、それでも前の機能を使わなければならない、いずれは移行するとしても、今は前の機能を使いたい、という方は、オプションで復活させることができます。

[ファイル] - [オプション] - [データ] の「レガシ データ インポート ウィザードの表示」が、これまでの[外部データの取り込み] です。このチェックボックスをオンにすることで、[データの取得] から展開する [従来のウィザード] が追加・表示、その中に復活させることができます。この変更はすぐに反映されるので、Excel を立ち上げなおす必要はありません。



オプションの [データ] でチェックをしたのにリボンに表示されない、と慌てないでください。[データの取得] の下に [従来のウィザード] が追加され、そこにチェックした復活させたい機能があります。

2017/05/23

[Excel BI] ピボット テーブルとメジャー

先日、Power BI 勉強会で「使える!クイック メジャー」というお題でお時間をいただき、メジャーの紹介をいたしました。勉強会にご参加いただいたみなさま、ありがとうございました。また、このブログで「Excel ユーザーにとってのメジャーとは?」というタイトルの記事を過去に投稿しています。参照数などから、この話題は興味のある人が多いようで、エクセル ユーザーも「メジャー」や Power BI といったキーワードが気になっているようですね。

Office 製品は、機能はもう十分です、追加は要りません、と言われた時期もありましたが、現在、Excel はちょっとした改善ではなく、ガラリと使い勝手が変わる機能強化が押し寄せてきているように感じます。

そのような機能強化の中で「これは・・・」と私も驚いた機能をご紹介します。先日の勉強会では、メジャーを理解するにはいったんExcelを(セルを基本とするワークシートを)忘れたほうがいいかもしれない、という紹介をしたのですが、実は、Excel のピボット テーブルで「メジャー」を使う、というお話です。

データ モデル利用のデメリット

VLOOKUP関数などを使わず、いわゆる「表引き」を実現する「リレーションシップ」の機能は、Excel 2013から標準機能として搭載されました。

[ブログ] テーブルのすすめ ピボット テーブルとリレーションシップ
https://road2cloudoffice.blogspot.jp/2014/11/blog-post_7.html

[Office Support] Excel のテーブル間にリレーションシップを作成する
https://support.office.com/ja-jp/article/fe1b6be7-1d85-4add-a629-8a3848820be3

このリレーションシップ機能は、分析するデータを「データ モデル」に格納して、ピボット テーブルを作成しますが、当初、データ モデルにより使えなくなる機能がいくつかありました。その代表が「日付のグループ化ができない」と「集計フィールドが使えない」でした。
データ モデル利用によりグレイアウトされた集計フィールド
日付のグループ化などは機能拡張で後日対応しましたが、集計フィールドは日付のグループ化のような後日対応はありませんでした。集計フィールド同等の機能は、Power Pivot のメジャーや計算列で対応が可能だったからだと思います。

しかし、Power Pivot はすべてのエディションで利用可能ではありません。一部古いバージョン用を除いて、ダウンロードセンターから Power Pivot アドインのダウンロードもできなくなりました。
例えば、Office 365 Business の Excel で Power Pivot を利用することはできません。Office 365 ProPlus と Excel 2016 の Professional Plus のエディションに限られ、このエディションにはアドインとして最初から同梱されてます。つまり、所有している Excel のアドインに同梱されていなければ利用できない、ということです。

Excel 2016 のデータ モデルのピボット テーブル

では、Power Pivot を利用できないエディションでメジャーの作成ができないのか、ということです。
Excel でメジャーの作成を検索すると Power Pivot を使う情報がほとんどですが、Excel 2016 以降、Power Pivot アドインを含んでいない Office 365 Business 含め、いずれのエディションでも、ピボット テーブルでデータ モデルを利用すると、Power Pivot なしでも「メジャー」の作成が可能になっています。

以下のようなシンプルな列で構成されるテーブルを使って検証してみます。


このような表やテーブルからピボット テーブルを作成する時、[ピボットテーブルの作成] ダイアログ ウィンドウの [このデータをデータ モデルに追加する] のチェックを入れて、データ モデルにテーブルを追加します。ピボットテーブルは「データ モデル」に追加され、そこから作成されます。


複数テーブルの分析をしなくても、このチェックをオンにしてデータ モデルからピボットテーブルを作ることができます。
ピポット テーブル作成後、フィールド リスト ウィンドウに表示されるテーブル(サンプルでは [Table01])上で右クリックをすると、[メジャーの追加] を含むコンテキストメニューが表示されます。


[メジャーの追加] をクリックすると、メジャー のダイアログ ウィンドウが表示されます。ここで DAX を使ってメジャーの数式を作成・編集することが可能です。


集計フィールドの代替でメジャーを利用

Excel の集計フィールドの説明や解説では、テーブルの列の数値から消費税を計算したり、売上から原価を引いて粗利を計算したり、といった例が紹介されます。
データ モデルを使ったピボット テーブル レポートでは、集計フィールドのかわりにメジャーを使うことができますが、数式に相当する表記方法はメジャーの表記方法(=DAX数式)を使う必要があります。

たとえば、数値A列の数値に 0.08 を乗算する消費税の計算のようなものだと、集計フィールドを使うと以下のような数式になります。
集計フィールドによる消費税計算
メジャーでそのまま同じ式を使うと以下のようになります。

これは本物のメジャーなんですね。ですから、ワークシート上の構造化参照式のような数式はエラーになるんですね。='table01'[数値A]*0.08 という数式を入れた時のエラーは以下です。

この数式は無効または不完全です: 'Calculation error in measure 'table01'[mj2]: A single value for column '数値A' in table 'table01' cannot be determined. This can happen when a measure formula refers to a column that contains many values without specifying an aggregation such as min, max, count, or sum to get a single result.'。

'table01' の数値Aは単一の値として定義されていない(列で複数の行を持っている)から計算できません。min や max、count や sum などの集計関数を使って、単一の結果を取得して、それを使いなさい、というような内容です。

ピボット テーブル レポートの基本的な「動き」は、レポートの行ラベルまたは列ラベルとして設定された要素でグループ化をして集計するものです。よくあるのは行は製品区分、列は年度、のようなマトリクス表です。また、集計対象の要素が数値データで構成されていれば「合計」を計算し、数値以外を含んでいるデータであれば「個数」を集計します。これがいわゆる「暗黙のメジャー」というわけです。


ピボット テーブル レポートで計算が合わない原因

暗黙といわれるせいか、あまり意識されていないかもしれませんが、ピボット テーブルにおける数値列の計算は、まずは合計を計算します。たとえそれが列に対するパーセンテージを計算するものであっても、行ラベルのグループで「合計」をしてから、列合計を分母として、行ラベル合計を分子にして割合を計算、という順序です。(それゆえ実務では、サンプルとして使っている消費税の計算は、メジャーではなく、元のテーブルに列を追加して各行にて端数処理を行い合計すべきか、合計してから消費税を計算し、端数処理を行うかは注意しなければなりません)

ちょっと話がそれますが、ピボット テーブル機能が今ひとつ一般的にならず、人気がない、もしくは難しいといって避ける人が多いのは、個人的に上述の「まず、行・列のラベルのグループで合計しているんだよ」という暗黙の計算を意識していないせいではないかと思います。

ピボットあるあるの話で、かつ、間違った解説をしている記事がネット上にいくつかあるのですが、集計フィールドの解説で「受注金額は、単価*数量 で求められるので、ピボット テーブル レポートで 単価*数量 の数式の集計フィールドを追加すればいいんですよ。」と紹介しているものがあるのですが、これは完全な誤情報です。それ、本当に間違いです。Google での検索で結構上位にくるものでも、このような説明をしている記事を見ることができます。本当に注意してください。以下その解説です。

単純に以下を考えてみましょう。佐藤さんは、5月に、単価 100円のものを1個、単価1000円のものを1個売りました。佐藤さんの5月の売上はいくらでしょう?

100円*1個で100円と、1000円*1個で1000円、合計は 1,100円ですよね。

これをピボット テーブルの集計フィールドで、受注は 単価*数量 だからといって、受注の集計フィールドを作って計算すると、2,200円になります。2件しかありませんからすぐに間違いに気が付きますが、もし、件数が多い場合などすぐには気が付かないでしょう。

この計算は、まず、佐藤さんというレコード(行)を集めます。その次に、単価の列で合計します。単価は 100 と1000 が1つづつあるので 1100 です。次に数量の列で合計をします。1が2つあるので 2 になります。最後に集計フィールドで指定されている数式による演算を行います。1100 * 2 なので結果は 2200 です。

つまり、集計フィールドの例としてあげている数式の、受注金額=単価*数量 は、

受注金額 = SUM(テーブル[単価]) * SUM(テーブル[数量])

を計算しています。

これは、利益のような加算、減算であれば問題ありません。利益 = 売上 - 原価 の数式は、1行ごとに計算したものを最後に合計しても、総売上から総原価を引いても同じです。

ピボット テーブル レポートの計算結果が間違っていることがあるので使いたくない、という話を聞きます。「元データが汚いよね」というのも現実ですが、この行・列ラベルでの小計が優先されることを意識していない場合もあるかもしれません。

ここでメジャーに話が戻るのですが、その意味で、ピボット テーブルのメジャーの数式では、=[単価] * [数量] という数式を記入すると上述のエラーになります。明確に以下のように数式を書かなければなりません。そして、その段階で数式がおかしいことに気が付いてほしいわけです。

= SUM('テーブル'[単価]) * SUM('テーブル'[数量])

なお、受注金額の合計を求めたいのであれば、元データに単価*数量の列を追加するか、Power Query/取得と変換 のクエリエディターで計算列を追加し、あらかじめデータ モデルに計算データを取り込むことになります。Power BI Desktop の場合はデータを取り込んだ後で、計算列の追加を使ってもいいでしょう。

2017/05/12

[Power BI] 新しいライセンスと無料版の変更についての発表

日本では GW の真っ只中 5/3 に、Power BI の新しいライセンスと、それにともなう無料版の変更についての発表がありました。

Power BI はいくつかのサービスやコンポーネントから成り立つ「サービス ブランド名」です。今回の変更は、「Power BI Service」にかかわるライセンスの変更で、Excel アドオンの「Power Query」や「取得と変換」の機能そのものへの影響はありません。まず、ここがポイントですね。ただし、Power BI Desktop については、利用できる機能の範囲や容量がライセンスによって変わります。

以下は、英語版の情報と、日本マイクロソフトさんによる日本語訳の情報です。

Microsoft accelerates modern BI adoption with Power BI Premium

Power BI Premium の発表 および Power BI (無料) における変更点について

日本語訳情報のページにある以下の図がわかりやすいと思います。

Power BI Premium は Power BI Pro ライセンスと、ユーザー数カウントしない Power BI user ライセンスの組み合わせです。クラウド上の Power BI の「ノード」を占有することで、パフォーマンスの確保が可能で、ユーザー数でライセンスカウントをしないものです。ただし、ユーザー数が多くなれば、推奨されるノード数を増やさなければなりません。必要なノード数は「カリキュレーター」で求めることができます。

頻繁に使う、使わない、という一般ユーザーの想定にもよりますが、1ノードで1500人くらいには対応するようです。実際にカリキュレーターで試してみてください。なお、P1ノードと呼ばれる1ノードあたりの月額使用料は 545,000円 です。また、オンプレミスで Power BI Report Server の利用もノード数と同等分追加コストなしで利用可能になる、とのことです。

利用数が多くなれば、ユーザーあたりのラインセンス量が低くなることから、Power BI Premium の恩恵は規模の大きな組織、企業向けと言えるでしょう。

一方、Power BI Free は良い話と、注意しなければならない変更があります。
良い話は、多くの「Pro」と同じ機能が利用可能になる、という点です。
・接続できるデータソースの種類
・容量の上限
・更新頻度
・ストリームデータの行数制限

一方、Power BI Free の位置づけは「個人」(つまり、企業・組織での共同作業でなない)と明確に位置付けられたため、ダッシュボードの共有機能が利用できなくなります。
この意味は「共有の設定」ができないだけでなく、共有コンテンツの閲覧もできない、というものです。
上述については、Power BI の Community の掲示板のディスカッションから判断できました。
If I am a "Pro" user, can I share my dashboards with "Free" users? In our organization, there are really two types of individuals, Report Writers and Report Consumers. It would not make sense for us to pay for Pro licenses just for the users that we would be viewing some of the reports that we are putting together since they would not be using any of the other features of a pro license.
もし自分がProユーザーであれば、Freeのユーザーと自分のダッシュボードの共有はできますか?組織にはレポートを作る人と、レポートを見る人がいます。Proライセンスの機能を使わないユーザーであっても、レポートを見るためには Pro ライセンスが必要というのは理解できない、、、と言っているユーザーに対する管理人(MSFT)の返答は以下です。
That’s correct @nickjgill, as we announced this morning Power BI Premium tackles that issue. We have a calculator that can help organizations figure out which option makes sense depending on their mix of Pro Users and readers. Depending on size and usage, the solution might be different.
そのとおりで、その問題に対しての取り組みが Power BI Premium です。Proユーザーとリーダーの割合などカリキュレーターが支援します、、、

ソースはこちらです。

常時、Power BI Service を利用して、データインサイトの共有を即時にしたいのであれば、基本は Power BI Pro を1ユーザーあたり月額 1,090円でサブスクリプション購入する、共有コンテンツを利用する人数が多いようであれば、Power BI Premium の購入を検討する、という流れでしょう。ワークスペースにあるコンテンツ(ダッシュボード、App など)へのアクセスができないのが Free 版、と思って現時点は間違いないでしょう。

これらの変更は 6月1日からなので、今後さらに詳細の情報が公開されると思います。

こちらのブログも参考にしています。

2017/04/12

[Power BI Desktop] 期待のクイック メジャーが利用可能になりました

ついに待望の機能「クイック メジャー」が追加されました。

2017年4月現在、クイック メジャー (Quick Measures) は「簡易分析」という日本語訳が当てられていますが、近い将来、すべての訳は クイック メジャー に変更されそうです。

クイック メジャーは、Excel ユーザーにとってみればピボットテーブルの「計算の種類」です。Power BI Desktop ユーザーにとっては「自動DAX式生成機能」といえるでしょう。複雑な DAX 式を手で作るのではなく、ダイアログで条件などを指定することで「自動生成」してくれる機能です。

ピボットテーブル レポートを使って分析をしている Excel ユーザーにとっては、DAX 式学習のコスト削減になることは間違いありません。
ピボットテーブル レポートの「計算の種類」のリストから選択し、ダイアログボックスで条件設定するだけでできるのと同じ計算を、Power BI Desktop でやるには?という質問に、「DAX でイチから書くしかないですね」といつも言われ、その DAX 式が結構複雑になることから、Power BI Desktop の利用・移行を躊躇している人も多かったと思います。

たとえば以下のピボットテーブル レポートでは、計算の種類の「基準値との差分の比率」 - 「基準アイテム (前の月)」を使って、前月との差分を計算しています。


繰り返しになりますが、この列の計算結果は、ピボットテーブルの「計算の種類」からダイアログの設定のみで算出可能です。数式を弄ることは一切ありません。

これと同じ計算結果を Power BI Destop のレポートでは、テーブルのビジュアルで、クイック メジャーを使うことで、DAX を直接記述する必要はなくなりました。


このメジャーの DAX 式は以下になります。この DAX 式は、日本語のエラーメッセ―ジを含めて、すべて自動的に作成されたものです。


前月との差分の比率(MoM% = Month Over Month %) を計算するには、上記のような DAX 式を書かなければならないわけですが、それをクイック メジャーのダイアログで条件設定することで可能になるのは、すごく利用のハードルを下げてくれました。

クイック メジャーはまだ「プレビュー」機能です。バージョン 2.45.4704.442 64-bit (2017年4月) 版から利用可能ですが、 オプションのプレビュー機能のチェックをオンにする必要があるので注意してください。


とりいそぎ現時点でマイクロソフトから提供されている クイック メジャー の情報のページは以下になります。ぜひ参考にしてください。

Use Quick measures to easily perform common and powerful calculations (Preview)
https://powerbi.microsoft.com/ja-jp/documentation/powerbi-desktop-quick-measures/

2017/04/11

[Excel] 取得と変換が標準になります(更新チャンネル注意)

(注) 2017年3月の「取得と変換」データ タブの変更は更新チャンネル「Insider」限定です。
通常利用されている Office 365 の更新チャンネルではまだ適用されてません。
さらにパッケージ版(永続ライセンス)への変更についての発表はまだないようです。(2017年4月現在)

PowerBI エクセル アドインの Power Query は Excel 2016 より標準機能の「取得と変換」となりました、という話はこのブログで紹介してきたメインの内容でもあります。

Excel 2016 と Power Query (取得と変換)
https://road2cloudoffice.blogspot.jp/2015/11/excel-2016-power-query.html

その「取得と変換」について、さらに大きな変更が今年行われます。その日本語の記事がマイクロソフトより公開されていました。

統合された取得と変換

これまで外部データの取り込み機能として提供していた「外部データの取り込み」をリボンからはずして、「取得と変換」のみに変更する、というものです。2016年に標準機能になり、2017年には元の機能を置き換える、という流れですね。

ポイント1
2017年3月の更新は Insider 限定です。
Windows用 Excel2016 に対する更新(2017年3月)

通常は「Current(最新機能提供チャンネル)」や「Deferred の最初のリリース」などです。
更新チャンネル更新機能は以下のページが参考になります。
https://technet.microsoft.com/ja-jp/office/mt465751.aspx

チャンネルとリリース日については以下が参考になります。
https://technet.microsoft.com/ja-jp/library/mt592918.aspx

Office Insider はいち早く最新機能を利用し、検証するためのプログラムです。
https://products.office.com/ja-JP/office-insider

ポイント2
この更新は Office 365 サブスクリプションのみです。
上述の「統合された取得と変換」ページに以下の注意書きがあります。

そのため、Office Insider に登録していないユーザーの Excel では、まだこの変更は適用されませんのでご注意ください。

ご自分の Office が何かを調べる方法は以下のページの方法が参考になります。
使用している Office のバージョンを確認する方法

この方法で「製品情報 Office」の下に「サブスクリプション製品」とあれば、それは Office 365 の Office (笑) です。サブスクリプション製品という単語がなく、「ライセンス認証された製品」であれば、それは Office 365 ではない、永続ライセンスの Office (昔からの Office) です。

繰り返しになりますが、Office 365 サブスクリプション製品であっても、更新チャンネルの確認をしてください。最近は Insider プログラムの内容が一般公開されることが多く、更新チャンネルが「最新機能提供チャンネル」であっても、記事にある最新機能の更新確認ができないことも多々あります。

更新チャンネルの種類と特徴については、以前にブランチ(分岐)という呼び名も使われ、過去のネットの記事を参照すると混乱しがちですが、以下のマイクロソフトの記事を参考にしてください。

Office 365 ProPlus 更新プログラム チャンネルの概要

2017/04/03

[Office 365] Access Services 終了と PowerApps/Flow

Office ファミリーの1つで、今も利用者が多い Access に関連する、インパクトの大きい情報が公開されました。(2017年3月27日)

[Office Retirement Blog] Updating the Access Services in SharePoint Roadmap

Access Services は Office 365 から「リタイア」することになった、というものです。今年の6月以降は新規アプリケーション作成ができなくなり、来年の4月には「シャットダウン」する予定のようです。
利用していたデータは SharePoint リストに移すよう提案しています。
オンプレミスの SharePoint Server では、プロダクトライフサイクルポリシーにそって、次のバージョンでも Access Services や Access Web Apps 機能は提供され、もちろん、デスクトップの Access にこの決定は影響ないと上記のリンクでは紹介されています。Office 365 のサービスだけに影響します。

もしかすると「Access Services 」の説明が必要な方がいらっしゃるかもしれません。

Access Services は、SharePoint の機能(アプリ)の1つで、Access を使ってクラウド上の SQL Azure にデータを追加・更新・削除が可能で、そうして設計したデータベースを SharePoint に登録することでブラウザのみでデータを扱うこともできるようになります。

データベースのエンジンは SharePoint を経由して SQL Azure になり、テーブルの作成、データの入力や更新などは Access を使うことができるので、Access の知識でクラウドのデータベースを利用できるのがメリットといえます。

Access は1990年代から2000年初頭に「エンドユーザーコンピューティング」の代表格として扱われました。Access で簡易アプリケーションの開発をやられた方、それらを利用した方は相当多いんじゃないでしょうか。
エンドユーザーコンピューティングが目指していた、現場の人が、ノン・プログラミングまたはほんのちょっとだけのプログラミングで、業務を支援する仕組み開発は、業務アプリケーションもクラウドを利用したものが多くなるにつれて、ローカルの PC ではなく、インターネットやクラウド上に移っていくわけですが、Excel VBA や Access のような息の長いサービスは出てきてないように思われます。

技術や環境の移り変わりがものすごく早いため、ともいえるのですが、上述に近いエリアのサービスや製品は、記憶にあるだけでも結構あります。

InfoPath
(終了のお知らせ) https://blogs.office.com/2014/01/31/update-on-infopath-and-sharepoint-forms/
Visual Studio LightSwitch
(終了のお知らせ) https://blogs.msdn.microsoft.com/lightswitch/2016/10/14/lightswitch-update/
WebMatrix
(終了のお知らせ) https://blogs.iis.net/webmatrix/webmatrix-product-support-ends-on-november-1st-2017
Project Siena (Beta)
(終了のお知らせ) https://social.technet.microsoft.com/Forums/en-US/14cc68e9-7663-4611-a442-ba8d9d8834cb/welcome-to-microsoft-powerapps?forum=projectsiena

このように乱立気味だったエンドユーザー向けの開発・実行サービスは、どうやら PowerApps と Flow に一本化されそうな流れです。

PowerApps はスマホやタブレットといった新しいデバイスを念頭にしたアプリケーション開発サービスです。画面、フォームを作るもの、ですね。Flow はワークフロー処理を行ってくれますが、イベントによって何か処理をする、という感じでしょうか。

Excel も OneDrive を利用することで「アンケート機能」や「PowerBI連携」が可能になりますが、PowerApps と Excel の連携も可能です。Excel VBA と同じように Excel + PowerApps + Flow が使われるようになるかはこれからですが、Excel VBA の拡張や進化がないと公言されている以上、クラウドを利用するユーザーは PowerApps + Flow を浅くてもいいので学んでおいて損はないと思われます。以下が PowerApps と Flow の概要ページのリンクです。

PowerApps
https://powerapps.microsoft.com/ja-jp/tutorials/getting-started/
Flow
https://flow.microsoft.com/ja-jp/documentation/getting-started/


Powered by Blogger.

自己紹介

自分の写真
1989年新卒で日本IBMに入社しダウンサイジング担当としてホストコンピュータと繋げるオフコン、UNIX、PCサーバーのプロジェクトを担当。1997年 MSKK(現日本マイクロソフト)入社、NT4出荷に伴い企業向けサポート部門のビジネスマネージャーとして Excel 使いとなり、2002年 にMSMVPなどをサポートするユーザーコミュ二ティ部門を設立、部門をリード。2006年にMSKK退職後、企業向けのITトレーニング会社・団体に携わり、2014年頃よりPowerBI勉強会主催メンバーの一人として参画、そのコミュニティ活動で MSMVP for Data Platform PowerBI 2017受賞。https://mvp.microsoft.com/ja-jp/PublicProfile/5002635 同年にMVP Awardを返上し、アマゾン ウェブ サービス ジャパンに入社、コミュニティプログラム担当として現在に至る。