昔のExcelしか使ったことがない人むけのゆるいPowerBI入門的な記事その1・・・というか自分の理解の記録

皆さんこんにちは。胡田です。 今回は珍しくPowerBIのお話です。私はPowerBIはデータ可視化ツールとしては以前からずっと便利に使っているのですが、PowerBI内でデータを加工したりすることはこれまで避けていました。なぜかというと「良くわからなくて、新しい方法を学ぶ時間が取れなかったから」です。 これは単純に言い訳なのですが、私はプログラムが書けるし書くことが好きなので、なにかデータ加工的な事をする必要がある場合にはデータベースの外側でプログラムで書いてしまいます。そして、データベースをプログラムで更新しちゃう。そして出来上がったデータベースに対してPowerBIを接続してしまえば必要な可視化が簡単にできてしまいます。なので、PowerBIの中でテーブルを定義して、データを操作して…ということはしなくてもどうにでもなったのです。 ですが、他の人と一緒にトレーニングも兼ねてちょっとした複数のcsvファイルを元にしたレポートを作成する機会があり、PowerBIで全部やりたいという希望がその一緒に作業する人にあったので、一緒に付き合うことにしました。 いや、勝手がわからなくて結構苦労しました(笑 というわけで、私のような「昔ExcelでVLookup関数を駆使して頑張ったことあったけどもうやりたくないなぁ…」と言っているような知識レベルの人に向けてPowerBIで戸惑ったところと理解したところを少し書いておきたいと思います。 理想的には「(昔の)Excelしか使ったことがない人に向けたPowerBIの導入記事」的な感じになるといいのですが、はて、さて。 私はこのあたり本気で初心者かつまともに勉強もせずいじって直感で理解しているだけなのでPowerBIをガリガリやっている人からするとレベルが低かったり効率が悪かったり、他にもっと適切なやり方があったりするのではと思いますが、そこは生暖かい目で見守りつつ、コメントで優しくアドバイスいただければと思います。 とりあえず好き勝手にデータを編集できない Excelでは新規にファイルを作るとシートがあり、セルがあり、適当な場所にいきなり値を書き込んだり出来るわけですが、PowerBIではそうはいきません。保持できるデータはすべてきちんと定義されたテーブルの形になります。データベースですね。 とりあえずまずは感覚を掴むためにテスト的にテーブルを作ってみて、データを書き込んで…と試してみたかったので、「データの入力」を行いました。 出てくるのは「テーブルの作成」画面です。このあたりはExcelよりもAccessに近いんですかね?すいません、Accessもほとんど使ったことなくてですね…。 で、この画面でテーブルを作成するのは特に違和感ありませんでした。 列を追加したり、複数レコードにしてみたり、はい。「読み込み」をクリックするとテーブルが作成されます。 ここまではまぁ違和感ないのですが、じゃぁ、このテーブルを編集したい!と思うと早速やり方がよくわからなくなりました。直接この画面では編集できないのですね。 これ、裏側ではすべて「クエリ」が作成され、それによってデータが読み込まれたということになっているようですね。 「クエリの編集」をクリックすると、このテーブルを生成したクエリを確認、編集することができます。 全部クエリで表現されるというのは面白いですね。Excelとは全く異なるアプローチです。 「ソース」をクリックすると再度テーブル作成のGUIが表示されました。なるほど。 1つのセルに「関数を書く」というアプローチではない このテーブルの作成画面は感覚的にはExcelに近い感じで操作出来るのですが、別に関数が書けるわけではないです。 こんな感じにExcelでの関数っぽい書き方をしてもたんに文字列になっています。 このあたりきちんとテーブルとして列の定義が厳密という感じでしょうか。Excelよりも列の型が厳密なSharePointの感覚に近いという印象です。 で、なにか関数を使って計算等したければ、新しい「列」を定義してその中で列の定義として関数を書いたり、テーブル全体に対して「メジャー」を定義するというアプローチになるようです。(間違ってたら突っ込みください。) 「新しい列」をクリックするとこのように列の定義を書くことができます。 これはセル1つに対して定義しているのではなくて、列全体の定義です。Excelとは違います。 ためしに”あ”と入力してみます。 今は2レコードしか無いですが、すべてのレコードの「列」には「あ」と入力されます。列の定義が「あ」なので当然ですね。あくまでも定義したが「列」であって、Excelのように1セルに入力したのでは無いことがわかります。 この列の定義の中では「同じレコードの他の列」を参照することができます。 ※「テーブル1」だと補完してくれなくて面倒だったのでテーブル名を「Table1」に変更しました。 補完してくれますね! 「列」の定義をTable1の列1にしたところ、きちんと同じレコードの列1の値が入力されました。Excelだと他のセルの値を相対参照、絶対参照で自由に参照する事ができますが、PowerBI内のテーブルの定義ではそういうアプローチでは無いことがわかります。 で、この列の定義の中では「DAX式」が書けるのだそうです。なぜなら、そうやって怒られたから…。 DAX式を列の定義として入力してあげればいろいろと他の列の値なんかを使いながらデータ加工ができそうです。 リファレンスはこちらにあります! - [Data Analysis Expressions (DAX) Reference - DAX | Microsoft Docs](https://docs.microsoft.com/ja-jp/dax/data-analysis-expressions-dax-reference) たとえば「列」に対して「列1」のテキストの左から3文字を入力してみます。 こんな感じに簡単に行なえます。 列の定義に書けるのがDAX式(DAX functions)ということを理解しておけばまずOKですね。 DAX式とPowerQueryは違うものなので注意! ちなみに、DAX式とクエリの中で記載できるクエリの文法は全く別物なので注意が必要です。というか私は当初混乱しました。 こちらPower Query。「クエリ」の中で使うものです。 Power Query M function reference - PowerQuery M | Microsoft Docs ...

March 15, 2019 · 1 min · 胡田昌彦

2017/03/17 今週のトピックス

卒業式シーズン真っ只中、今週のトピックスです。 - CSP における OMS の使用について【3/15 更新】 – Microsoft Partner Network ブログ 2 users (この記事は 2017 年 2 月 17 日にHybrid Cloud Best Practices blog に掲載された記事 OMS in CSP の翻訳です。最新情報についてはリンク元のページをご参照ください。) クラウド ソリューション プロバイダー (C… [blogs.technet.microsof... ](http://b.hatena.ne.jp/ebibibi/?url=https%3A%2F%2Fblogs.technet.microsoft.com%2F) - テクノロジー - あとで読む - [![ebibibi](https://ebiwordpress.azureedge.net/windowsadmin/profile_l.gif)](http://b.hatena.ne.jp/ebibibi/)ebibibi w, b, csp, oms, azure ![Twitterでのツイートを閲覧](http://cdn-ak.b.st-hatena.com/images/icon-twitter.png)18 clicks 2017/03/17 - Announcing Azure SQL Database Premium RS, 4TB storage options, and enhanced portal experience | Blog | Microsoft Azure 2 users Get credits that enable: 4 Windows or Linux Virtual Machines 24 x 7 for a month And much more… Learn more ...

March 17, 2017 · 2 min · 胡田昌彦

2017/03/03 今週のトピックス

今日は桃の節句ですね。さて、今週のトピックスです。 - Announcing preview of Azure HDInsight 3.6 with Apache Spark 2.1 | Blog | Microsoft Azure 1 user Get credits that enable: 4 Windows or Linux Virtual Machines 24 x 7 for a month And much more… Learn more [azure.microsoft.com ](http://b.hatena.ne.jp/ebibibi/?url=https%3A%2F%2Fazure.microsoft.com%2F) - テクノロジー - あとで読む - [![ebibibi](https://ebiwordpress.azureedge.net/windowsadmin/profile_l.gif)](http://b.hatena.ne.jp/ebibibi/)ebibibi w, b, azure ![Twitterでのツイートを閲覧](http://cdn-ak.b.st-hatena.com/images/icon-twitter.png)27 clicks 2017/03/03 - Azure Command Line 2.0 now generally available | Blog | Microsoft Azure 1 user Back in September, we announced Azure CLI 2.0 Preview . Today, we’re announcing the general availability of the vm , acs , storage an… ...

March 3, 2017 · 3 min · 胡田昌彦

2017/01/20  今週のトピックス

寒い週末になりました。さて、今週のトピックスです。 - arm and api for creation and managing OMS – Customer Feedback for Microsoft Azure 1 user We would like to add new OMS Workspaces using arm templates or powershell api. That way we could fully automate the creation of OMS f… [feedback.azure.com ](http://b.hatena.ne.jp/ebibibi/?url=http%3A%2F%2Ffeedback.azure.com%2F) - テクノロジー - あとで読む - [![ebibibi](https://ebiwordpress.azureedge.net/windowsadmin/profile_l.gif)](http://b.hatena.ne.jp/ebibibi/)ebibibi w, b, oms, arm, powershell ![Twitterでのツイートを閲覧](http://cdn-ak.b.st-hatena.com/images/icon-twitter.png)28 clicks 2017/01/20 - OMS Security malware assessment adds support for more antimalware vendors – Operations Management Suite Blog 1 user FAST FACT : OMS Security is adding support for Symantec Endpoint Protection and Trend Micro Deep Security to its Antimalware assessme… ...

January 20, 2017 · 4 min · 胡田昌彦

Azure EAポータルに関してのメモ

仕事で最近Azure EAポータルに触ることが多いので自分用のメモを書き残しておきます。 そもそもAzure EAポータルにはアクセスしたこともなければその必要すらない人がほとんどだとは思います。だからこそ情報が少なく初めのとっかかりが難しく感じましたので、記録を…。 - Azure EAポータルはAzureをEA契約で購入した際に、その課金管理やサブスクリプションの作成等を行うところです。 - https://ea.azure.com - 一企業に閉じたものではなく、Azure EAライセンスを販売するLSP(License Splution Partner)から複数企業の末端のアカウントまで統一的に管理できる仕組みが備わっています。 - 権限は明確に階層化されています。(パートナー、企業、部門(部署)アカウント) - 通常の企業ユーザーは「企業(エンタープライズ)」以下の領域を管理します。 - 私はLSPにて働いているので「パートナー」レベルからの管理に関わります。普通に考えるとさらに上位にMicrosoftの管理レベルがあるのかもしれません。 - LSPレベルで「マークアップ」を行わないと企業レベルでは課金情報が確認できません。(マークアップ≒顧客に対しての利益or割引の利率を設定する操作) - 企業内では、エンタープライズ管理者かまそこから下位の管理者を設定していける。 - 部門(部署)を使う、使わないは任意 - アカウントを部署に割り当てる場合にはその対応は必ず1対1となる。後からの変更は自由に可能。 - アカウントに対してのアカウント管理者は自由に設定、変更可能。 - サブスクリプションのアカウント間での転送が可能。ただし、同一の組織アカウントに所属するアカウント間での移動でない場合には共同管理者設定は失われ、サブスクリプションに紐ずく規定のディレクトリも変更される。 - それぞれのアカウントは自分に権限のある場所しか見られない。 - 使用量のダウンロードはポータルからも実施可能だが、APIキーを生成してAPIを通じても可能。 - APIキーには半年間の期限がある。プライマリキーとセカンダリキーがあり、さらに任意のタイミングで再生成も可能。 - Power BIにはAzure Enterpriseという接続があり、EAポータルにて生成したAPIキーとエンロールメント番号だけわかればレポートの生成が可能。 - 料金は「マークアップ前」、「マークアップ後」があり、APIキー作成時にもその考慮が必要。(アカウントによってどちらかが決まる) - PowerBI利用時にはメールを使ったアクティブ化の処理が必要であり、そのため組織アカウントで、メールを受け取れる状況である必要がある。 (以下2016/06/20追記) - 実際の請求額はAzure EAポータルの「使用状況の概要」にて確認できる。 - 使用状況のダウンロードから「Azureサービス、個別請求の料金」と「Azure Marketplace」の詳細をダウンロードできる。 - しかし、Azure Marketplaceに関しては現時点では全量出力されていない模様。今後の改善が望まれる。 - 請求は四半期に一度、マネタリーコミットメントからの超過料金と個別請求の料金が1つの請求書で、Azure Marketplaceがまた別の請求書来る。 - 利用料金のポータルへの反映はオフィシャルには5営業日の時差がある。実際には2,3営業日で確定する模様。 - 「使用状況のダウンロード」にて「月単位レポートのダウンロード」としたときに、(現在6/19/2016)の用にでていることで何日までデータが確定しているかを確認可能(な模様) (以下2016/06/21追記) - 消費税に関して。請求書には明細ごとは税抜き価格、加えて税抜き合計、消費税合計、税込み価格合計が記載されている。

June 7, 2016 · 1 min · 胡田昌彦

Azureの課金データの管理

Azureは従量課金ですので、課金データをきちんと管理する必要があります。ほおっておくとあっという間に課金額が増えてしまいますので…。 そんなわけで課金レポートを常時見られるようにしておくのが望ましいのです。課金レポートの実装方法には様々な方法がありますが…、私のお勧めはPowerBIのレポートを利用する方法です。EA契約限定ですが…。 Power BIのサンプルレポートの中に、AzureのEA契約用のレポートが用意されているので、これを使えば非常に簡単にAzureの課金レポートを作成できます。しかも無償でOKです。 このようなレポートが非常に簡単に作成出来ます。 しかも、Power BIですので、レポートの編集も簡単です。任意の形態でAzureの課金情報を確認可能となります。 個人的にはせっかくの標準機能ですので使わないのはもったいないと思っております。 ですが、様々な事情でPower BIを利用できないケースもあるかもしれません。(Azure EAがつかえるということは無償でAADも作れるわけで、AADアカウントがあればPowerBIも使えますから、本当は使えないケースは皆無に近いはずなのですが…。) そんな時にはEAポータルから使用量のデータを取得し、Excelで…というのもやり方によっては有りかと思います。そんな時には以下のPowerShellスクリプトが非常に便利です。 スクリプト Automatically Download Microsoft Azure Billing Reports (Enterprise Agreement) CSVファイルのダウンロード作業を簡単に自動化してくれます。

May 3, 2016 · 1 min · 胡田昌彦