tag:blogger.com,1999:blog-56703791299395551022024-02-19T20:33:14.303+09:00MukkuMuku備忘頑張るのは明日からMukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.comBlogger702125tag:blogger.com,1999:blog-5670379129939555102.post-27776593860280714552016-05-03T13:32:00.000+09:002016-05-03T14:47:01.113+09:00Power BI - 26 - Power BI Desktop と SharePoint リストPower BI Desktop で SharePoint リストのデータを使用できるようにしてみる。以前から可能だったのだけど、そのままインポートするのもなんので クエリエディタ で加工してみた。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi459TORivcIobIUzmR60dlWMh-90oluCZj41tmWwWIZd7QzvK9ItQd_5f0BNuTO4JikLFDA5tnNNRwQE4L43GS38lRf6wt5AIilWBW9xuijCbD9D1TedS1BL_eqApFBb66ds5Xfl2JqFEV/s1600/2016050201.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi459TORivcIobIUzmR60dlWMh-90oluCZj41tmWwWIZd7QzvK9ItQd_5f0BNuTO4JikLFDA5tnNNRwQE4L43GS38lRf6wt5AIilWBW9xuijCbD9D1TedS1BL_eqApFBb66ds5Xfl2JqFEV/s1600/2016050201.png" /></a></div>
SharePoint リストについては "SharePoint リスト" / "SharePoint Online リスト" とふたつあるけど機能は同じ。<br />
<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR-w8o-jrxVyN9S5HVP_ByGm2pfkO1HfpskNH-kNgUZwfHt-79gkvwI_eO5otmhU5SwB45Ic2ezGfGa5AY4dsRyAp655LDix2kle0ToFVlfjMU2UueHyr1CdBLUSrc7wR5MgyPyP4V0i5R/s1600/2016050203.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR-w8o-jrxVyN9S5HVP_ByGm2pfkO1HfpskNH-kNgUZwfHt-79gkvwI_eO5otmhU5SwB45Ic2ezGfGa5AY4dsRyAp655LDix2kle0ToFVlfjMU2UueHyr1CdBLUSrc7wR5MgyPyP4V0i5R/s640/2016050203.png" width="640" /></a></div>
SharePoint リストが配置された SharePoint サイトのURLを投入。ルートサイトではなく"サイトのルート URL"。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtz0lL6_ah4Lc-9oGqYyg2aIciO8ZtQhXkn8QqM_-dG037WbeA8zdBv8L9Jqqly8A3yOEIBei2E8WBMTQ9EpPJ2dr_BArQtmZRl1ZdKoO5qChjShbGJE-UhZf3d6jMKgulVzfSVSjLF9cd/s1600/2016050202.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtz0lL6_ah4Lc-9oGqYyg2aIciO8ZtQhXkn8QqM_-dG037WbeA8zdBv8L9Jqqly8A3yOEIBei2E8WBMTQ9EpPJ2dr_BArQtmZRl1ZdKoO5qChjShbGJE-UhZf3d6jMKgulVzfSVSjLF9cd/s1600/2016050202.png" /></a></div>
カスタム リスト 以外のSharePoint リストも"ナビゲーターダイアログ"に表示されるけれども、必要なSharePoint リストを選択し [編集] でクエリエディタへ。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv8Uquepathh4fb5AHbGS3ljTU8Jh2L73tDrt7rB25opjlcKzca_ujVJstpg9smXHTpuYm1hMju0-b-1OZSOxhR8eEZNkJUQo2URSVuOk8Y1RPZ-6HZa4IN8zWCPZ350eLJmPUGtON6oaM/s1600/2016050221.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv8Uquepathh4fb5AHbGS3ljTU8Jh2L73tDrt7rB25opjlcKzca_ujVJstpg9smXHTpuYm1hMju0-b-1OZSOxhR8eEZNkJUQo2URSVuOk8Y1RPZ-6HZa4IN8zWCPZ350eLJmPUGtON6oaM/s1600/2016050221.png" /></a></div>
カスタム リストには "タイトル"(テキスト) / "日付のみ1"(日付) / "金額"(数値:通貨) を用意してある。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI4fA6qmCQJAg7zrN9J5iXi6V3jQbQiKNo1dBmBBqVRAqsEqE3N3cixbwtu0z4mrtb1ssKpvvhGUpxpJDp7Zg6AVi6FTNFWHvuPrkRmO7pkou2HlFZC8b38l3DmmytKi-S3kZi922APpTY/s1600/2016050204.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI4fA6qmCQJAg7zrN9J5iXi6V3jQbQiKNo1dBmBBqVRAqsEqE3N3cixbwtu0z4mrtb1ssKpvvhGUpxpJDp7Zg6AVi6FTNFWHvuPrkRmO7pkou2HlFZC8b38l3DmmytKi-S3kZi922APpTY/s1600/2016050204.png" /></a></div>
該当のSharePoint リストに関連するカラムが多数含まれるが、追加したカスタムフィールドには調整すべき内容が含まれている。SharePoint Onlineの場合、日付時刻に関するフィールドはUTC+0なので普段使用しているタイムゾーンに変換する必要がある。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj06Jcpi9WOLzxEjSsQWdQHmEF-FquDtcQsErgN_tXFqTYk-LsvgfLytpGfSDGwCTj1WC9E1wip6Wnp1MD5Z58i2mG7IMdBMv32aX6Pq6iJxHk-2oQBYWdEUuQT9rPt9_-1j1u-ZzojMhDB/s1600/2016050205.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj06Jcpi9WOLzxEjSsQWdQHmEF-FquDtcQsErgN_tXFqTYk-LsvgfLytpGfSDGwCTj1WC9E1wip6Wnp1MD5Z58i2mG7IMdBMv32aX6Pq6iJxHk-2oQBYWdEUuQT9rPt9_-1j1u-ZzojMhDB/s1600/2016050205.png" /></a></div>
そこで、タイムゾーン変換をするためにデータ型:日付/時刻/タイムゾーンに変更。<br />
カラム見出しにあるデータ型アイコンをクリック やリボンに配置された"データ型" ドロップダウンでも操作可能。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSYz9zt61RWOMd90n4WoPxpQFNJJIGPbp_cylpSzfi2sGnXgZ7ZihFtmKmFJhOewcRjrr9jdixiZnXWIRCcmHqMDr70AMpl4ar1jw5OdhTOzjOk3BbN-AlrtcLFnYP3YGJonOt88Pj9a5A/s1600/2016050207.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="69" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSYz9zt61RWOMd90n4WoPxpQFNJJIGPbp_cylpSzfi2sGnXgZ7ZihFtmKmFJhOewcRjrr9jdixiZnXWIRCcmHqMDr70AMpl4ar1jw5OdhTOzjOk3BbN-AlrtcLFnYP3YGJonOt88Pj9a5A/s640/2016050207.png" width="640" /></a></div>
変換するカラムをすべて選択するなどして、<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSieTJjEfEbG-BU6cSllzrkV1esrp08XxCD9-K21ZCoIXgMlJWsy0rK2kcJus24aEcvT9Nmj5fYpUm0HudTt4JYzaXxhPOdfbQsh8AlSwKaP5I09-hwKgkTJyMAuh68eLn97lexDxMtmFI/s1600/2016050208.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSieTJjEfEbG-BU6cSllzrkV1esrp08XxCD9-K21ZCoIXgMlJWsy0rK2kcJus24aEcvT9Nmj5fYpUm0HudTt4JYzaXxhPOdfbQsh8AlSwKaP5I09-hwKgkTJyMAuh68eLn97lexDxMtmFI/s1600/2016050208.png" /></a></div>
[変換]タブ - [日付と時刻の列]グループ- [時刻]- [現地時間] でタイムゾーン変換。ここでいう"現地時間" とは ローカルシステムのタイムゾーン。なので、SharePoint サイト で使用されるタイムゾーンと一致していれば日付と時間は同一になる。複数のカスタムリストを処理する上で、それぞれ異なるタイムゾーンを使用している場合、特定のタイムゾーンに変換することができるということでもある。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-gYhv6_d7sR6lkNGbUQ5JrfphORjiXdJ2QnqG7a-WoG0WFLBRxv9j7YpQGDCgR_DfTDe5w_kibLfu3P7c8pbGPjitxyVtCEKl2O9h9tHGXTLoEaBNrbAMdj0zZtcozB7UsAwnl8izfTMm/s1600/2016050209.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="71" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-gYhv6_d7sR6lkNGbUQ5JrfphORjiXdJ2QnqG7a-WoG0WFLBRxv9j7YpQGDCgR_DfTDe5w_kibLfu3P7c8pbGPjitxyVtCEKl2O9h9tHGXTLoEaBNrbAMdj0zZtcozB7UsAwnl8izfTMm/s640/2016050209.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6Map_oFs-lLteaADjjNC4MOCSdGx9RucPH4cNP2lGzf_JuswAbYM7UyfDLUxXXwdyVkS_sRRsFSumeWdYjRlrEFcDyUXgVfsYj1wD6G1XIie1wLIa1OBOqSF3451saqta5YqHbdxPmrdi/s1600/2016050210.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6Map_oFs-lLteaADjjNC4MOCSdGx9RucPH4cNP2lGzf_JuswAbYM7UyfDLUxXXwdyVkS_sRRsFSumeWdYjRlrEFcDyUXgVfsYj1wD6G1XIie1wLIa1OBOqSF3451saqta5YqHbdxPmrdi/s1600/2016050210.png" /></a></div>
データ型の変更をそれぞれ実施する。タイムゾーンを含むデータ型(type datetimezone) の値からそれぞれ"抽出"としてもここでは同じ結果になる。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVsbt3LyLjlG0YZBdDCaF7Kz03BN35lFh0zMQyskIge-aBRZSc70saiXH5agTB7m6Ux1trgHcnaWDVd9j4g7Pkov9-1o58T2-Ux85nbiqt_QhBpkAnDbfQEFwuTzXHci9SimBQ5kqbq8yC/s1600/2016050211.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVsbt3LyLjlG0YZBdDCaF7Kz03BN35lFh0zMQyskIge-aBRZSc70saiXH5agTB7m6Ux1trgHcnaWDVd9j4g7Pkov9-1o58T2-Ux85nbiqt_QhBpkAnDbfQEFwuTzXHci9SimBQ5kqbq8yC/s1600/2016050211.png" /></a></div>
そして、カラム名の変更<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ7XrfdzEbdAwvCAPXN232A_AIDAr-2kycytnSY8lr7hXUotHVrHhKhtm7cqbUJfMkL-rbio49lAv41Q17E1IfoKYGY9_9_0Rb1FohV97ioK0okpP5b67OiwjtqbtiuYARlNtxpM1Ot2xF/s1600/2016050212.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZ7XrfdzEbdAwvCAPXN232A_AIDAr-2kycytnSY8lr7hXUotHVrHhKhtm7cqbUJfMkL-rbio49lAv41Q17E1IfoKYGY9_9_0Rb1FohV97ioK0okpP5b67OiwjtqbtiuYARlNtxpM1Ot2xF/s640/2016050212.png" width="640" /></a></div>
データモデルにロードし書式など整えるとレポートに使用できる状態になる。<br />
<br />
<b>FieldValuesAsText を使う</b><br />
FieldValuesAsText 列 を使用することで、SharePoint サイト指定もしくはユーザ プロファイル指定のフォーマットでカスタム リストのアイテムを取得することもできる。タイムゾーンの変換など手間がなくなるのだけど、カラム名が内部列名になってしまうのでとても分かりずらい。これらについては 詳細エディタや数式エディタで記述を実施するなどしてみた。<br />
<br />
Source = SharePoint.Tables("<i>(SharePoint Site URL)</i>", [ApiVersion = 15]),<br />
SharePoint_List01 = Source{[Id="<i>(GUID)</i>"]}[Items],<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZIKLrsW8HQdxt-8NEh1ozn-zGE5F-Nk_yj07DGwKeBQO-zdWopV8K16FwzXsQjnohgSdmPngiaG34gG3wmpV2BXmiMlH3zJs2l-keWWG3_seOUhviGpPPnBaz9NTF2lLT0Vnq9Og8lpu/s1600/2016050213.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGZIKLrsW8HQdxt-8NEh1ozn-zGE5F-Nk_yj07DGwKeBQO-zdWopV8K16FwzXsQjnohgSdmPngiaG34gG3wmpV2BXmiMlH3zJs2l-keWWG3_seOUhviGpPPnBaz9NTF2lLT0Vnq9Og8lpu/s1600/2016050213.png" /></a></div>
<br />
List_FieldValuesAsText = SharePoint_List01[FieldValuesAsText], <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgizYy94E64il64OnjkYec2qhLfz3Kbp-0ipLNg6KHOKtS_zC_JhnOKeflr3yI-o4Q_iyvDGnsve7oCF_E42mH5LmdJ3yQ4YJjeZiKyFWV05B2ehwsXTN6Qwy1yeMioljw4-MVhUCMIkfBD/s1600/2016050214.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgizYy94E64il64OnjkYec2qhLfz3Kbp-0ipLNg6KHOKtS_zC_JhnOKeflr3yI-o4Q_iyvDGnsve7oCF_E42mH5LmdJ3yQ4YJjeZiKyFWV05B2ehwsXTN6Qwy1yeMioljw4-MVhUCMIkfBD/s1600/2016050214.png" /></a></div>
<br />
ExpandedFieldValuesAsText = Table.FromRecords(List_FieldValuesAsText), <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJXsjL0XaQIfTJR8wvseKVZb4IQv2ym8id2CEac6RPS7FP4hoOimiQNWmRSucFRct2P8WzpwXT0tfbGKPyG4JkzWy9yT02k7hAe7bTCeE64NO9nuUk4C___1pPjgPWYxnmJeutntC8MxjH/s1600/2016050216.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJXsjL0XaQIfTJR8wvseKVZb4IQv2ym8id2CEac6RPS7FP4hoOimiQNWmRSucFRct2P8WzpwXT0tfbGKPyG4JkzWy9yT02k7hAe7bTCeE64NO9nuUk4C___1pPjgPWYxnmJeutntC8MxjH/s640/2016050216.png" width="640" /></a></div>
※Table.FromRecords を使用する理由は、引数でカラム名を指定する必要がないから。つまり、カスタムフィールドの増減に対応している。 <br />
<br />
Table_ColumnNameCombi = <br />
SharePoint_List01{0}[ContentType][Fields][[EntityPropertyName],[Title]] & <br />
Table.FromRecords(<br />
{[EntityPropertyName = "Created", Title = "Created"],<br />
[EntityPropertyName = "Modified", Title = "Modified"]}),<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7auEDhkieuDQGdtqx2bR6_oiz6qyaqh2BkSRJFYGTdlYWh6qbiNloZhaDbXHis9UK9yyqpYh_xPW8nxIw6VhIL2PrLtgqMFY_ZGnZUVjSfEOgTYa-O3DdLGHQDW3Opjx2DQF4EWlJoju7/s1600/2016050217.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7auEDhkieuDQGdtqx2bR6_oiz6qyaqh2BkSRJFYGTdlYWh6qbiNloZhaDbXHis9UK9yyqpYh_xPW8nxIw6VhIL2PrLtgqMFY_ZGnZUVjSfEOgTYa-O3DdLGHQDW3Opjx2DQF4EWlJoju7/s1600/2016050217.png" /></a></div>
エンティティをある程度わかっている必要がありそうなのだけど、リスト アイテムの 更新時間なども付け加えておいた。<br />
"{}" (波かっこ) と "[]" (角かっこ) によるアクセスを知っておくと便利。<br />
<br />
List_ColumnNameCombi = Table.AddColumn(<br />
Table_ColumnNameCombi, <br />
"FieldList", <br />
each Record.ToList(_)<br />
)[FieldList], <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_9hi4yIalIfpK5-F-1vAo-JQob8RlPFTCBoFBIiAYOQ4LgDTMfg9177QPS9joiB0idyTYCL8Eq8rLzLrpkUzyau6PrPClRF3dWsdevH7AStGGCIPS-DjKVz1QuSeZXK7EeyKDpCHxZ5x5/s1600/2016050218.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_9hi4yIalIfpK5-F-1vAo-JQob8RlPFTCBoFBIiAYOQ4LgDTMfg9177QPS9joiB0idyTYCL8Eq8rLzLrpkUzyau6PrPClRF3dWsdevH7AStGGCIPS-DjKVz1QuSeZXK7EeyKDpCHxZ5x5/s1600/2016050218.png" /></a></div>
カラム名の変更には、{OldName , NewName} という list が必要なので、record を list にRecord.ToList で 変換。また複数のカラム名を変更するので list の list になっていればよい。<br />
<br />
RenameColumnName = Table.RenameColumns(<br />
SelectedColumns, <br />
List_ColumnNameCombi, <br />
MissingField.Ignore<br />
),<br />
SelectedColumns = Table.SelectColumns(<br />
RenameColumnName, <br />
Table_ColumnNameCombi[Title], <br />
MissingField.Ignore<br />
), <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicxW0IIdL5_LF1PC9hNfjtGzV13sP_Ucirmm6qH-XpcefO_QOrwzgSlnNpTXBp5_9xXGVnJyp0-1d2kXpv7gM6wXUGfZiMOhr7LT9AZBIOUBpiibhzvGv5oCFx-eWxe1NmPnL3dS5BobBs/s1600/2016050219.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicxW0IIdL5_LF1PC9hNfjtGzV13sP_Ucirmm6qH-XpcefO_QOrwzgSlnNpTXBp5_9xXGVnJyp0-1d2kXpv7gM6wXUGfZiMOhr7LT9AZBIOUBpiibhzvGv5oCFx-eWxe1NmPnL3dS5BobBs/s1600/2016050219.png" /></a></div>
<br />
ChangeType = Table.TransformColumnTypes(<br />
SelectedColumns,<br />
{{"タイトル", type text},<br />
{"日付のみ1", type date},<br />
{"金額2", Currency.Type},<br />
{"Created", type datetime},<br />
{"Modified", type datetime}}<br />
)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhseGH_O-k4qRPwAqN5Fw-jcEhJ9IBV1KF85AZa_XBFFt4wgnf81eDfZhlMjq-kThYvzqkzGiuaCBs2OnD1ciDGJvAsjAurTKbznPZQc-olOE2lamV1hZUzu6zQvUygr8YJCB3KCzeXxWLz/s1600/2016050220.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhseGH_O-k4qRPwAqN5Fw-jcEhJ9IBV1KF85AZa_XBFFt4wgnf81eDfZhlMjq-kThYvzqkzGiuaCBs2OnD1ciDGJvAsjAurTKbznPZQc-olOE2lamV1hZUzu6zQvUygr8YJCB3KCzeXxWLz/s1600/2016050220.png" /></a></div>
カラム名を直接指定する必要がある型の変換ステップは最後にしておいた。<br />
<br />
<br />
<b>やっぱり、うまくいかないこともある...</b><br />
SharePoint Online にのみ事象を確認。不具合の報告はしたし、別途報告はされているようですが。<br />
<ul>
<li>SharePoint サイトで使用される言語設定 </li>
<li>SharePoint サイト 外部共有機能の使用経緯</li>
</ul>
に影響している。かといって、サイトの設定変更などで解決できるような内容ではないので、次のようにトライ。<br />
<br />
・解決策1 <br />
SharePoint.Tables("<i>(SharePoint Site URL)</i>", [ApiVersion = <b>14</b>])<br />
オプション引数を 14 にする。 この場合、タイムゾーンなどが適用(UTC+0 に限らない)されている変換済みデータになる。なお、サイト既定の言語が英語でないときは解決できない模様。既定の言語:英語 / 第2言語:日本語の場合、外部共有を使用している / 使用していた サイトでも使用可能だった。<br />
ちなみにオンプレミスのSharePoint Server 2016 のサイトでもこれで対応可能。<br />
<br />
・解決策2<br />
OData.Feed("<i>(SharePoint Site URL)</i>/_vti_bin/listdata.svc")<br />
これはどのサイトでも使用できた。 <br />
<br />
これら解決策は、SharePoint.Files でも使えそうです。<br />
<br />
<br />
<br />
let<br />
Source = SharePoint.Tables("<i>(SharePoint Site URL)</i>", [ApiVersion = 15]),<br />
SharePoint_List01 = Source{[Id="<i>(GUID)</i>"]}[Items],<br />
List_FieldValuesAsText = SharePoint_List01[FieldValuesAsText],<br />
ExpandedFieldValuesAsText = Table.FromRecords(List_FieldValuesAsText),<br />
Table_ColumnNameCombi = <br />
SharePoint_List01{0}[ContentType][Fields][[EntityPropertyName],[Title]] & <br />
Table.FromRecords(<br />
{[EntityPropertyName = "Created", Title = "Created"],<br />
[EntityPropertyName = "Modified", Title = "Modified"]}),<br />
List_ColumnNameCombi = Table.AddColumn(<br />
Table_ColumnNameCombi, <br />
"FieldList", <br />
each Record.ToList(_)<br />
)[FieldList],<br />
RenameColumnName = Table.RenameColumns(<br />
ExpandedFieldValuesAsText, <br />
List_ColumnNameCombi, <br />
MissingField.Ignore<br />
),<br />
SelectedColumns = Table.SelectColumns(<br />
RenameColumnName, <br />
Table_ColumnNameCombi[Title], <br />
MissingField.Ignore<br />
),<br />
ChangeType = Table.TransformColumnTypes(<br />
SelectedColumns,<br />
{{"タイトル", type text},<br />
{"日付のみ1", type date},<br />
{"金額2", Currency.Type},<br />
{"Created", type datetime},<br />
{"Modified", type datetime}}<br />
)<br />
in<br />
ChangeTypeMukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-74156284679201761692016-05-01T02:30:00.001+09:002016-05-01T02:31:07.974+09:00PowerApps がパブリック プレビューMicrosoft PowerApps が パブリック プレビュー となったので お試しができるようにしてみた。<br />
<br />
<b><a href="https://powerapps.microsoft.com/en-us/blog/powerapps-public-preview/">Announcing Public Preview for PowerApps</a></b><br />
<br />
以前でいうところの、<a href="https://www.microsoft.com/en-us/projectsiena/">Project Siena (beta)</a><br />
<br />
で、招待制プレビューではなくなったので <a href="https://powerapps.microsoft.com/">サインアップ</a> で使えるようになるはず。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguaILyvcFJWp1fR69tmiZvs9ibg9wNBqPMZqbHlFTVXMQ29Q4xHYKrczYjz-5Jcz6hiJyrhEJUMIvZovzxoCIGOHgSpl7uRq2UuQaXpNm2GqaPo5pdAQ6zF-ufKJUMzKZERaSJXCrNC1cp/s1600/2016043002.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguaILyvcFJWp1fR69tmiZvs9ibg9wNBqPMZqbHlFTVXMQ29Q4xHYKrczYjz-5Jcz6hiJyrhEJUMIvZovzxoCIGOHgSpl7uRq2UuQaXpNm2GqaPo5pdAQ6zF-ufKJUMzKZERaSJXCrNC1cp/s1600/2016043002.PNG" /></a></div>
日本語サイトはまだなかった。"Start now" もしくは、 "Sign up free" で。<br />
<br />
<a name='more'></a><br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipr3Zl4_nUlo3aiUa5IXskm5dlfILw5E7G3sjRRs2JPhwW2wac3x9U3QuzipBzeUmSXwQovN9s3r-mbUs43Q1iB_7hHgFYdO8MWCXQmsZxWxYWF_RY1JoXRH5QkjpV6esJDK6UR63OzFvn/s1600/2016043003.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipr3Zl4_nUlo3aiUa5IXskm5dlfILw5E7G3sjRRs2JPhwW2wac3x9U3QuzipBzeUmSXwQovN9s3r-mbUs43Q1iB_7hHgFYdO8MWCXQmsZxWxYWF_RY1JoXRH5QkjpV6esJDK6UR63OzFvn/s1600/2016043003.PNG" /></a></div>
ここで登録できるメールアドレスは Microsoft のクラウドサービスでいうところの"職場または学校アカウント"として使用できるドメインのメールアドレス。なぜなら、Power BI やOffice 365 と同じく認証基盤にAzure AD が使われるから。以降、Office 365 でもおなじみのUI。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpDIoEBY8gGN02h8OzbFszOpc2TrNraZZYNJf76SftxRBr-NPOBUJ_xrLXZotsOSWmpVYsCVmxr16iqALLf71xgle6031HZ8dLoVakqJM3-NNByBqJuPitua7CPJ4n8SokRBPHhtA6NIFS/s1600/2016043004.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpDIoEBY8gGN02h8OzbFszOpc2TrNraZZYNJf76SftxRBr-NPOBUJ_xrLXZotsOSWmpVYsCVmxr16iqALLf71xgle6031HZ8dLoVakqJM3-NNByBqJuPitua7CPJ4n8SokRBPHhtA6NIFS/s1600/2016043004.PNG" /></a></div>
サインアップ<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgig4FCegBHA1Dm5qMu0KVrx5UeUGZduNRRQ0gL8qHKi2g_LiPhxm7O2K2-W5TaFGlnjZUgff7DTaDdwoRjxf6apJdkbmZvE76-7KOjiosLw3DycIIRkQlTb0-zStlteFK2HvfMDfUlOykk/s1600/2016043005.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgig4FCegBHA1Dm5qMu0KVrx5UeUGZduNRRQ0gL8qHKi2g_LiPhxm7O2K2-W5TaFGlnjZUgff7DTaDdwoRjxf6apJdkbmZvE76-7KOjiosLw3DycIIRkQlTb0-zStlteFK2HvfMDfUlOykk/s1600/2016043005.PNG" /></a></div>
すでに Power BI を使用しているドメインのメールアドレスだったので <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSKh_oGB9pB0tewmE2f2rr5EBDEv2e7oQf-bd1EUCyJst7cFGfPcMBlOPur0AjPhUIslXC3sZAJBXMKifjP5Tno6HSN1yacPMceLHV2lVLHdBe7US_7NeHjF_o5C6V1CfZ2I1lexbSzm6/s1600/2016043006.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgSKh_oGB9pB0tewmE2f2rr5EBDEv2e7oQf-bd1EUCyJst7cFGfPcMBlOPur0AjPhUIslXC3sZAJBXMKifjP5Tno6HSN1yacPMceLHV2lVLHdBe7US_7NeHjF_o5C6V1CfZ2I1lexbSzm6/s1600/2016043006.PNG" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzYUGBN2cPFpMgEUjYR58TdGhiFMvqUGNfjY8bIu5kC7nKc4ul94CmZr58fwaqWoHu9umq79I1tLaBn3shs6cQklqX2B18Ac9tvJy1512y7F-YZQvZlixvEoIMsz-doGRJoWUfQe3_cKba/s1600/2016043007.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzYUGBN2cPFpMgEUjYR58TdGhiFMvqUGNfjY8bIu5kC7nKc4ul94CmZr58fwaqWoHu9umq79I1tLaBn3shs6cQklqX2B18Ac9tvJy1512y7F-YZQvZlixvEoIMsz-doGRJoWUfQe3_cKba/s1600/2016043007.PNG" /></a></div>
Microsoft アカウントでも使用しているメールアドレスだったので、"職場または学校アカウント"でサインイン <br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Fzu-L0vbyq8jYfRMpmx6XALUn_MLeFG_AFgyOxJrC6tm4_MHZV3ao1g09PxyFGsR2KgGX1GAUu1b_9prEPEO4wAUkWIWXQTDHM9Xk_mhRTvaGPPN7Dj3S3cJx-tqmBda_4QgSPs_LBaH/s1600/2016043008.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0Fzu-L0vbyq8jYfRMpmx6XALUn_MLeFG_AFgyOxJrC6tm4_MHZV3ao1g09PxyFGsR2KgGX1GAUu1b_9prEPEO4wAUkWIWXQTDHM9Xk_mhRTvaGPPN7Dj3S3cJx-tqmBda_4QgSPs_LBaH/s1600/2016043008.PNG" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiIlbtVLzxxlklOj_I9HIVswY3L2u4quK6ZJmwYCVPaqsBdw87BFtiwqOA_hscHpQoOqoLuMaeTFXtW8gnYlGGjejHWum7_p_yqGv4KwcYy9L_hbm-fW9KPY54l7Im1z610VBdAZEGAfv9/s1600/2016043009.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiIlbtVLzxxlklOj_I9HIVswY3L2u4quK6ZJmwYCVPaqsBdw87BFtiwqOA_hscHpQoOqoLuMaeTFXtW8gnYlGGjejHWum7_p_yqGv4KwcYy9L_hbm-fW9KPY54l7Im1z610VBdAZEGAfv9/s1600/2016043009.PNG" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJn0XpbjT2mioveDrVhRQoIo_qGxKkvalnExgOgxx4SXue0CB_fA2Wr-kNG00Brn_TES7HkacXN3TBL6-UNmC1LNhi6hXl7z2Rrbw13X4pRvGnwCZ_cU9kag9GUjKHzPMtk8VxJykoaoBV/s1600/2016043010.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJn0XpbjT2mioveDrVhRQoIo_qGxKkvalnExgOgxx4SXue0CB_fA2Wr-kNG00Brn_TES7HkacXN3TBL6-UNmC1LNhi6hXl7z2Rrbw13X4pRvGnwCZ_cU9kag9GUjKHzPMtk8VxJykoaoBV/s1600/2016043010.PNG" /></a></div>
できました。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrMdhbnqDnKPsfq2pZyzDznLAygjZoeSi2zgJtsFwdtMSCGRPX2cmFVT35nlPAfzYkzwYVAZr1i87LRa1JbTe3own3IP5LGaN2gXz8APJdAMH9jqPcBf7Apx389zLNPa7PS-1R5PmtniA/s1600/2016043011.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrMdhbnqDnKPsfq2pZyzDznLAygjZoeSi2zgJtsFwdtMSCGRPX2cmFVT35nlPAfzYkzwYVAZr1i87LRa1JbTe3own3IP5LGaN2gXz8APJdAMH9jqPcBf7Apx389zLNPa7PS-1R5PmtniA/s1600/2016043011.PNG" /></a></div>
PowerApps と Power BI、フリーミアムなサービスだけの Office 365 テナントになりました。<br />
<br />
PowerApps のアプリデザインは、<b><a href="https://web.powerapps.com/#/downloads">"PowerApps Studio for Windows"</a></b> で。<br />
サンプルアプリもあるし、データからアプリを作成できるのでとりあえず試すことはできるかと。 <br />
OneDrive / OneDrive for Business に保存してあるExcel ワークシートをデータソースにするのがまずは手っ取り早いかな。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-12376876935797633302016-03-19T15:34:00.000+09:002016-03-19T15:34:02.539+09:00Power BI - 25 - Power BI Desktop で タイム インテリジェンス関数 タイム インテリジェント関数に必要な日付テーブルとそのリレーションを準備したので実際に使ってみる。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYzVUYITo-XlzHLcGNlRDo7kti1VWAwnID83mrtw2lhPBlJGSZLmMk4ErtEzYqODmpF0muU0cYFRG0BSGT9FyxDOJgeDZXu_wv26xKhOd6ra2OaIKAIZhxX-DOPw9qS7P3puWfPJDgUhBR/s1600/2016031401.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYzVUYITo-XlzHLcGNlRDo7kti1VWAwnID83mrtw2lhPBlJGSZLmMk4ErtEzYqODmpF0muU0cYFRG0BSGT9FyxDOJgeDZXu_wv26xKhOd6ra2OaIKAIZhxX-DOPw9qS7P3puWfPJDgUhBR/s1600/2016031401.png" /></a></div>
スキーマはこんな感じで、最終的には "受注額" の集計についていろいろと。<br />
<br />
<a name='more'></a><br />
指定した間隔をシフトした日付を返すのではなく、現在のコンテキストに対応する 前年 翌年 前月 翌月などの日付 <b>"すべて"</b> を含むテーブルを返す。<br />
どのような範囲が帰るのかを、<br />
LASTDATE ( 'カレンダー[日付]' )<br />
FIRSTDATE ( 'カレンダー[日付]' )<br />
という感じで確認した。 <br />
<br />
<b>PREVIOUSYEAR (<a href="https://msdn.microsoft.com/ja-jp/library/ee634770%28v=sql.120%29.aspx">MSDN - PREVIOUSYEAR 関数</a>)<br />
PREVIOUSQUARTER (<a href="https://msdn.microsoft.com/ja-jp/library/ee634385%28v=sql.120%29.aspx">MSDN - PREVIOUSQUARTER 関数</a>)<br />
PREVIOUSMONTH (<a href="https://msdn.microsoft.com/ja-jp/library/ee634758%28v=sql.120%29.aspx">MSDN - PREVIOUSMONTH 関数</a>)<br />
PREVIOUSDAY (<a href="https://msdn.microsoft.com/ja-jp/library/ee634803%28v=sql.120%29.aspx">MSDN - PREVIOUSDAY 関数</a>)</b><br />
前年 / 前四半期 / 前月 の日付をすべて返す。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifixajtO1TOIn-yNgLfdWG8c_QHezpBFK5l7Xd8k5mMTBAx4TJIijGkdW6j8f5B18X3mreU8SjoqmeXouxHuxwSiYSr_jAikyRFtCyLxEIADY_oYt_fGDiiJydkdySymyblYHnJEKLU_Vw/s1600/2016031402.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifixajtO1TOIn-yNgLfdWG8c_QHezpBFK5l7Xd8k5mMTBAx4TJIijGkdW6j8f5B18X3mreU8SjoqmeXouxHuxwSiYSr_jAikyRFtCyLxEIADY_oYt_fGDiiJydkdySymyblYHnJEKLU_Vw/s1600/2016031402.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZh8KJj_G7qC8nfT-1HfMXGyY9W_o5eJp5VBAjqLHowSitFxhdF1H0WxmT_gzmA0ACCO1Rw4q9jIVLvca4Yyt0LnTb_Svy6FCSkklaoNqmakYJ0AGc0Pr_BtcW3SDa696wKSTsWLRW7L3y/s1600/2016031403.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZh8KJj_G7qC8nfT-1HfMXGyY9W_o5eJp5VBAjqLHowSitFxhdF1H0WxmT_gzmA0ACCO1Rw4q9jIVLvca4Yyt0LnTb_Svy6FCSkklaoNqmakYJ0AGc0Pr_BtcW3SDa696wKSTsWLRW7L3y/s1600/2016031403.png" /></a></div>
<br />
<br />
<b>NEXTYEAR (<a href="https://msdn.microsoft.com/ja-jp/library/ee634212%28v=sql.120%29.aspx">MSDN - NEXTYEAR 関数</a>)<br />
NEXTQUARTER (<a href="https://msdn.microsoft.com/ja-jp/library/ee634878%28v=sql.120%29.aspx">MSDN - NEXTQUARTER 関数</a>)<br />
NEXTMONTH (<a href="https://msdn.microsoft.com/ja-jp/library/ee634392%28v=sql.120%29.aspx">MSDN - NEXTMONTH 関数</a>)<br />
NEXTDAY (<a href="https://msdn.microsoft.com/ja-jp/library/ee634542%28v=sql.120%29.aspx">MSDN - NEXTDAY 関数</a>)</b><br />
翌年 / 翌四半期 / 翌月 の日付をすべて返す。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSWLZKB4NoOADGL0FLXRsOLvPnGiiknJkaHMu3C1IssdB4xkn1D-w9gKSpEP2WbWYYpMexUKWHqImVFFKDMMZaQnYGkAWY2RQKxg66ltA1yqzl5R4XSX6bwcfF1VMCkkppomU46rBv8S4/s1600/2016031404.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSWLZKB4NoOADGL0FLXRsOLvPnGiiknJkaHMu3C1IssdB4xkn1D-w9gKSpEP2WbWYYpMexUKWHqImVFFKDMMZaQnYGkAWY2RQKxg66ltA1yqzl5R4XSX6bwcfF1VMCkkppomU46rBv8S4/s1600/2016031404.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF-OYA-ZVKa_0W0M9Q9prYWOlCmTB9tmP-ml4Qm_r8KlMmRv-11iVqYT7PIJk-lG5vpY03z57p30-KXRA_Z1ekfIS6ueCqaDwisiuDRPuBAUZS9_fSSS0COTO7VTu_1K1eQN_XPUBDGWFJ/s1600/2016031405.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF-OYA-ZVKa_0W0M9Q9prYWOlCmTB9tmP-ml4Qm_r8KlMmRv-11iVqYT7PIJk-lG5vpY03z57p30-KXRA_Z1ekfIS6ueCqaDwisiuDRPuBAUZS9_fSSS0COTO7VTu_1K1eQN_XPUBDGWFJ/s1600/2016031405.png" /></a></div>
なので、<br />
<br />
受注額 =<br />
<span class="Keyword" style="color: #0070ff;">SUM</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> '受注'[明細計] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
としたとき、CALCULATE 関数でそれぞれの受注額を計算する。<br />
<br />
受注額(前年) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">PREVIOUSYEAR</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(前四半期) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">PREVIOUSQUARTER</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(前月) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">PREVIOUSMONTH</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(翌年) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">NEXTYEAR</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(翌四半期) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">NEXTQUARTER</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(翌月) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">NEXTMONTH</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisRlygDD-a1YhyphenhyphenCbsX2vbZvzC024DfZoi9ZULqUzPwz-2LmI_ozO1F2kNqfzWMP8bphN6a3HNa8J70eqa74wy7vacjU5Cnt4Yji_-DVmCCvqMbJQVbrMyXqFDyOwolfUIhoc5Pn2XDXWoW/s1600/2016031408.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisRlygDD-a1YhyphenhyphenCbsX2vbZvzC024DfZoi9ZULqUzPwz-2LmI_ozO1F2kNqfzWMP8bphN6a3HNa8J70eqa74wy7vacjU5Cnt4Yji_-DVmCCvqMbJQVbrMyXqFDyOwolfUIhoc5Pn2XDXWoW/s1600/2016031408.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Okf3uyKNf8NcrlBTiFjHSMHQLxQK3qQQqpkJcHvpk914gkzk5tgp0FsNEHKDraVSj4HCYy9HLBq-XCImzWpwJBBZaAKjqjKJvEHX7mOTwTigVshf1g4c06igaYfxIH6IVzyueFKXxfGo/s1600/2016031409.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7Okf3uyKNf8NcrlBTiFjHSMHQLxQK3qQQqpkJcHvpk914gkzk5tgp0FsNEHKDraVSj4HCYy9HLBq-XCImzWpwJBBZaAKjqjKJvEHX7mOTwTigVshf1g4c06igaYfxIH6IVzyueFKXxfGo/s1600/2016031409.png" /></a></div>
<br />
<br />
<b>DATESYTD (<a href="https://msdn.microsoft.com/ja-jp/library/ee634221%28v=sql.120%29.aspx">MSDN - DATESYTD 関数</a>)<br />
DATESQTD (<a href="https://msdn.microsoft.com/ja-jp/library/ee634901%28v=sql.120%29.aspx">MSDN - DATESQTD 関数</a>)<br />
DATESMTD (<a href="https://msdn.microsoft.com/ja-jp/library/ee634359%28v=sql.120%29.aspx">MSDN - DATESMTD 関数</a>)</b><br />
年 / 四半期 / 月 の初日からの日付を返す。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOxdHHgbSOYBAs_PRa_-1vl6KwP9e1FPM0RYsSHqvZcpAnv4P06-wtvsbbIh5SkFIny21JrrzAV51Ctlz-WQhrS_glc0QKhtBaUTa0QrM2fQfJ3Y9gBmkwyIYd2cig4MaiaAMfaa5UAKaA/s1600/2016031406.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOxdHHgbSOYBAs_PRa_-1vl6KwP9e1FPM0RYsSHqvZcpAnv4P06-wtvsbbIh5SkFIny21JrrzAV51Ctlz-WQhrS_glc0QKhtBaUTa0QrM2fQfJ3Y9gBmkwyIYd2cig4MaiaAMfaa5UAKaA/s1600/2016031406.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim4QbINMBHz2yJ0AsjgZbs8nglj6WJaUzMdnYO-_4lPTz8PjcMXrs_Fnh2nsQVkAsBFg43TiPKiAo-ctI3Gs35tLXWrQHYyr8jIlkEdoOpNbgDdW3aPWAG2Y__us0bRHsDFs4AIlHs80ZT/s1600/2016031407.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim4QbINMBHz2yJ0AsjgZbs8nglj6WJaUzMdnYO-_4lPTz8PjcMXrs_Fnh2nsQVkAsBFg43TiPKiAo-ctI3Gs35tLXWrQHYyr8jIlkEdoOpNbgDdW3aPWAG2Y__us0bRHsDFs4AIlHs80ZT/s1600/2016031407.png" /></a></div>
<br />
受注額(年累計) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">DATESYTD</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(四半期累計) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">DATESQTD</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(月累計) =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], <span class="Keyword" style="color: #0070ff;">DATESMTD</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7sPKAUDAcDeZ2Ti8bv5-OJg8MXdfahYJ389qtPWX6vpV8BCQ0NbO0NlffCN9_nN_s2vY7xoPTBTrdOOyMYsqKzQY6A-3QsmSpCNgigvuKmMDArqqNa0k6oSQT99tAVmsSozApNgczRWsB/s1600/2016031410.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7sPKAUDAcDeZ2Ti8bv5-OJg8MXdfahYJ389qtPWX6vpV8BCQ0NbO0NlffCN9_nN_s2vY7xoPTBTrdOOyMYsqKzQY6A-3QsmSpCNgigvuKmMDArqqNa0k6oSQT99tAVmsSozApNgczRWsB/s1600/2016031410.png" /></a></div>
累計についてはもっと奥が深いけれども。<br />
<br />
受注額(年累計) =<br />
<span class="Keyword" style="color: #0070ff;">TOTALYTD</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(四半期累計) =<br />
<span class="Keyword" style="color: #0070ff;">TOTALQTD</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
受注額(月累計) =<br />
<span class="Keyword" style="color: #0070ff;">TOTALMTD</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [受注額], 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
でも同じ結果になる。<br />
<br />
Power BI Desktop だけのことを考えるとビジュアルだけで累計を表せるものがあるわけだから特段にメジャーを用意しなくてもよいこともあるのでしょう。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-33492595994424316502016-03-13T12:35:00.000+09:002016-03-13T17:48:33.830+09:00Power BI - 24 - Power BI Desktop と 日付テーブルタイム インテリジェンス関数を使いたいです。なぜなら、期間(年、月、前年とか)を伴う比較集計にとても便利だから。<br />
<blockquote class="tr_bq"><a href="https://msdn.microsoft.com/library/ee634763.aspx">MSDN : タイム インテリジェンス関数 (DAX)</a><br />
<a href="https://support.office.com/ja-jp/article/Power-Pivot-in-Excel-%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%A0-%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AA%E3%82%B8%E3%82%A7%E3%83%B3%E3%82%B9-016acf7b-9ded-411e-ba6c-ed8b8c368011">Office.com : Power Pivot in Excel のタイム インテリジェンス</a></blockquote>ファクトテーブル"受注"の "受注日" と "締切日" は 受注と請求に関連する日付とみなしていくつかの集計を行えるようにしてみる。<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQT3aDG6EZV6yQuuj5qhNXfOS-xL75Bhye-tSEx5Fh3m_YF4btsQKWFOuSME6a8E9B8cXZ5JCxsB3k21w2yNJsHXzXUafly-SegVKzeoeN-rsTkAziRqCsU8KaK6jUoXnkao75Vd_y2_e/s1600/2016031601.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQT3aDG6EZV6yQuuj5qhNXfOS-xL75Bhye-tSEx5Fh3m_YF4btsQKWFOuSME6a8E9B8cXZ5JCxsB3k21w2yNJsHXzXUafly-SegVKzeoeN-rsTkAziRqCsU8KaK6jUoXnkao75Vd_y2_e/s1600/2016031601.png" /></a></div><br />
ここで必要になるのは 日付テーブル。なので、データモデルにテーブル"カレンダー"を追加する。<br />
<a name='more'></a><b>日付テーブル</b><br />
粒度は日単位で連続した日付であることが必要。そして、タイム インテリジェンス関数を使用する場合、データモデルに日付テーブルを追加し関連するテーブルのカラムとリレーションを設定しなければならない。<br />
<br />
<b>日付テーブルの追加</b><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDxB2Mo6rQxN8h7EY8rtOlm0zfZwJpIvfd0aELyBmaYfi4JDAb-FBA5iKUJOucyrGWmuqfvz9JL3s3lLsyLUgiNFPAxbm529pv2ZPeDEu9Bn8OJG2Uczaw4Gc4f_H6winIH_TemaspQEfX/s1600/2016031602.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDxB2Mo6rQxN8h7EY8rtOlm0zfZwJpIvfd0aELyBmaYfi4JDAb-FBA5iKUJOucyrGWmuqfvz9JL3s3lLsyLUgiNFPAxbm529pv2ZPeDEu9Bn8OJG2Uczaw4Gc4f_H6winIH_TemaspQEfX/s1600/2016031602.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">[モデリング] タブ - [新しいテーブル]</td></tr>
</tbody></table><b>CALENDARAUTO (<a href="https://msdn.microsoft.com/ja-jp/library/dn802534.aspx">MSDN - CALENDARAUTO 関数 (DAX)</a>)</b><br />
データモデルに存在する最初と最後の日付が含まれる範囲の連続データを生成する。計算列 / 計算されたテーブルをもとに連続データの生成はできない。引数(1~12)で期末の指定が可能。<br />
<br />
<b>CALENDAR (<a href="https://msdn.microsoft.com/ja-jp/library/dn802546.aspx">MSDN - CALENDAR 関数 (DAX)</a>)</b><br />
引数で指定する範囲の日付連続データを生成する。データモデルにない過去未来の日付について使用する場合に適している。<br />
<br />
<b>ADDCOLUMNS (<a href="https://msdn.microsoft.com/ja-jp/library/gg492204.aspx">MSDN - ADDCOLUMNS 関数 (DAX)</a>)</b><br />
"新しい列" をポチポチと追加してもよいのだけど、既定のカラム名は "Date" だから、ADDCOLUMNS 関数で日付テーブルを完成させてもよい。<br />
<br />
カレンダー =<br />
<span class="Keyword" style="color: #0070ff;">ADDCOLUMNS</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span><br />
<span class="indent4"> </span><span class="Keyword" style="color: #0070ff;">CALENDARAUTO</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span><span class="Parenthesis" style="color: #d0d0d0;">)</span>,<br />
<span class="indent4"> </span><span class="StringLiteral" style="color: #d93124;">"年"</span>, <span class="Keyword" style="color: #0070ff;">YEAR</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [Date] <span class="Parenthesis" style="color: #d0d0d0;">)</span>,<br />
<span class="indent4"> </span><span class="StringLiteral" style="color: #d93124;">"月"</span>, <span class="Keyword" style="color: #0070ff;">FORMAT</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [Date], <span class="StringLiteral" style="color: #d93124;">"m月"</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span>,<br />
<span class="indent4"> </span><span class="StringLiteral" style="color: #d93124;">"年月"</span>, <span class="Keyword" style="color: #0070ff;">FORMAT</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [Date], <span class="StringLiteral" style="color: #d93124;">"yyyy年mm月"</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span>,<br />
<span class="indent4"> </span><span class="StringLiteral" style="color: #d93124;">"MonthNumber"</span>, <span class="Keyword" style="color: #0070ff;">MONTH</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> [Date] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtpJk87FbBmIs1CcskwgzpxGf7ZG_dKiqrSCCysmhyWqazBYOdhbgFSqyoqvfRffM4bxc7__-kaKJUVMJJ8ql0IQjm2Zv59ss8UPOkLrSjYugMeh_XauO8jizYdwKiiKJ4SotBu9AQAal7/s1600/2016031603.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtpJk87FbBmIs1CcskwgzpxGf7ZG_dKiqrSCCysmhyWqazBYOdhbgFSqyoqvfRffM4bxc7__-kaKJUVMJJ8ql0IQjm2Zv59ss8UPOkLrSjYugMeh_XauO8jizYdwKiiKJ4SotBu9AQAal7/s1600/2016031603.png" /></a></div>カラム"月" は "m月" でフォーマットした文字列なので、同時に用意した カラム"MonthNumber"で並び替えを指定する。<br />
<br />
<b>リレーションの設定</b><br />
<ul><li>'カレンダー'[日付] → '受注'[受注日]</li>
<li>'カレンダー'[日付] → '受注'[締切日] </li>
</ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlkp0Dxa6_pFtvOx6RQWRie2rRm1i9B_buM89FcrcbnzR_ggQFh5cO5rgEtw_neFUnCafzxJkOGw2RiVU_VgLcctQCe_3iHjV7pdt_kCDkfi94UQkMWHGgeCdfe82uJWssgru0RlStwdk/s1600/2016031604.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxlkp0Dxa6_pFtvOx6RQWRie2rRm1i9B_buM89FcrcbnzR_ggQFh5cO5rgEtw_neFUnCafzxJkOGw2RiVU_VgLcctQCe_3iHjV7pdt_kCDkfi94UQkMWHGgeCdfe82uJWssgru0RlStwdk/s1600/2016031604.png" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrPtc0Q5_Nlz6pCFDvCCHydg0ySf_3wUqF-II4Tmaa3otjRGv0Wd4G7JdC5N9KTCMydv6H5xYO49fRGoJNQDW6NhUHaH95PmicImI0LDrSOWS5ZRTcLzOqZ6_VfNX_aGCqiOPNSw8AkiT1/s1600/2016031605.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrPtc0Q5_Nlz6pCFDvCCHydg0ySf_3wUqF-II4Tmaa3otjRGv0Wd4G7JdC5N9KTCMydv6H5xYO49fRGoJNQDW6NhUHaH95PmicImI0LDrSOWS5ZRTcLzOqZ6_VfNX_aGCqiOPNSw8AkiT1/s1600/2016031605.png" /></a></div>カーディナリティが 多対一 なのは当然。クロス フィルターの方向が "単一" なのは、ファクトテーブルにフィルタが適用されたとき日付テーブルの連続したデータを維持するため。この設定はPower BI Desktopが自動的に設定してくれる。<br />
アクティブにできるリレーションはひとつだのだけど、この場合は特段の指定をしなくても関連データを参照できる。'受注'[締切日] のリレーションはアクティブではないから USERELATIONSHIP 関数などを使用して関連データを取得することになる。<br />
分析の用途によっては日付テーブル(ディメンジョンテーブル)をそれぞれに用意することもあろうかと。<br />
<br />
<b>メジャーを追加</b><br />
受注額 =<br />
<span class="Keyword" style="color: #0070ff;">SUM</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> '受注'[明細計] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
請求額 =<br />
<span class="Keyword" style="color: #0070ff;">CALCULATE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> <span class="Keyword" style="color: #0070ff;">SUM</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> '受注'[明細計] <span class="Parenthesis" style="color: #d0d0d0;">)</span>, <span class="Keyword" style="color: #0070ff;">USERELATIONSHIP</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> '受注'[締切日], 'カレンダー'[日付] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhloXXaI6luhAfEvCPzekpoDgLJeGSDnu_SqwleO0kvjTWQyPwbNuBp4QViA4Sevoxl5oRewXheVSSTANK_3mEuVSTu7nZmZpes03K2_pj6QFWU6dRJIJsdJ1HPOPszbS90toCxDvDK8oh_/s1600/2016031606.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhloXXaI6luhAfEvCPzekpoDgLJeGSDnu_SqwleO0kvjTWQyPwbNuBp4QViA4Sevoxl5oRewXheVSSTANK_3mEuVSTu7nZmZpes03K2_pj6QFWU6dRJIJsdJ1HPOPszbS90toCxDvDK8oh_/s640/2016031606.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">複数の集計を実施できる</td></tr>
</tbody></table><br />
<b>USERELATIONSHIP (<a href="https://msdn.microsoft.com/ja-jp/library/hh230952.aspx">MSDN - USERELATIONSHIP 関数 (DAX)</a>)</b><br />
MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com2tag:blogger.com,1999:blog-5670379129939555102.post-60396558355461924272016-03-01T00:52:00.001+09:002016-03-01T01:20:58.773+09:00Power BI - 23 - Power BI と Cortana Windows 10 の Cortana で Power BI レポートを呼び出してみる。<br />
いくつか試してみたんだけど日本語環境のコルタナさんではできていない。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyhBtRfwkXQK5DxXAVQOynwk3QpNSehUbthnbBK9Z5pF02746naOAjg7sVU0kzwwZJeRx4zwvwZFOI3SdR_oH9NeBfdHYXKDHrTnj_5YsDdzMWLLX2oiv7ZKPgFzWhCfvIX0HdTRCwZWEL/s1600/2016022903.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyhBtRfwkXQK5DxXAVQOynwk3QpNSehUbthnbBK9Z5pF02746naOAjg7sVU0kzwwZJeRx4zwvwZFOI3SdR_oH9NeBfdHYXKDHrTnj_5YsDdzMWLLX2oiv7ZKPgFzWhCfvIX0HdTRCwZWEL/s1600/2016022903.png" /></a></div>
<br />
Power BI Service ダッシュボードのQ&A自体が英語のみサポートなのだけど日本語のキーワードを使用してレポートやビジュアルをCortana で表示させることは可能なので、en-us な環境でいろいろと試していてとても楽しい。主な設定は、<br />
<ul>
<li>データセットの設定</li>
<li>レポート ページの設定</li>
</ul>
の2点だけど、<a href="https://powerbi.microsoft.com/ja-jp/documentation/powerbi-service-cortana-enable/">Cortana を Power BI で使用可能にする</a>の通り<br />
<br />
<a name='more'></a><b>データセットの設定 - Cortana</b><br />
これは特に説明なし。チェックを入れておくこと。<b><br />
</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqNLXzydL_5UbCHYF-evnpoY7IOFZByD5ITaC-EKeK8OhpwLqsa1_v3pYwMXqcc4fH138AVOmgw2XT6rBvIhIC0HM1CKaciWjf4TQO1f2wCWHsO6XPNTt-2pkFpFOK0SJ8NMTc80lf5fRn/s1600/2016022902.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqNLXzydL_5UbCHYF-evnpoY7IOFZByD5ITaC-EKeK8OhpwLqsa1_v3pYwMXqcc4fH138AVOmgw2XT6rBvIhIC0HM1CKaciWjf4TQO1f2wCWHsO6XPNTt-2pkFpFOK0SJ8NMTc80lf5fRn/s1600/2016022902.png" /></a></div>
<br />
<b>レポート ページの設定</b><br />
Cortana 専用のページを作成し、適切な設定をページの表示ができるようになる。適切な設定とは検索に使用されるキーワードをどのようにするかということ。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTtLxWs8LoJNyVNvoTOqoIHykTf5ZdCoMtljZ503MBZeWzxka7vH7swQs9T8PyDa4bb9Koi9rMuIxPxTXvq7JwNWrsKheBI-BsQcNY2P02uuKBmnDrfJktSdrVQBcAhrEBl2E1XgReI8Aq/s1600/2016022901.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTtLxWs8LoJNyVNvoTOqoIHykTf5ZdCoMtljZ503MBZeWzxka7vH7swQs9T8PyDa4bb9Koi9rMuIxPxTXvq7JwNWrsKheBI-BsQcNY2P02uuKBmnDrfJktSdrVQBcAhrEBl2E1XgReI8Aq/s1600/2016022901.png" /></a></div>
Cortana ではページ名 と シノニムというか"代替名" を検索するのでキーワードを指定しておく。<br />
日本語で使用する場合、単語の区切りにスペースを含めておくとよいかと。なぜなら、キーワード2つ以上で検索が試行されるから。スペースを含めない場合、キーワード "show" を使うと検索されると思う。キーワード "my" を使用すると使用されているアカウントに関連する情報が使用されるらしい。と、いうのは試してない。<br />
また、テーブル / フィールド や メジャーの名前は具体的にしておくとよい。例えば、"売上額"とか"日付"とか。そして、金額や日付などを表すを データ型 や データカテゴリも可能な限り設定をしておくと期待する結果が得られやすくなるはず。<br />
Cortana は データモデルから検索してくれるから データモデルはシンプルなものにしておくが、正規化は必要かと。DirectQuery モードでは使用できない。<br />
<br />
<b>レポートの表示</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6tm0Nd87JVTzEdDAtoBWREd4YY4evbJyLLHcAYvAIc8JpiPYbn8amEp5J3ceNinVWJZtaJodjuAkKSnwLPw7BTvDauQq0K-abdC041y_VSynwJkUs2YVVqLQEepnqjaZG7LRvINssM-vx/s1600/2016022904.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6tm0Nd87JVTzEdDAtoBWREd4YY4evbJyLLHcAYvAIc8JpiPYbn8amEp5J3ceNinVWJZtaJodjuAkKSnwLPw7BTvDauQq0K-abdC041y_VSynwJkUs2YVVqLQEepnqjaZG7LRvINssM-vx/s1600/2016022904.gif" /></a></div>
<br />
<b>Q&Aによる出力</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS3ErxqB78Ofb4YrmVy4I6G9xNMFEyvBviGP0DL5NvPmtgxYelW-qsGlz3JVlTdcgumNhhJSGrFLVMB7xp3YcM78khvxfkNXd-0luRHTShEoGVIUICFcZ66LDbB7cij6wJ6BRwRyKFghX_/s1600/2016022905.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS3ErxqB78Ofb4YrmVy4I6G9xNMFEyvBviGP0DL5NvPmtgxYelW-qsGlz3JVlTdcgumNhhJSGrFLVMB7xp3YcM78khvxfkNXd-0luRHTShEoGVIUICFcZ66LDbB7cij6wJ6BRwRyKFghX_/s1600/2016022905.gif" /></a></div>
as [ビジュアル名] とすると、ビジュアルが選べる。as がなくてもできちゃうけど。<br />
質問の仕方などは、<a href="https://powerbi.microsoft.com/ja-jp/documentation/powerbi-service-q-and-a-tips/">Power BI Q&A で質問するためのヒント</a> を参考にするとよいかな。日本語と英語が入り混じる感じになるけど、なんとか大丈夫。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCtUjUjbcvk1KYBbl3iz9i_fqOxW1zMQf8CMwKLKrWRkq3AJEK8YGcHYGtvYQeX0QUXBPeWcQ8MpldToPOJlPzjdKZiXtXjPdfMLwc7JDEkqSLH9eCZ-LCTOyzGzYZVRPCwknTShowNbVI/s1600/2016022701.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCtUjUjbcvk1KYBbl3iz9i_fqOxW1zMQf8CMwKLKrWRkq3AJEK8YGcHYGtvYQeX0QUXBPeWcQ8MpldToPOJlPzjdKZiXtXjPdfMLwc7JDEkqSLH9eCZ-LCTOyzGzYZVRPCwknTShowNbVI/s1600/2016022701.png" /></a></div>
こうなったら少し待つか、Cortana のプロセスを再起動 など。ログオンしなおすでも。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-76299092806382173192016-02-14T14:21:00.000+09:002016-02-14T14:21:06.366+09:00Power BI - 22 - Power BI Desktop と Access アプリ データソースから得ることができない情報はデータモデルに追加すればよい。データソースにディメンジョン テーブルとなりえるデータを用意し一緒に抽出 / Extract してもよいのだけど、セルフサービスBI なのだからレポートに必要なデータを自分で持ち込んでもよいのである。運用フェーズに移行しているアプリケーションをできれば更新したくないこともあるし。<br />
<br />
テーブル:得意先 の"都道府県"を地理的エリアのスライサに利用できているのだけど、<br />
<ul>
<li>得意先が存在しない地域の集計</li>
<li>"都道府県"別以外のスライサ</li>
</ul>
が実現できないのでディメンジョン テーブルを追加し対応する。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYC6v4mpkDlg5NhUG6ln2wLcD9UOjQeWNXPQQ6BcWu-15TZ6PjfpuN1ePmjuZotHZEr_H28vC7O4BhYIRrtofECUx42mp2oFtIursmjINOjMnejt6xcfVHb80QesZjmqJ7NLDnFxrtovSX/s1600/2016021301.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYC6v4mpkDlg5NhUG6ln2wLcD9UOjQeWNXPQQ6BcWu-15TZ6PjfpuN1ePmjuZotHZEr_H28vC7O4BhYIRrtofECUx42mp2oFtIursmjINOjMnejt6xcfVHb80QesZjmqJ7NLDnFxrtovSX/s1600/2016021301.png" /></a></div>
<br />
<a name='more'></a><br />
<b>データの入力 - テーブルの追加</b><br />
Access アプリに該当するテーブルとレコードをすぐさま用意してもよいのだけど、<br />
<ul>
<li>共有しなければならないとき</li>
<li>必要性が確定したとき</li>
</ul>
まで、様子見するという理由でもいろいろ試せる価値はあると思う。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizF2xCYyZCbvgwDAhleJ4od4v5ag1OPD_HWStBYXJEX9K-58zFRNjavV_h95IK0LyeCsLvVc5QNbcxSqhKhYyEVIhpEJYmSEh0_vvykmcT9GuEuXXOaoUNMjswlx60Dn-Fy8AwiDKQDf-j/s1600/2016021302.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizF2xCYyZCbvgwDAhleJ4od4v5ag1OPD_HWStBYXJEX9K-58zFRNjavV_h95IK0LyeCsLvVc5QNbcxSqhKhYyEVIhpEJYmSEh0_vvykmcT9GuEuXXOaoUNMjswlx60Dn-Fy8AwiDKQDf-j/s1600/2016021302.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ40is_LRulscBLlRxWpfUuwC1GiWilO4G_bW7jEYlmERNRw_TYMpYt_saSVYBhS6xMc4o-PNvK3mg8Pzh2eUTJoMF3d4Ox-dob0kA79BpE6BmAcfCIK_GxqVNckvwRWOEy3aCFG0lnXDD/s1600/2016021303.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ40is_LRulscBLlRxWpfUuwC1GiWilO4G_bW7jEYlmERNRw_TYMpYt_saSVYBhS6xMc4o-PNvK3mg8Pzh2eUTJoMF3d4Ox-dob0kA79BpE6BmAcfCIK_GxqVNckvwRWOEy3aCFG0lnXDD/s1600/2016021303.png" /></a></div>
一意であることを表すキーはなくても可能なのだけど、ソートに使用するので用意しておく。<br />
<br />
<b>データツール - モデリング</b><br />
シンプルなデータであれば[モデリング]にあるコマンドで事足りるはずだが、解決できない場合はクエリエディタの詳細に加工すればよいはず。ここでは47*4 のテーブルだったので問題は起きていない。<br />
レポートで使用しないキーを表すカラムの表示は不要なので、"レポートビューの非表示"として表示させない。また、ソートに使用するのでカラムを削除しない。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkrGWT0lvmBj4mBnkxG2iU-LeG-h9TUs1Y89ORqolSOw1oToEL80FvbvdShUgODVHhx4p0SdB3L2zl0XnPCXL3FsSvH-w4pVcpYqNSLIDhxRziTm8o6XQNwYwq94osjcMTUlQY4vpl2lKz/s1600/2016021304.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkrGWT0lvmBj4mBnkxG2iU-LeG-h9TUs1Y89ORqolSOw1oToEL80FvbvdShUgODVHhx4p0SdB3L2zl0XnPCXL3FsSvH-w4pVcpYqNSLIDhxRziTm8o6XQNwYwq94osjcMTUlQY4vpl2lKz/s1600/2016021304.png" /></a></div>
<br />
[列で並び替え]でソート時に使用するカラムを個別に指定する。この設定で文字コード順でソートされないようになる。特別に意図する順序のために設定してもよさそう。<br />
また、地域を表す文字列のカラムなので "データ カテゴリ" を指定。これにより地理情報(都道府県)であることを示しているので、既定のビジュアルが Map となる。Q&A やCortanaにも影響するはず。 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY7C4gPqlo8_t24LBK4EUz2FRJUkKATcd52X6sjXVxZgvpNPOoKDES_PHNPC_9Yotx8ZNt2B98TSdNjprOIA8J_Z51CE5AfdS_zwAzKjn6xN4O8WpI43Qx5c-NsZOBfIcTuNalTlWkCWwD/s1600/2016021305.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY7C4gPqlo8_t24LBK4EUz2FRJUkKATcd52X6sjXVxZgvpNPOoKDES_PHNPC_9Yotx8ZNt2B98TSdNjprOIA8J_Z51CE5AfdS_zwAzKjn6xN4O8WpI43Qx5c-NsZOBfIcTuNalTlWkCWwD/s1600/2016021305.png" /></a></div>
<br />
<b>リレーションシップ</b> <br />
独自に用意したディメンジョン テーブルなのでリレーションを設定する必要がある。リレーションシップの設定には、[リレーションシップの管理] もしくは、"リレーションシップ" ビューでのドラッグ&ドロップが使用できる。多くの場合 1対多になるはずなので自動で設定される内容で問題ないはず。調整が必要な場合、[リレーションシップの管理] - [リレーションシップの編集] で設定する。<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxSXRJmhlD-SwML5lvEKnV0RV4Q7NJJCnfAnUuU_3DUoGtbmm6w5JmHgtY8AUzqc52_eyQ-cdCKJB3GP3Ucow-mdagaUxOXRKfvLv2mSIwi1uKYQwLM75iCcCCpkuuXK8A7XhXmsHcQK0U/s1600/2016021307.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxSXRJmhlD-SwML5lvEKnV0RV4Q7NJJCnfAnUuU_3DUoGtbmm6w5JmHgtY8AUzqc52_eyQ-cdCKJB3GP3Ucow-mdagaUxOXRKfvLv2mSIwi1uKYQwLM75iCcCCpkuuXK8A7XhXmsHcQK0U/s1600/2016021307.gif" /></a></div>
<br />
独自に用意したディメンジョン テーブルにより、<br />
<ul>
<li>"地方"カラムを使用するスライサでの集計</li>
<li>受注がない地域を含む都道府県別集計</li>
</ul>
ができるようになった。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit7WQeUd5DRNqAvuiSOcisy0rKgba-tPJE8wdp4n5zOFPf4nXRB2jyrIumHLP8cIHN6UlW2ULEj09bGdhDKWP4sCSH9PfQ8UW3hW7R2KhpMnCVqFkc-BsKJgn0CuYFiZdkT_EagYIe6vjI/s1600/2016021307.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit7WQeUd5DRNqAvuiSOcisy0rKgba-tPJE8wdp4n5zOFPf4nXRB2jyrIumHLP8cIHN6UlW2ULEj09bGdhDKWP4sCSH9PfQ8UW3hW7R2KhpMnCVqFkc-BsKJgn0CuYFiZdkT_EagYIe6vjI/s1600/2016021307.gif" /></a></div>
<br />
存在しないデータの集計表示をできるようにしたので、"データにない項目を表示する" オプションを期待する動作をする状態になったともいえる。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt8gLWjEB6hoZiw3IyRSC3aSxavxbSzzrCAooDwYoxcSOy4SEbHvo34p6Chnz7JmutigalBYMvwlqmlG8rVRjstY2gu0ac_1rZ4X091iaDX2vNg1rSlMIcfhedOywpAtCgOv3wTfULoOIa/s1600/2016021309.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt8gLWjEB6hoZiw3IyRSC3aSxavxbSzzrCAooDwYoxcSOy4SEbHvo34p6Chnz7JmutigalBYMvwlqmlG8rVRjstY2gu0ac_1rZ4X091iaDX2vNg1rSlMIcfhedOywpAtCgOv3wTfULoOIa/s1600/2016021309.png" /></a></div>
<br />MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-69856890480443999602016-02-07T23:00:00.000+09:002016-02-07T23:01:18.180+09:00Power BI - 21 - Power BI Desktop と Access アプリ Power BI Desktop だけを使用するだけなら Power BI Service のアカウントやサインインは不要なのだけど、集計レポートを共有をしようとするとき便利だし、Access アプリ(Access Services) をデータソースにしているのだから、Power BI のサブスクリプションを所有しライセンスが割り当てられているいることを前提として Power BI Service への発行 / Publish をしてみる。<br />
<br />
<b>発行</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga6OZdfZMODOU61oyP_8RHg9Pi9DKAVLcKs_SS85MeIJg2FqM1ZU7g92BmZLM0WZ1jtqTlUYbJSGVcfAsOO-YnE2hcxgTBBuznCtFoo9J0xF4um-TTtbKGy9fQvJ6nYn1WFY3PAuNItvvT/s1600/2016020701.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga6OZdfZMODOU61oyP_8RHg9Pi9DKAVLcKs_SS85MeIJg2FqM1ZU7g92BmZLM0WZ1jtqTlUYbJSGVcfAsOO-YnE2hcxgTBBuznCtFoo9J0xF4um-TTtbKGy9fQvJ6nYn1WFY3PAuNItvvT/s1600/2016020701.png" /></a></div>
<blockquote class="tr_bq">
<a href="https://powerbi.microsoft.com/ja-jp/documentation/powerbi-desktop-upload-desktop-files/">Power BI Desktop からの発行</a></blockquote>
Power BI Service で[データの取得] をする場合、<br />
<ul>
<li><a href="https://powerbi.microsoft.com/ja-jp/documentation/powerbi-service-get-data-from-files/">Excel、Power BI Desktop、CSV ファイルから Power BI へのデータの取得</a></li>
<li><a href="https://powerbi.microsoft.com/ja-jp/documentation/powerbi-replace-an-excel-power-bi-desktop-or-csv-file/">Power BI 内で Excel、Power BI Desktop、CSV ファイルを置き換える</a> </li>
</ul>
<a name='more'></a><br />
発行が成功し、<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3SIKUIVsW1l6INTIh0mSgizybUjbOTndbVNcJje6nIu9oWKxuHkIe430wKpe7uTs-u8yM8xtfCwftXkjLV0Kus_ddtD_i02PkeSHPENzxd6y2dwc3vWWv2hwEG87glGTq26EMnFGmUj7r/s1600/2016020702.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3SIKUIVsW1l6INTIh0mSgizybUjbOTndbVNcJje6nIu9oWKxuHkIe430wKpe7uTs-u8yM8xtfCwftXkjLV0Kus_ddtD_i02PkeSHPENzxd6y2dwc3vWWv2hwEG87glGTq26EMnFGmUj7r/s1600/2016020702.png" /></a></div>
<br />
Power BI Desktop で作成したレポートも用意される。見た目の調整は適宜。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOUaOewH9nEwzJ_E3u9wn0SeJqnfxQz5o01Y3IthuUl2rnrM5fKbzOlNgblUA2bmq9HCra_4C9Kk1wCtFRNGTrUNboF7ycViWsQWWDnTJWJA0smkod2xtcPrT_KmR1Zqdlq0pCMz41y50x/s1600/2016020703.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOUaOewH9nEwzJ_E3u9wn0SeJqnfxQz5o01Y3IthuUl2rnrM5fKbzOlNgblUA2bmq9HCra_4C9Kk1wCtFRNGTrUNboF7ycViWsQWWDnTJWJA0smkod2xtcPrT_KmR1Zqdlq0pCMz41y50x/s1600/2016020703.png" /></a></div>
<br />
更新された Access アプリ上のデータを Power BI Service レポートに対しスケジュールされた更新を実施したいので データセットの設定を実施。更新が必要なければこの作業は不要、データの更新がされないだけ。<br />
<br />
<b>設定</b> <br />
Power BI Service のサイトにあるスイートバー [設定](ギアアイコン) の [設定] - [データセット]。該当するデータセットのメニュー [更新のスケジュール設定] でもよい。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz2H-1gbbqAOePcpkIGuUW9xDbahY455tFEV_HOcDm4zG00QLaaLcJ82mUTM5_XrRkoC4GcIO0q3nzA2F7UqBZmblPhDgCTr6TJD83EVv7FPoWx3m8iwVGvu_NvnRTUc-KG3Io5c1Tj2WM/s1600/2016020704.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz2H-1gbbqAOePcpkIGuUW9xDbahY455tFEV_HOcDm4zG00QLaaLcJ82mUTM5_XrRkoC4GcIO0q3nzA2F7UqBZmblPhDgCTr6TJD83EVv7FPoWx3m8iwVGvu_NvnRTUc-KG3Io5c1Tj2WM/s1600/2016020704.png" /></a></div>
<br />
<b>資格情報の編集</b><br />
データソースの資格情報が未設定なので、[更新のスケジュール設定]ができない状態<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8OjYcQithmoFEFa51kQLayZ2T4mcCAKn5SYoRSrQDeicnqsHgDGHNCSkMID8C7eIrjSV2qxxlFB9R7N_ozCcl9eLL1M04VZeT1LoHLnreEhncv89aIKP34pbJJUORobUE5M59QOCkXxaX/s1600/2016020705.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8OjYcQithmoFEFa51kQLayZ2T4mcCAKn5SYoRSrQDeicnqsHgDGHNCSkMID8C7eIrjSV2qxxlFB9R7N_ozCcl9eLL1M04VZeT1LoHLnreEhncv89aIKP34pbJJUORobUE5M59QOCkXxaX/s640/2016020705.png" width="640" /></a></div>
<br />
認証方法を "Basic" にして、Azure SQL データベースのアカウント情報を入力して [サインイン]<br />
ここではデータソースがひとつだが複数のデータソースを使用している場合、それぞれに設定が必要。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUl4l3GbY4MHoSELvNvEgMiqIYAFX97KCZx-XLE279QGSlLMqBSE8I8gzAsG274ku4p_jlZMkHHevjGWahos0u3t6APGDDIhHgLNQcoS7FnRpo-myoMV_CNkI_zanJpW5AEOVicegBX_IN/s1600/2016020706.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUl4l3GbY4MHoSELvNvEgMiqIYAFX97KCZx-XLE279QGSlLMqBSE8I8gzAsG274ku4p_jlZMkHHevjGWahos0u3t6APGDDIhHgLNQcoS7FnRpo-myoMV_CNkI_zanJpW5AEOVicegBX_IN/s1600/2016020706.png" /></a></div>
<br />
<b>更新のスケジュール設定</b><br />
接続が確認できると更新時間などを調整できるようになる。<br />
[時間]を設定しなかった場合、AM12 になるみたい。無料のPower BIの場合、1回/日 までで1日を4分割した時間帯指定のみ。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRuend-FbfyKRk7CvMYR9FQdNOow4sFlLlGxs1bI5vfIwDqEK6p1BuNXLfSPL7QvkyIPPk7dtJEwfHRfh_BdS1BRRutZ5IlMLqQBz936go3QwKcBQsqRN9YHzlfOGGLysGcTo6cLFhrpWq/s1600/2016020708.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="607" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRuend-FbfyKRk7CvMYR9FQdNOow4sFlLlGxs1bI5vfIwDqEK6p1BuNXLfSPL7QvkyIPPk7dtJEwfHRfh_BdS1BRRutZ5IlMLqQBz936go3QwKcBQsqRN9YHzlfOGGLysGcTo6cLFhrpWq/s640/2016020708.png" width="640" /></a></div>
<br />
ここまでの設定をしておくと Access アプリをデータソースにしたPower BI レポートをAccess アプリを使用しないユーザであっても情報共有ができる。更新されてすぐさま適用とすることはできないのだけど、Access アプリ用Office アドインを開発してレポートとして埋め込むより簡単。 <br />
<br />
Power BI Desktop のファイル(*.pbix)を OneDrive / OneDrive for Business / SharePoint 共有ドキュメント からインポートした場合、[OneDrive の更新]の設定が表示されるので"いいえ"にしておく。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyDKpO5HW7nsg45F_GW05dFPbxH4IvOHEncMIKot9EAK8UOpPBII6SNRihYlIG18oemDjYGOhUmMoFQV2PyIviNX92ZKMaWzQPZb2JwWDXUZuQ5mP2X3MFNrRh0rW3aTbM8MLea_TouvQA/s1600/2016020707.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="558" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyDKpO5HW7nsg45F_GW05dFPbxH4IvOHEncMIKot9EAK8UOpPBII6SNRihYlIG18oemDjYGOhUmMoFQV2PyIviNX92ZKMaWzQPZb2JwWDXUZuQ5mP2X3MFNrRh0rW3aTbM8MLea_TouvQA/s640/2016020707.png" width="640" /></a></div>
MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-45321531200449807592016-02-06T15:00:00.000+09:002016-02-06T15:00:03.570+09:00Access 2016 への製品バージョンアップSurface Book(ja-jp)を買っちゃったのだけど、プレインストールされた Office スイート と Access 2013 についての問題を解決した。PIPC な システムを買うことがほぼないのでこれまで確かめてなかった件。<br />
<br />
以前に購入した Surface Pro には Office Home and Business 2013 が用意されていたが、Access が含まれない Office スイートなので Access 2013(C2R)別途追加購入し使っていた。<br />
<br />
Surface Book は<br />
<blockquote class="tr_bq">
<a href="https://products.office.com/ja-jp/home-and-business-premium">Microsoft Office Home & Business Premium プラス Office 365 サービス</a></blockquote>
が用意されているのだけど、同様に Access が含まれない Office スイートであり、Office 2016 へのバージョンアップが可能。次々と機能が追加されていくであろう Office 2016 バージョンを使いたいのだけど、ここで発生する問題は Click-to-Run製品(C2R) の仕様による制限。<br />
<blockquote class="tr_bq">
<a href="https://www.microsoft.com/ja-jp/office/2016/attention.aspx">Office 2016 購入に関する ご注意</a></blockquote>
にある内容通り、Office 2016 にバージョンアップすると Access 2013(C2R)がインストールできない。<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyn4G7n2NctOxOZCYNDoeaa4jzs7IpABMw_0ko3JWRMttJ9wAyYTNw74-Uh3sZuJ6xCNFmV_Uw0GdWsZCQv5SnGSxiZZ97vjhN3CB4QF30L-jbB0FmO4ZsNfZWDehVRoAlh7IdlMSSISWD/s1600/2016020602.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyn4G7n2NctOxOZCYNDoeaa4jzs7IpABMw_0ko3JWRMttJ9wAyYTNw74-Uh3sZuJ6xCNFmV_Uw0GdWsZCQv5SnGSxiZZ97vjhN3CB4QF30L-jbB0FmO4ZsNfZWDehVRoAlh7IdlMSSISWD/s1600/2016020602.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">シミュレーション環境なので実際とは異なるかもですよ</td></tr>
</tbody></table>
<br />
Access 2013(C2R) を先にインストールしても制限があり、続行すると Access はアンインストールされることになる。<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy9sbnkLnk2kQgkmF-Tyhme2Lib1iP20q5RcgmKLnkZt5NjWgu8uQytU9Xwct7mtnmKpQ8mCOMdHXlB3Kl4NGGq0ejES-KuEqzWOe-CAwjcyd9tdT3Mg4-ChvfMxdZwgvru5ut6-W6hmmL/s1600/2016020601.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy9sbnkLnk2kQgkmF-Tyhme2Lib1iP20q5RcgmKLnkZt5NjWgu8uQytU9Xwct7mtnmKpQ8mCOMdHXlB3Kl4NGGq0ejES-KuEqzWOe-CAwjcyd9tdT3Mg4-ChvfMxdZwgvru5ut6-W6hmmL/s1600/2016020601.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">シミュレーション環境なので...</td></tr>
</tbody></table>
<br />
で、どうするか。<br />
<br />
<a name='more'></a>2015/10 には、<br />
<blockquote class="tr_bq">
<a href="https://support.office.com/en-us/article/Special-offer-for-customers-with-Office-2016-and-Office-2013-standalone-applications-c32e3cad-e935-4163-a44f-50d896e10bbc">Special offer for customers with Office 2016 and Office 2013 standalone applications</a></blockquote>
という情報は展開されていて以前は日本語ページもあったのだけど、そのかわりというか、明示されていないけど前段の"<a href="https://www.microsoft.com/ja-jp/office/2016/attention.aspx">Office 2016 購入に関する ご注意</a>"に含まれているかと。そもそもの"特別な申し出"を読むと、<br />
<ul>
<li>Office 2016 バージョンの製品がインストールされたデバイスに Office 2013 バージョンの単体製品のインストールはできない。</li>
<li>解決方法として、単体製品のバージョンアップが必要。</li>
<li>Microsoft Answer Desk の Acount & Billing に連絡して単体製品の"free upgrade" を。</li>
<li>期限は 2016/06/30 </li>
<li>該当するOffice 2013 単体製品と Office 2016 製品の組み合わせ</li>
<li>Office 製品は Microsoft アカウントに紐づけられていること</li>
<li>認定されたMicrosoft retailer から購入した製品が対象でVLは含まない。</li>
<li>このオファーは、<b>"日本以外</b><b>"</b>の全世界の国々や地域で有効。</li>
</ul>
なので、<br />
日本ではどうなることか思い マイクロソフト アンサーデスクに連絡。いくつかの満足できる提案を受けることができ、結果 Access 2013 を Access 2016 にバージョンアップしてもらえた。めでたしめでたし<br />
<br />
Excel 2016 単体を購入してインストールしたら もともと使っていた Office 2013 が削除されたということを見聞きしていたけど、それは日本以外向けのオファーであっても製品の組み合わせが該当していない。<br />
<br />MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-76007010658356596262016-01-31T19:58:00.000+09:002016-02-07T19:01:38.189+09:00Power BI - 20 - Power BI Desktop と Access アプリ受注結果が記録されている"受注"テーブルで ファクト テーブル。これから受注額などを計算する。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglZahRqgzT9DasFnC-GEDJE6NUCrs5Ubmp6H8ZYb37VMS2tT6nGYfhyphenhyphenqU1GQmcno4T4-qNaEHEU_mSpqdSudoZrN-Czb2eWek1FwJfa7Lk2XPoU4KUAeqSintHCpopsSO1dC4u9MFjUk-a/s1600/2016013101.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglZahRqgzT9DasFnC-GEDJE6NUCrs5Ubmp6H8ZYb37VMS2tT6nGYfhyphenhyphenqU1GQmcno4T4-qNaEHEU_mSpqdSudoZrN-Czb2eWek1FwJfa7Lk2XPoU4KUAeqSintHCpopsSO1dC4u9MFjUk-a/s1600/2016013101.png" /></a></div>テーブル '受注' には、<br />
<ul><li>[単価] --- 受注商品の単価</li>
<li>[数量] --- 受注商品の数量</li>
<li>[割引] --- 受注明細ごとの割引率</li>
<li>[受注コード] --- 受注ごとのユニークキー </li>
</ul>を残しているので、明細行ごとの集計額が [単価] * [数量] * (1 - [割引]) になり、[受注コード] ごとに集計額を集計(合計)したものが、受注ごとの受注額に相当する。値を求めるには、<br />
<ul><li>新しい列(計算列)を追加する</li>
<li>新しいメジャーを追加する</li>
</ul>のいずれか。 <br />
<br />
<a name='more'></a><br />
<b>"新しい列"を追加する</b><br />
とても簡単な方法のひとつ。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv97F_ONtnFjN9NRHU2ZF-1g_NZycKADbYnWy3b1c0ho_XmZgR4Gfnw8KNhLJyqWthNigaWk8nOAmuhrkZjZvOGvD51W93nmxElL5daVldvHc4Yr9fGOldk5NjaoMfNMrjp1MYqs5nhd4p/s1600/2016013102.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgv97F_ONtnFjN9NRHU2ZF-1g_NZycKADbYnWy3b1c0ho_XmZgR4Gfnw8KNhLJyqWthNigaWk8nOAmuhrkZjZvOGvD51W93nmxElL5daVldvHc4Yr9fGOldk5NjaoMfNMrjp1MYqs5nhd4p/s1600/2016013102.png" /></a></div>金額を表す [書式] と [既定の概要] を "合計" にしておく。 <br />
新しい列(計算列) は各行ごとの計算のみに使用でき、すべての行に対し演算が実施される。演算済み値が追加されるのでデータモデルのサイズは増加する。計算列は見出しとして使用することができるカラムになるが、この場面ではその用途はない。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUbGJb6uZ91AOi_MP-bcIoArbsA-BgxxlR9htXHqeLDyz-_UrfWYqiZEZWQo82vF1vR9WzBqIL5wVxsnnmtBq7_1UtvK6SOSkMgEYS-DIyYOmdGZZH_uzpNo4AcUWZ_lxYNwZdAkBY4B1s/s1600/2016013103.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUbGJb6uZ91AOi_MP-bcIoArbsA-BgxxlR9htXHqeLDyz-_UrfWYqiZEZWQo82vF1vR9WzBqIL5wVxsnnmtBq7_1UtvK6SOSkMgEYS-DIyYOmdGZZH_uzpNo4AcUWZ_lxYNwZdAkBY4B1s/s1600/2016013103.png" /></a></div>[既定の概要] は暗黙的メジャーなので、行見出しや凡例ごとの集計(SUM)は自動で行われる。<br />
<br />
<b>"新しいメジャー"を追加する</b><br />
メジャーは計算列と異なり演算は使用されるときに行われ、データモデルに計算済み値が保存されることはない。ファクトテーブルの行数は通常多くなっていくので、すべての行で演算が発生する計算列が適さないことがある。また、メジャーはフィルタ済みの値に対し演算が実施されるので太陽量のテーブルであってもパフォーマンスが優位となることが期待できる。<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL0Bo3Xl_jBcD7WfX7iwWLqZuf06P1lu-UwlWXOegtg5LQKRnBAfHYD1jWqDgCd2wn_usFZqnTi48KOmVBpBY0lkDt6b2sVikAMM64BzmFNbvg8FslnsJSc0OaYgvIt_p5acTxDxl3LH7F/s1600/2016013104.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL0Bo3Xl_jBcD7WfX7iwWLqZuf06P1lu-UwlWXOegtg5LQKRnBAfHYD1jWqDgCd2wn_usFZqnTi48KOmVBpBY0lkDt6b2sVikAMM64BzmFNbvg8FslnsJSc0OaYgvIt_p5acTxDxl3LH7F/s1600/2016013104.png" /></a></div>当然だけど同じ結果になる。<br />
<br />
受注額 =<br />
<span class="Keyword" style="color: #0070ff;">SUMX</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> '受注', [単価] * [数量] *<span class="Parenthesis" style="color: #d0d0d0;"> (</span> <span class="Number" style="color: #ee7f18;">1</span> - [割引] <span class="Parenthesis" style="color: #d0d0d0;">)</span> <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
<b>SUMX (<a href="https://msdn.microsoft.com/ja-jp/library/ee634959%28v=sql.120%29.aspx">MSDN - SUMX</a>)</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLS8fYqg908gYRW11qUreUT2SVY7vby1ByWIJcjaXme7PzDSECff9EPQ2wvPnkRWUFJyGrdZX5VAylFpuj_0MlqgYoQvEMVy2R4m5BlNKeRyGzbxyHIP1j3DfRXw0M8AIn2HK33dTrz8dA/s1600/2016013105.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLS8fYqg908gYRW11qUreUT2SVY7vby1ByWIJcjaXme7PzDSECff9EPQ2wvPnkRWUFJyGrdZX5VAylFpuj_0MlqgYoQvEMVy2R4m5BlNKeRyGzbxyHIP1j3DfRXw0M8AIn2HK33dTrz8dA/s1600/2016013105.png" /></a></div><br />
受注件数 =<br />
<span class="Keyword" style="color: #0070ff;">DISTINCTCOUNT</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> '受注'[受注コード] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
<b>DISTINCTCOUNT (<a href="https://msdn.microsoft.com/ja-jp/library/gg492142%28v=sql.120%29.aspx">MSDN - DISTINCTCOUNT</a>)</b><br />
<br />
受注額(平均) =<br />
<span class="Keyword" style="color: #0070ff;">DIVIDE</span><span class="Parenthesis" style="color: #d0d0d0;"> (</span> '受注'[受注額], '受注'[受注件数] <span class="Parenthesis" style="color: #d0d0d0;">)</span><br />
<br />
<b>DIVIDE (<a href="https://msdn.microsoft.com/ja-jp/library/jj677276%28v=sql.120%29.aspx">MSDN - DIVIDE</a>)</b><br />
MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-39559179286375116572016-01-24T15:33:00.001+09:002016-01-24T15:33:43.665+09:00Power BI - 19 - Power BI Desktop と Access アプリ Power BI のレポートに使用するために下ごしらえをしてみる。<br />
インポートで作成されたデフォルトのデータモデルで作業することは不可能ではないのだけど、適した状態とはいえないから、使用しない/不要なカラムの排除やスキーマの変換を実施する。<br />
Power BI Desktopでのレポート作業では問題が発生しなくても、Power BI Serviceにインポートしたとき、満足できるパフォーマンスや期待する結果が得られないかもしれない。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPBvRE-daHpwZDUkd50xhyphenhypheneJxm69tCCoan8kT09beaeENgro8ITP_EUCXj6leeiT66r_ovjbd4oWUUuU42KnTfwEHL0-nFffzBcp_Q7Ufma5qwEuMYrA9HeftPf7ggk38YqoEFLvu45VJf/s1600/2016012304.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPBvRE-daHpwZDUkd50xhyphenhypheneJxm69tCCoan8kT09beaeENgro8ITP_EUCXj6leeiT66r_ovjbd4oWUUuU42KnTfwEHL0-nFffzBcp_Q7Ufma5qwEuMYrA9HeftPf7ggk38YqoEFLvu45VJf/s1600/2016012304.png" /></a></div>
ETLのT(Transform/変換)の作業を実施しないと、テーブルに存在するカラムすべてをインポートしてしまう。社員の誕生日などは受注に関するBIには不要であることは明白。また、第3正規化はリレーショナルデータベースに用いられていること多いが、BIでは適していない状態。<br />
<br />
<a name='more'></a><br />
<b>使用しない/不要なカラムの削除</b><br />
クエリエディタを使ってレポートには使用しない/不要なカラムを削除する。この作業でデータソースは影響を受けることはない。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDBOTgHCDI6G5YLt890EyJLehQFQAh5JT5bOF7_CxcHNmKaKz4OoxSIOoOO3rw3TuYmIuFXSWZm_gaj25X-iIzRH3akQySeSDIhs9BHbE1-JkTnp04ddZN-H4p2roT3AWM_vk7bNlQ4kD7/s1600/2016012305.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDBOTgHCDI6G5YLt890EyJLehQFQAh5JT5bOF7_CxcHNmKaKz4OoxSIOoOO3rw3TuYmIuFXSWZm_gaj25X-iIzRH3akQySeSDIhs9BHbE1-JkTnp04ddZN-H4p2roT3AWM_vk7bNlQ4kD7/s640/2016012305.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDilmg-IEm2bblgDFWDmLuXKIwnKHNM3sct8QK1_MtjmvIHlVvAJ8OPagQbUrHWzMY7Sz5z0Y2rYeLVmXhX_hlCM_gKS90GZwddh5DOzOhxDBjBu2mPZK4SzsePiuVWwEyosP4Q0XxEWsu/s1600/2016012301.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDilmg-IEm2bblgDFWDmLuXKIwnKHNM3sct8QK1_MtjmvIHlVvAJ8OPagQbUrHWzMY7Sz5z0Y2rYeLVmXhX_hlCM_gKS90GZwddh5DOzOhxDBjBu2mPZK4SzsePiuVWwEyosP4Q0XxEWsu/s1600/2016012301.png" /></a></div>
リレーションに必要なカラム、レポートにするカラム以外をすべて整理した。<br />
<br />
<b>スタースキーマに変換</b><br />
"ファクト テーブル"と関連する"ディメンジョン テーブル"が星形になるスキーマ。ファクト テーブルは受注に関するデータが収まっていて、ディメンジョン テーブルのキーと数値や日付などが格納されている。ディメンジョン テーブルに関連するテーブルはファクト テーブルだけとなっていて、ディメンジョンテーブル間でリレーションを持たないので検索性能が高くなることが期待できる。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEYBQ4qDmQNN5RGA_91Pc2y0iTOFzrQIsvEoHdmfGTdFc2D9gmRlS8F0Kd57HpuDSkfoj6OOPW4jXbmK_0U8v60y9VO-7WRcLsY5rt4vAT4VUhdXZf6Al5NirdRQJquD8jnLYJ2INWG5Fm/s1600/2016012303.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEYBQ4qDmQNN5RGA_91Pc2y0iTOFzrQIsvEoHdmfGTdFc2D9gmRlS8F0Kd57HpuDSkfoj6OOPW4jXbmK_0U8v60y9VO-7WRcLsY5rt4vAT4VUhdXZf6Al5NirdRQJquD8jnLYJ2INWG5Fm/s1600/2016012303.png" /></a></div>
<br />
"受注"と"受注明細"が効率的なファクト テーブルになるようクエリエディタでマージを実施する。<br />
データソースより得られるリレーション情報からカラムは用意されているので、これを利用して"受注"テーブルにあるデータを"受注明細"に加える。ディメンジョン テーブルが存在するカラムについてはキーのみで事足りる。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQS3oO4xe-hPE8PNrMCscKRP07wedWhwQCMns51_cC5TeAIjXK68CPTROefmVhOwylf9nQUtv1rydck9MFNCgop0I9AQ40fw7pykiOXR0zBig0CYssqhjPd-AWNisArfFfXJd6ZXSRwTV3/s1600/2016012306.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQS3oO4xe-hPE8PNrMCscKRP07wedWhwQCMns51_cC5TeAIjXK68CPTROefmVhOwylf9nQUtv1rydck9MFNCgop0I9AQ40fw7pykiOXR0zBig0CYssqhjPd-AWNisArfFfXJd6ZXSRwTV3/s1600/2016012306.png" /></a></div>
<br />
整理した経過で使用されなくなるテーブルは、"読み込みを有効にする"オプションを無効にして、データモデルにロードされないように設定する。 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMTY2BCkokaeuE7IBIbwFIh4FMKM7s9LR1MbaO4wMPIT5bztym67W7OHm5QM2_HdByGPGPl4dKcU6C8LVsnhpdBErJV8fqaDS12BP41e_um2_7fQrM-noh-GvjivwsCaKdzbZftSLzyZCc/s1600/2016012307.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMTY2BCkokaeuE7IBIbwFIh4FMKM7s9LR1MbaO4wMPIT5bztym67W7OHm5QM2_HdByGPGPl4dKcU6C8LVsnhpdBErJV8fqaDS12BP41e_um2_7fQrM-noh-GvjivwsCaKdzbZftSLzyZCc/s1600/2016012307.png" /></a></div>
<br />
"レポート ビューの非表示"オプションで設定することで、レポート ビューでのフィールドを非表示にすることができる。レポート ビューでも設定できるけど。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitqSjtSFaRhovRoSPn3Pj_PbpWiN47gPxtaW0UKNyaVvOt-QVQ6Cjijw7H1K4aozL6IOtnRDpgd6niYunIaiZ24cBMZbosoJMHhmWiyH5vJ0DPbQWMj2XBUxXID8mbRWzgV_5SXIoJpAcf/s1600/2016012302.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitqSjtSFaRhovRoSPn3Pj_PbpWiN47gPxtaW0UKNyaVvOt-QVQ6Cjijw7H1K4aozL6IOtnRDpgd6niYunIaiZ24cBMZbosoJMHhmWiyH5vJ0DPbQWMj2XBUxXID8mbRWzgV_5SXIoJpAcf/s1600/2016012302.png" /></a></div>
<br />
<br />MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-19421093254475736512016-01-19T22:16:00.000+09:002016-01-24T11:07:33.788+09:00Power BI - 18 - Power BI Desktop と Access アプリ Power BI Service(直接接続)だとデータ加工の程度に限界があるので、Power BI Desktop を使ってみる。Access アプリに専用のクエリなど用意すればできなくはないけれども、他データソースとの結合などもしたいこともあるでしょうし、Power BI Service にアップロードするにしても Power BI Pro の契約は不要なので。<br />
<br />
まずはデータのロードまで。<br />
<br />
SharePoint Online で実行する Access アプリのデータは、Microsoft Azure SQL データベースなので、[データの取得]では、"Microsoft Azure SQL Database"で接続。事前にAccess アプリの[接続]でファイアウォールを通るようにしておくことは当然に必要。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihqjflW9PFt0im__S1rMSpYbaEkeyb0NHCRiCB2eS5ww1M_8jyp3iUHXFGNdU45m1tugZgpe_q-G2eXQ0TPB8369AOaWySVt6cmFmyyGcZIYqMMWxJrwyq1LwCEn5wIiopp7i_CXrrcZ2Q/s1600/2016011701.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihqjflW9PFt0im__S1rMSpYbaEkeyb0NHCRiCB2eS5ww1M_8jyp3iUHXFGNdU45m1tugZgpe_q-G2eXQ0TPB8369AOaWySVt6cmFmyyGcZIYqMMWxJrwyq1LwCEn5wIiopp7i_CXrrcZ2Q/s1600/2016011701.png" /></a></div>
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg69PtDwrMZq_s-W0pN5WsdYy7j8GOMmA_WRsY622Y2HRYayp-NTp9KsmLZ5086oz23efukmt53b2r72aNzP_6g0aJ9gVJrGtXTSngLaeeUPoiSlsgj6kSNUIMUviiL1hRavANALXuTiMfm/s1600/2016011702.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg69PtDwrMZq_s-W0pN5WsdYy7j8GOMmA_WRsY622Y2HRYayp-NTp9KsmLZ5086oz23efukmt53b2r72aNzP_6g0aJ9gVJrGtXTSngLaeeUPoiSlsgj6kSNUIMUviiL1hRavANALXuTiMfm/s640/2016011702.png" width="640" /></a></div>
あらかじめ取得しておいたアカウント情報を投入<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy_Nz30pMAK11b_ZS1FX7dgjcdvccjPloTbH-ysfBrrjg4FFP2HYdq9Q310JuVLj-gadjz3hvFBqq0cm8Tliwv5BkW2nrJLRSL_MQrxrQefQhYFRzkGueL4on9cPPPeCGUXhFknGILChmj/s1600/2016011703.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgy_Nz30pMAK11b_ZS1FX7dgjcdvccjPloTbH-ysfBrrjg4FFP2HYdq9Q310JuVLj-gadjz3hvFBqq0cm8Tliwv5BkW2nrJLRSL_MQrxrQefQhYFRzkGueL4on9cPPPeCGUXhFknGILChmj/s640/2016011703.png" width="640" /></a></div>
SQL Serverは占有的ではないしAccessアプリごとにデータベースは別なので、データベースを指定した資格情報を使用するとよい。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOhyphenhyphenMTvl9E16b1EAwCJHkbwchxwOn_ib7ECyp2w0h-tGXjuLruCNTgY5O3rfbKqySCHGSq-6Cc9poxUa4qc6zCL_FvkPqRBVhwjd-p7m3ZqNsSFy-8iC4mRj3GbXBr9D1AvW2sdDrg1s8P/s1600/2016011704.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOhyphenhyphenMTvl9E16b1EAwCJHkbwchxwOn_ib7ECyp2w0h-tGXjuLruCNTgY5O3rfbKqySCHGSq-6Cc9poxUa4qc6zCL_FvkPqRBVhwjd-p7m3ZqNsSFy-8iC4mRj3GbXBr9D1AvW2sdDrg1s8P/s1600/2016011704.png" /></a></div>
接続できると テーブル / クエリ / ストアドプロシージャ がリストされるけれども、テーブルかクエリを利用する感じになる。Access アプリのテーブルはテーブルごとにイメージ用テーブルが用意されているのだけど、ここではイメージデータを利用することはできないので スキーマ名.テーブル名のテーブルを使用。<br />
必要なテーブルを選択し、[読み込み] もしくは[編集]を押下すると、"インポートする"か"DirectQuery"が選択できるのだけど、ここでは"インポート"とする。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-cLE6tPPqRYSSvSBcyHVd-DhIhQCzIsakX3jFncXhw1yT4j2jPnsDIYcvaDb3ZQWz32erOxXY1nZjvip_gyHbcqyKJkh4c1kSehDzuozlfhjPbLAIYi6KsiZo4MUzGejXPlQ66BRZWdWS/s1600/2016011705.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-cLE6tPPqRYSSvSBcyHVd-DhIhQCzIsakX3jFncXhw1yT4j2jPnsDIYcvaDb3ZQWz32erOxXY1nZjvip_gyHbcqyKJkh4c1kSehDzuozlfhjPbLAIYi6KsiZo4MUzGejXPlQ66BRZWdWS/s1600/2016011705.png" /></a></div>
DirectQuery モードであるとき、メジャー/計算列/データソースの追加はサポートされない。"現在"となってるけど将来的にどうなるだろうか。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyfUa2twqRWFppBA481AYyW4Z-7OJ_i8fHgv0T2ylHGkj1_4N4JNfhChsBHA7Sru2OAArd-PsxUYiyLfjiT8fXaGnMPYOehN7krcJgJ54NE-LL47nwvE1MNJ1hxxbelTFKb9b5qqEAX-6m/s1600/2016011706.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyfUa2twqRWFppBA481AYyW4Z-7OJ_i8fHgv0T2ylHGkj1_4N4JNfhChsBHA7Sru2OAArd-PsxUYiyLfjiT8fXaGnMPYOehN7krcJgJ54NE-LL47nwvE1MNJ1hxxbelTFKb9b5qqEAX-6m/s1600/2016011706.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYEsJBt7_WVb94NOMHk0MKcL4seEYC1Os7ZptB_Z0s-n75HRK1RV2X6G_6FWBLFammJb9IxU58LUDTzWmenwvL-xg9uvZhxqB1WxFujRxbTxpAhxbU-cFdVDpdZZArwNS1S6E4k3WR2Gqo/s1600/2016011707.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYEsJBt7_WVb94NOMHk0MKcL4seEYC1Os7ZptB_Z0s-n75HRK1RV2X6G_6FWBLFammJb9IxU58LUDTzWmenwvL-xg9uvZhxqB1WxFujRxbTxpAhxbU-cFdVDpdZZArwNS1S6E4k3WR2Gqo/s1600/2016011707.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiditrjUTFP-sTg3I86x-qTWSzvoFtDItjjAmZa9WOTapMkWE7OVD63GcS79NO8X3UwpeMZ5zlQ1Le_mv0fUSqJ0O8-tRdUz8fFKaiIHMCf1KvnD2FfA1rDdrTMH-rmNCFFAeDIHhQjYSt9/s1600/2016011708.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiditrjUTFP-sTg3I86x-qTWSzvoFtDItjjAmZa9WOTapMkWE7OVD63GcS79NO8X3UwpeMZ5zlQ1Le_mv0fUSqJ0O8-tRdUz8fFKaiIHMCf1KvnD2FfA1rDdrTMH-rmNCFFAeDIHhQjYSt9/s1600/2016011708.png" /></a> </div>
<br />
具体的な感じで、必要なテーブルを選択する。<br />
[関連テーブルの選択]を押下すると、選択したテーブルに関連するテーブルが追加される。 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2B_OSaGpNTg5qzYTEK5ohRkQ55dD6xibob3uQxkm3-NSC3jFNMkfC3M26j6_LIZsizfvqDo1NxdI3GenJf-dw8AlDq7HFEkWd8YMZhwF3giJSod1YQZskGl9VXW2dpqkjBJz_N37PfwNi/s1600/2016011709.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2B_OSaGpNTg5qzYTEK5ohRkQ55dD6xibob3uQxkm3-NSC3jFNMkfC3M26j6_LIZsizfvqDo1NxdI3GenJf-dw8AlDq7HFEkWd8YMZhwF3giJSod1YQZskGl9VXW2dpqkjBJz_N37PfwNi/s1600/2016011709.png" /></a></div>
[編集]を押下したときは、クエリエディタに移行しデータの加工が行えるようになる。<br />
テーブルビューでもできるけれども、不要なフィールドの削除やテーブルのマージなども実施すればいい。また、テーブルビュー以降で メジャー/計算列を使用する作業などで困難になるようなことがあればここで演算などすることも可能。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLiqSwsPTCwNsB5LpSb_1RrT8bxmzYQ0kCWatJ7AESZYyaw2fbx1f8ykEhUJ53xu-hJTF480QjK56oJvf8QdkyqDdUKAzH2bt6JiBQqPbvWShUgSklKb6CoaeR4nrVHr1zeZA7ZeTCtdfA/s1600/2016011710.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLiqSwsPTCwNsB5LpSb_1RrT8bxmzYQ0kCWatJ7AESZYyaw2fbx1f8ykEhUJ53xu-hJTF480QjK56oJvf8QdkyqDdUKAzH2bt6JiBQqPbvWShUgSklKb6CoaeR4nrVHr1zeZA7ZeTCtdfA/s640/2016011710.png" width="640" /></a></div>
テーブルビュー / レポートビューに遷移してからであればフィールドペイン で"非表示"や"削除"してもよい。ビジュアルで表示、もしくはそれらに関連する可能性があるなら"非表示"一択なのでしょうけれども。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSGuliDg6LGugjs9OmoJ8fglqzKgxYdt-qI8mDhFIOVp6gPTZxpPDx_kCEKRcILCZhowV_hegthwxkJVlIOh01KqP8l_nXtYSR_YwrIdTjBGmagjtO3kBS1oY_FyHwnLEPZ2MpWJIlaU-a/s1600/2016011711.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSGuliDg6LGugjs9OmoJ8fglqzKgxYdt-qI8mDhFIOVp6gPTZxpPDx_kCEKRcILCZhowV_hegthwxkJVlIOh01KqP8l_nXtYSR_YwrIdTjBGmagjtO3kBS1oY_FyHwnLEPZ2MpWJIlaU-a/s1600/2016011711.png" /></a></div>
<br />
<br />
クエリエディタであらかたの作業(クレンジングなど)を実施して、テーブルビューなどでメジャー / 計算列を追加。テーブル間のリレーションはすでに設定されている状態にあるが適宜に変更と追加など調整する。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-2850270693689180052016-01-14T22:12:00.000+09:002016-01-14T22:12:17.153+09:00Power BI - 17 - Power BI Access アプリのデータSharePoint Online のAccess アプリ(Access Services) のデータを Power BI でレポートできるようにしてみる。Access アプリのデータベースは Azure SQL Databaseなので、使うツールの選択とその設定だけで Power BI で分析レポートが利用できるということ。<br />
<br />
<b>Access アプリ の [接続] 設定</b><br />
Access Services 以外から Azure SQL Database に接続できるためのファイアウォールを開放する。<br />
Access アプリ の編集で、[ファイル] → [情報] → [接続]<br />
"任意の場所" と "読み取り専用接続を有効にする" を有効<br />
"読み取り専用接続の情報の表示" で データベース情報とログインアカウントを入手 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigZl8xHzZNWC-dsmJHFEYYILk9_MgcujDHuglUYpFdr5TOPwlnnv1_D60uE9UmnY7YYplid1SmEJ73hUTL3JV8Ty4sun9ZfYezQ-jN7VHTYY3L9IqACa7y-NWgabvLzDrnlGZA3BghpUym/s1600/2016010901.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigZl8xHzZNWC-dsmJHFEYYILk9_MgcujDHuglUYpFdr5TOPwlnnv1_D60uE9UmnY7YYplid1SmEJ73hUTL3JV8Ty4sun9ZfYezQ-jN7VHTYY3L9IqACa7y-NWgabvLzDrnlGZA3BghpUym/s1600/2016010901.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<a name='more'></a><br />
<br />
<b>Power BI Service の Azure SQL Database 直接接続(</b><b>DirectQuery)</b> ※Power BI Pro のみ<br />
[データの取得] → [データベース] → [Azure SQL Database] →[接続]<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMXV7XGILsUY1IIWj_b77q02sozcDaRKFTe_GLfUE1ve-jlEWdo9R8kH0vYoSPr_TucQ89W7LvA95DlvloiqUa-luZ7va7720u8VomUddhRlpqALxhyphenhyphenYPHODhOrTg3ISSaJ-xFCJM3uz72/s1600/2016010902.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMXV7XGILsUY1IIWj_b77q02sozcDaRKFTe_GLfUE1ve-jlEWdo9R8kH0vYoSPr_TucQ89W7LvA95DlvloiqUa-luZ7va7720u8VomUddhRlpqALxhyphenhyphenYPHODhOrTg3ISSaJ-xFCJM3uz72/s1600/2016010902.png" /></a></div>
<br />
"サーバー" と "データベース" にデータベース情報<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsLBs5RZFocrN7sGJTtjAHVIZv8wZpJq-qAsD56MHvkCbvw6KDu3DwJg8cigg0ZUYHWF_GuA-zKe-TKv5TCDrbTLG5QsGM52nXTpTl7OmkR1BU3uCNvv_oECVKHqdqQ4B9gdXoebFxwfgu/s1600/2016010903.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsLBs5RZFocrN7sGJTtjAHVIZv8wZpJq-qAsD56MHvkCbvw6KDu3DwJg8cigg0ZUYHWF_GuA-zKe-TKv5TCDrbTLG5QsGM52nXTpTl7OmkR1BU3uCNvv_oECVKHqdqQ4B9gdXoebFxwfgu/s1600/2016010903.png" /></a></div>
<br />
詳細オプションでは、更新間隔 とカスタム フィルターの設定が可能<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb5H657HxGAHDnWrdOlIUeOVbhtbelsDc9bysBXJpSLRJe5bgOlPn23S94jLkrRaMgfVC22ILErfIp8DCjZ_97ijG5Zr4_N1VowS9YuoWvJyGTzyQVqg0EXzy4Sytk8hyphenhyphenm5luJyrBrBlSf/s1600/2016010904.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb5H657HxGAHDnWrdOlIUeOVbhtbelsDc9bysBXJpSLRJe5bgOlPn23S94jLkrRaMgfVC22ILErfIp8DCjZ_97ijG5Zr4_N1VowS9YuoWvJyGTzyQVqg0EXzy4Sytk8hyphenhyphenm5luJyrBrBlSf/s1600/2016010904.png" /></a></div>
カスタム フィルターを使用する場合ソースになるデータベースの構造についてあらかじめ知っておく必要がある。ただAccess アプリで使用する場合、テーブル名、クエリ名、SQL を指定して使ったほうがよい。なぜなら、データベース部分の変更には限りがあるし、分析やレポートに必要ないテーブルも参照してしまうから。Power BI で使用する目的のテーブル/クエリをAccess アプリに用意しておくというのが都合よいかもしれない。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM9Dw0xrzmwLUTVmubmWGuk-JZhjre9OhpsPTz3VGM4lrlMSdccvtmSMcEkNyPxFSaNINqljYwbm_qV89ngvo_1iSy0dbr_7_4AR3yb5uuV4x8Fs-jaL1bJCf6bI961PH7YW-LBgPPgZaz/s1600/2016010905.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM9Dw0xrzmwLUTVmubmWGuk-JZhjre9OhpsPTz3VGM4lrlMSdccvtmSMcEkNyPxFSaNINqljYwbm_qV89ngvo_1iSy0dbr_7_4AR3yb5uuV4x8Fs-jaL1bJCf6bI961PH7YW-LBgPPgZaz/s1600/2016010905.png" /></a></div>
<br />
で、サインインするとデータセットにつかされてレポートの作成が可能になる。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjP2kq86vWmFnQlvwISdzvukXSRrPG5VHf5ImXgqr_V9MgzTlp7aHW89QdOSNF1UvL02rI_8KHHjJb-lUVmPNEp8mx04MqIU06f1mipu3IsZwBB12-fZXAaLQLEoxysXJxjAmcunFbzzmv/s1600/2016010906.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjP2kq86vWmFnQlvwISdzvukXSRrPG5VHf5ImXgqr_V9MgzTlp7aHW89QdOSNF1UvL02rI_8KHHjJb-lUVmPNEp8mx04MqIU06f1mipu3IsZwBB12-fZXAaLQLEoxysXJxjAmcunFbzzmv/s640/2016010906.png" width="640" /></a></div>
<br />
作成した、テーブル:Table1 とクエリ:Query1を指定した。Access アプリで作成したクエリは、デザイン時と実行時用のクエリがそれぞれ用意されるのでふたつになる。<br />
それぞれには行数を返すメジャーが追加された状態になる。 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo2UV4fLz29liC5GjrjWxCbKRBbpM0kThWukA33s3-rWaPR1BpcxFKSFBsp9ejp8_BSUYFiLEhfs9jOSZHAHv1mm0SA5fa9Wbw8IZ24l3oH7GivwSB6WeM8wKkqjqTzhitSt7v2qO92uVT/s1600/2016010907.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo2UV4fLz29liC5GjrjWxCbKRBbpM0kThWukA33s3-rWaPR1BpcxFKSFBsp9ejp8_BSUYFiLEhfs9jOSZHAHv1mm0SA5fa9Wbw8IZ24l3oH7GivwSB6WeM8wKkqjqTzhitSt7v2qO92uVT/s1600/2016010907.png" /></a></div>
<br />
あとはお好みでレポートを作成すればよいのだが、<br />
<ul>
<li>計算列やメジャーの追加などはできない</li>
<li>テーブルの追加ができない</li>
<li>フィルタは双方向にならない </li>
<li>データソースはひとつだけ </li>
</ul>
要件を満たすならこのまま使えばよい。Access アプリのデータベース容量は最大1GB なのでDirectQueryを使用しなくてもよさそう。また、多くの場合、Excel もしくは Power BI Desktop でデータモデルにインポートしてレポートにしたほうがいろいろできて便利かと思うけど。<br />
<br />
Power BI Pro ではない場合、Power BI Desktop もしくは、Excel + Power Query / Power Pivot で。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-70125715863059984512016-01-02T11:32:00.001+09:002016-01-03T13:52:16.608+09:00Access 2016 Runtime で気にすべきこと先月初旬にリリースされていたのだけど、必要に応じて使用すればよいかと。<br />
<br />
ダウンロードはこちらから、 <b><a href="https://www.microsoft.com/ja-JP/download/details.aspx?id=50040">Microsoft Access 2016 Runtime</a></b><br />
<br />
MSI インストールになりますので、他Office製品(C2R / MSI)インストール状況に影響を受けます。展開環境 / 用途用法を充分に検討されるべきでしょう。また、製品の更新はMicrosoft Update 経由になるのでチェックは怠りなく。<br />
<ul>
<li><a href="https://support.office.com/ja-jp/article/Office-%E3%81%AE%E8%A4%87%E6%95%B0%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E5%90%8C%E3%81%98-PC-%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E4%BD%BF%E3%81%86-6EBB44CE-18A3-43F9-A187-B78C513788BF">Office の複数のバージョンを同じ PC にインストールして使う</a></li>
<li><span id="goog_1836765730"></span><span id="goog_1836765731"></span><a href="https://support.office.com/ja-jp/article/%E5%90%8C%E4%B8%80%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%A7%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E5%AE%9F%E8%A1%8C%E3%81%8A%E3%82%88%E3%81%B3-Window-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%A9%E3%83%BC%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%81%9F-Office-%E3%81%AF%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84-30775ef4-fa77-4f47-98fb-c5826a6926cd">同一コンピューターでクイック実行および Window インストーラーを使ってインストールされた Office はサポートされない</a></li>
<li><a href="https://support.microsoft.com/ja-jp/kb/2784668">Office 2013 スイートおよび Office 2013 プログラム (MSI による展開) を、他のバージョンの Office を実行しているコンピューターで使用する方法について</a> </li>
</ul>
MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-69639513113054185502016-01-01T23:46:00.001+09:002016-01-02T18:41:20.573+09:00Power BI - 16 - Power BI Desktop データの入力データソースなどから抽出することなくデータテーブルを新規に作成することができる。 <br />
2015/12 リリースバージョン(2.30.4246.281)からの機能<br />
<ul>
<li>データの入力/Entry Data コマンド</li>
<li>DATATABLE 関数(ひとつ前の2.29.4217.341 から)</li>
</ul>
<br />
<b>データの入力/Entry Data コマンド</b> <br />
データソースがなくてもよいのでちょっとした分析作業やほとんど更新されることがないデータの投入としたら便利かと思う。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhExpa4-rhdNykp1kkqAG2vcFA9nc67mpNZgB6F1I1XexrIXHKuVcU21LM6S-jfAObURIr_ln9nYq2vo0tzSSWkTqh7xnN6y7cm7q8STpt0ASSKq56mOWNByWul1bIXsjQt1S12ZaqiJfrC/s1600/2016010101.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhExpa4-rhdNykp1kkqAG2vcFA9nc67mpNZgB6F1I1XexrIXHKuVcU21LM6S-jfAObURIr_ln9nYq2vo0tzSSWkTqh7xnN6y7cm7q8STpt0ASSKq56mOWNByWul1bIXsjQt1S12ZaqiJfrC/s1600/2016010101.png" /></a></div>
[ホーム] → [外部データ] → [データの入力] で "テーブルの作成"ダイアログが開くので、ワークシートからコピペするもよし、手投入するもよし。<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIVRtSvMneg-VzocnrNpQuwfG82pDgiZQgLyko57xzA54AE-r36atVQiqS6gZ5EZgQFFXgVKwWEAja29nKYH7tu_G2-1eJoqwgSZAo5DEisGgHd-oUZnhyU_TjK0dgxxKfsIOImi0Z9XBy/s1600/2016010102.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIVRtSvMneg-VzocnrNpQuwfG82pDgiZQgLyko57xzA54AE-r36atVQiqS6gZ5EZgQFFXgVKwWEAja29nKYH7tu_G2-1eJoqwgSZAo5DEisGgHd-oUZnhyU_TjK0dgxxKfsIOImi0Z9XBy/s1600/2016010102.png" /></a></div>
[読み込み] でデータモデルにインポートされるが、[編集] でクエリエディタが起動するので適切な変換も実施できる。クエリエディタでどのような処理がされテーブルが作成されるかなどが見れる。<br />
<br />
<b>DATATABLE 関数</b> <br />
DAX? によるもうひとつの方法、インラインでテーブルとデータを定義する。リファレンスがないのだけど。<br />
DATATABLE(Name1, Type1, Name2, Type2, ..., data)<br />
戻り値は table 、引数:data は JSON形式で<br />
<pre class="brush:text">Table1 = DATATABLE(
"地域ID",INTEGER,
"地域名",STRING,
"都道府県",STRING,
{
{1,"A","東京都"},
{2,"B","神奈川県"},
{3,"C","その他"}
}
)</pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLPtFEPHCWmVo0G36-3sXt6IaBBtv7CGpLufhkBFnFMPTUXwpaOvGEnDzlfxjwX5tdQ-gti1B7hDY4P5dCLnelYHdKmUg_tEQO3OCl3Mra5gzC1xBBA7kM7VDwVVTZGaDFWe48LNNSKYRa/s1600/2016010103.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLPtFEPHCWmVo0G36-3sXt6IaBBtv7CGpLufhkBFnFMPTUXwpaOvGEnDzlfxjwX5tdQ-gti1B7hDY4P5dCLnelYHdKmUg_tEQO3OCl3Mra5gzC1xBBA7kM7VDwVVTZGaDFWe48LNNSKYRa/s1600/2016010103.png" /></a></div>
<br />
Power Query の "空のクエリ" でテーブルを定義し追加することは以前から通りで可能。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-35392920407880350632015-12-27T12:20:00.000+09:002015-12-27T12:20:16.270+09:00Power BI - 15 - Power Query テーブルの和結合 <span id="goog_1119961026"></span><span id="goog_1119961027"></span>複数のクエリ結果のテーブルをひとつのテーブルに結合することについて。<br />
データソースが複数になることはよくあるし、日ごとのログをまとめて集計するときなど和結合することになる。<br />
<br />
<b>Table.Combine(<a href="https://msdn.microsoft.com/en-us/library/mt260748.aspx">MSDN - Table.Combine</a>)</b><br />
Table.Combine(tables as list) as table<br />
引数 'tables' は list なので、Table.Combine({table1, table2, ...}) という記述になる。<br />
また、連結演算子(&) で和結合、table1 & table2 & ... でもよい。<br />
<pre class="brush:text">let
Table1 = #table(type table [F01 = text, F02 = Int64.Type], {{"a", 10}, {"b", 20}}),
Table2 = #table(type table [F01 = text, F02 = text], {{"c", "30"}, {"d", "40"}}),
Table3 = #table(type table [F01 = text, f02 = Int64.Type], {{"e", 50}, {"f", 60}}),
Table4 = #table(type table [F01 = text, F03 = Int64.Type], {{"g", 70}, {"h", 80}})
in
Table.Combine({Table1, Table2, Table3, Table4})
// Table1 & Table2 & Table3 & Table4</pre>
であるとき、<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4kd158cmtMqBGgoKKZZuUC0afj6Su8tdvpK7n6qIc3jbkf6aBASJ-AtNR2fpBcKCYa_rozqLJJI4Jmu6jbbOLd97K8d7dzhzRAkFC8uPxSVGpPHJyEQSy7m2b4deGlSNITGwqm7n8uyv8/s1600/2015127101.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4kd158cmtMqBGgoKKZZuUC0afj6Su8tdvpK7n6qIc3jbkf6aBASJ-AtNR2fpBcKCYa_rozqLJJI4Jmu6jbbOLd97K8d7dzhzRAkFC8uPxSVGpPHJyEQSy7m2b4deGlSNITGwqm7n8uyv8/s1600/2015127101.png" /></a></div>
データ型が異なってもカラム名に従い結合される。データ型の変換は別途必要なことがありえる。<br />
カラム名はいわゆる Case-Sensitive。ただし、Power Query 上だけ。ロードしたときにエラーになるがロード先が Excel テーブルの場合はナンバリングが追加されるのでエラーにはならない。<br />
結合されるテーブルすべてのカラムが追加されるが、値が存在しないレコードでの フィールドの値は null。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-49521935188711346882015-12-02T19:43:00.001+09:002015-12-02T19:43:15.031+09:00Power BI - 14 - Power Query SharePoint.Tables全く関係ないですが PowerApps のプレビューについてリリースさましたね。とても楽しみです。<br />
いち早く試してみたい場合には、<br />
<blockquote class="tr_bq">
<a href="https://powerapps.microsoft.com/">Microsoft PowerApps: power your business with apps</a></blockquote>
からリクエストしてみてください。そのうち案内が届くと思います。<br />
<br />
さて、今年も参加させてもらっている <a href="http://www.adventar.org/calendars/790">Office 365 Advent Calendar 2015</a> の 2日目です。<br />
Power BI を推している今年なので、引き続き Power Query + Office 365 についてポストします。<br />
<br />
Power Query は様々なソースからデータを収集加工(ETL)することができるとても便利な道具なのですが、SQL Server などデータベース以外を簡単にデータソースにすることができます。その中でOffice 365 に関連したソースとして SharePoint リストを取り上げてみます。<br />
ja-jp なSharePoint サイトではうまく使えなかったりでした機能でしたが問題は概ね解決しているようです。<br />
<br />
<a name='more'></a><br />
SharePoint リストをデータソースとするには コマンドから実行できます。<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKtz4bqH0MJlvFloWacNxHoPw7eZ5tdHNP6C3SR426q_oWR2rbaA6i_-bVrsx7oW4y6W36GQtTCsF8WSDgbXsoBrIKXDX36BP1n4wgOY9ER8Y5ezvNzfWsBne6uLddXBOffBNDKFuPINbl/s1600/2015120201.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKtz4bqH0MJlvFloWacNxHoPw7eZ5tdHNP6C3SR426q_oWR2rbaA6i_-bVrsx7oW4y6W36GQtTCsF8WSDgbXsoBrIKXDX36BP1n4wgOY9ER8Y5ezvNzfWsBne6uLddXBOffBNDKFuPINbl/s1600/2015120201.PNG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Office 365 ProPlus などエンタープライズ向けOffice の場合</td></tr>
</tbody></table>
<br />
クエリエディタを使用する場合は、<br />
<br />
<b>SharePoint.Tables(<a href="https://msdn.microsoft.com/en-us/library/mt260884.aspx">MSDN - SharePoint.Tables</a>)</b><br />
SharePoint.Tables(url as text, <i>optional</i> options as nullable record) as table<br />
<br />
リファレンスがアップデートされていないのですが、引数 'option' の指定をしないとja-jp 環境上のSharePoint リストの取得に失敗しますので、<br />
<blockquote class="tr_bq">
SharePoint.Tables("https://hogehoge.sharepoint.com", [ApiVersion = 15])</blockquote>
という式の投入が必要です。ApiVersion = "Auto" でもよいです。<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-b02zKh8Z3M4Egr2Efult6qPTkdufJ71evTGKcNFvthHIR3M1fqqXgHU5CDt5vTR6sSyVbmMzTlZCYuz5bk0FzcMtY0YjCZyj5QfJCec9Ac8p_ipjPnXidFCBxcQ_Vd7SrATnIsVFmPry/s1600/2015120202.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="554" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-b02zKh8Z3M4Egr2Efult6qPTkdufJ71evTGKcNFvthHIR3M1fqqXgHU5CDt5vTR6sSyVbmMzTlZCYuz5bk0FzcMtY0YjCZyj5QfJCec9Ac8p_ipjPnXidFCBxcQ_Vd7SrATnIsVFmPry/s640/2015120202.PNG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">サイト上のリスト一覧から目的のSharePoint リストを選択。他のリストも参照できますの管理で利用できるかもしれません。</td></tr>
</tbody></table>
目的のSharePoint リストのデータが取得できた場合、カスタムフィールド以外も既定で読み込まれます。必要なもののみを残すなどしてデータロードに移行すればよいのですが、システムフィールドが record となっていて、SharePoint アイテムに関連する情報も取得できている状態です。データ加工する工程で出力するフィールドに追加することもできるのですが、例えば、Author フィールドの値(型は record)にある Title フィールドはユーザ名なので、[Author][Title] と表現することができ、SharePoint アイテムに関連するユーザ名の取得できます。<br />
<br />
<pre class="brush:text">let
Source = SharePoint.Tables("https://hogehoge.sharepoint.com", [ApiVersion = 15]),
SharePointリスト1 = Source{[Title="SharePointリスト1"]}[Items],
AddColumn = Table.AddColumn(SharePointリスト1, "AuthorName", each [Author][Title]),
DeleteColumns = Table.SelectColumns(AddColumn,{"Id", "Title", "Field1", "AuthorId", "AuthorName"})
in
DeleteColumns</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_U0AbCaG4byjrkH0FNa08NFPm82RfC4ZRPsJ2A9c8gpk1zO8AB6htpyZU_25Qpx9GwzEAGOZyOzniqbI2t1Rm2vWQIs9jOw2jkgefqLvf6kcw8GoVXo-68b_5b9O9iydWlWOHSWMMKUqL/s1600/2015120203.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_U0AbCaG4byjrkH0FNa08NFPm82RfC4ZRPsJ2A9c8gpk1zO8AB6htpyZU_25Qpx9GwzEAGOZyOzniqbI2t1Rm2vWQIs9jOw2jkgefqLvf6kcw8GoVXo-68b_5b9O9iydWlWOHSWMMKUqL/s1600/2015120203.PNG" /></a></div>
<br />
SharePoint アイテムに添付されたファイルについても同様です。<br />
[AttachmentFiles][ServerRelativeUrl] とすることで添付ファイルの Url を取得できるので Web.Contents 関数を組み合わせて使用しそれぞれのデータ抽出することも可能です。<br />
<pre class="brush:text">let
SiteUrl = "https://hogehoge.sharepoint.com",
ListName = "SharePointListName",
SharePointLists = SharePoint.Tables(SiteUrl, [ApiVersion = 15]),
SeteteSharePointList = SharePointLists{[Title=ListName]}[Items],
AttachmentEqTrue = Table.SelectRows(SeteteSharePointList, each ([Attachments] = true)),
DeleteColumns = Table.SelectColumns(AttachmentEqTrue,{"AttachmentFiles"}),
ExpandAttachmentFiles = Table.ExpandTableColumn(DeleteColumns, "AttachmentFiles", {"ServerRelativeUrl"}, {"RelativeUrl"}),
AddColumn = Table.AddColumn(ExpandAttachmentFiles, "AttachmentFileUri", each Uri.Combine(SiteUrl,[RelativeUrl]))
in
AddColumn</pre>
SharePoint.Files / SharePoint.Contents についてはおいおいポストしようかと。<br />
<br />
[環境]<br />
Excel 2016(FirstReleaseCurrent):16.0.6228.1010 / 2.27.4163.551<br />
Excel 2013 / Power Query for Excel:15.0.4771.1004 / 2.27.4163.242<br />
Power BI Desktop:2.29.4217.221 MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-72790924683069621072015-11-23T10:24:00.001+09:002015-11-23T10:39:12.660+09:00Power BI - 13 - Power Query Text.FormatPower Query の追加/更新された関数について<br />
プレースホルダ と カルチャを指定できる文字列への変換。<br />
<br />
<b>Text.Format</b><br />
Text.Format(formatString as text, argument as any, <i>optional</i> culture as nullable text) as text<br />
引数 'argument' は、list もしくは record<br />
プレースホルダは 引数 'argument' が list のとき、#{n}、record のとき、#[<i>fieldname</i>]<br />
引数 'culture' は、<a href="https://msdn.microsoft.com/en-us/library/mt253343.aspx">Text.From</a> と同じ<br />
<br />
<a name='more'></a><br />
<pre class="brush:text">let
LocalNow = DateTime.LocalNow(),
Source = #table(
type table [Date = any, Culture = text],
{
{LocalNow, null},
{LocalNow, "ja-jp"},
{LocalNow, "en-us"},
{LocalNow, "en"},
{DateTime.Date(LocalNow), "ja-jp"},
{DateTime.Date(LocalNow), "en-us"},
{DateTime.Time(LocalNow), "ja-jp"},
{DateTime.Time(LocalNow), "en-us"}
}),
#"Added Custom" = Table.AddColumn(
Source,
"Custom",
each Text.Format("Culture : #[Culture] | #[Date]", _, [Culture]))
in
#"Added Custom"
</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMg43WeuCgcngQnf91PaqVAZLUT0Nuh6G2P1DrV-1ydqybGC4M-1GkCraUsafwhBieVT08jRP7JyR-QuO3cmVrpS3hA83XEJV9__95I3kktZqXF7bs0bJHcXUYgEg7BJKfR-IDzeEONT_7/s1600/2015112302.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMg43WeuCgcngQnf91PaqVAZLUT0Nuh6G2P1DrV-1ydqybGC4M-1GkCraUsafwhBieVT08jRP7JyR-QuO3cmVrpS3hA83XEJV9__95I3kktZqXF7bs0bJHcXUYgEg7BJKfR-IDzeEONT_7/s1600/2015112302.PNG" /></a></div>
<br />
Table.AddColum で列を追加する場合、_ (アンダースコア)で各行(record)を参照<br />
文字列の連結演算子 &(アンパサンド)では複雑になるときなどで便利。<br />
<br />
[環境]<br />
Excel 2016(FirstReleaseCurrent):16.0.6228.1010 / 2.27.4163.551 <br />
Excel 2013 / Power Query for Excel:15.0.4771.1004 / 2.27.4163.242<br />
Power BI Desktop:2.29.4217.221
MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-34577398206665271272015-11-23T09:02:00.000+09:002015-11-23T10:20:34.626+09:00Power BI - 12 - Power Query Text.Middle vs Text.RangePower Query の追加/更新された関数について<br />
"Text.Middle vs Text.Range" としましたが、Text.Middle でいいじゃんという内容。いずれも引数は変わらず文字列の切り出しができるが、引数 'count' 範囲外の扱いが異なる。<br />
<br />
<b>Text.Range (<a href="https://msdn.microsoft.com/en-us/library/mt260487.aspx">MSDN - Text.Range</a>)</b><br />
Text.Range(text as nullable text, offset as number, <i>optional</i> count as nullable number) as nullable text<br />
<br />
<b>Text.Middle</b><br />
Text.Middle(text as nullable text, start as number, <i>optional</i> count as nullable number) as nullable text<br />
<br />
<a name='more'></a><br />
<pre class="brush:text;">let
Source = #table(
type table [text = text, start = number, count = number],
{
{null, 2, 3},
{"12345", 2, 3},
{"12345", 3, 2},
{"12345", 2, 4},
{"12345", 8, 2}
}),
#"Added Text.Range" = Table.AddColumn(Source, "Text.Range", each Text.Range([text],[start],[count])),
#"Added ErrHnd" = Table.AddColumn(#"Added Text.Range", "ErrHnd", each try [Text.Range] otherwise (try [Text.Range])[Error][Message]),
#"Added Text.Middle" = Table.AddColumn(#"Added ErrHnd", "Text.Middle", each Text.Middle([text],[start],[count]))
in
#"Added Text.Middle"</pre>
としたとき、<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi94CnR8MedCSWX3d9L4T2Nuh8-F5LXnvp5_ZCFLFtZ-gheGI9s7tk072aJDKeSnYlmYxXnUgwXsmEKTj-79crKXpR1myiDjEI__WgeHCb1PlBadaCqSeYYnABARHojPInJnNmfwnTxKj8a/s1600/2015112301.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi94CnR8MedCSWX3d9L4T2Nuh8-F5LXnvp5_ZCFLFtZ-gheGI9s7tk072aJDKeSnYlmYxXnUgwXsmEKTj-79crKXpR1myiDjEI__WgeHCb1PlBadaCqSeYYnABARHojPInJnNmfwnTxKj8a/s1600/2015112301.PNG" /></a></div>
となる。Text.Middle は、ワークシート関数 MID 関数と同じように使える。ただし、Power Query は Base 1 ではなく Base 0。<br />
<br />
[環境]<br />
Excel 2016(FirstReleaseCurrent):16.0.6228.1010 / 2.27.4163.551 <br />
Excel 2013 / Power Query for Excel:15.0.4771.1004 / 2.27.4163.242<br />
Power BI Desktop:2.29.4217.221MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-41696746130134628552015-11-14T18:01:00.000+09:002015-11-14T18:34:47.436+09:00Office Insider が始まりました。<a href="https://products.office.com/en-us/office-insider">Office Insider</a> が始まりました。日本語サイトはまだなのだけど、ja-jp 環境であってもこの先に追加される Office の新しい機能などを試すことができる。<br />
追加されていく機能は、<br />
<blockquote class="tr_bq">
<a href="https://support.office.com/en-us/article/What-s-New-and-Improved-in-Office-2016-for-Office-365-95c8d81d-08ba-42c1-914f-bca4603e1426">What's New and Improved in Office 2016 for Office 365</a></blockquote>
で公開されるものなのだろうけど、Current Branch(CB)より先にリリースされる FirstReleaseCurrent という更新スケジュールになる。対象は C2R のサブスクリプション製品ということだろう。<br />
<br />
<a name='more'></a><br />
<br />
Office 365 ProPlus など企業向け Office 製品の場合、<br />
<blockquote class="tr_bq">
<a href="https://www.microsoft.com/en-us/download/details.aspx?id=49117">Office 2016 Deployment Tool</a></blockquote>
ODTを使ってインストールする。<br />
<pre class="brush:text" title="configuration.xml"><Configuration>
<Add OfficeClientEdition="64" Branch="FirstReleaseCurrent">
<Product ID="O365ProPlusRetail">
<Language ID="ja-jp" />
</Product>
</Add>
<Updates Enabled="TRUE" />
</Configuration>
</pre>
という感じで。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Ds-xbShKll060R64oOruUsS4NuimUEcKRHvA6BMhB0Zjv4fe_Pt-KFZr0FP_9i4nUU1M4a7g1CsTt84Wzf6iUP2xhyphenhyphenVi3C81uJRGsnEgFfyb-P7E8HYQq9EQ98bZbjugR2bYTafbdMOY/s1600/2015111401.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Ds-xbShKll060R64oOruUsS4NuimUEcKRHvA6BMhB0Zjv4fe_Pt-KFZr0FP_9i4nUU1M4a7g1CsTt84Wzf6iUP2xhyphenhyphenVi3C81uJRGsnEgFfyb-P7E8HYQq9EQ98bZbjugR2bYTafbdMOY/s1600/2015111401.PNG" /></a></div>
<br />
個人向サブスクリプション製品でも ODT は使えると思うけど。<br />
<br />
Excel 2016 のPower Query のバージョンが、<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYpwI5i2F1PYTUYkPnFg6_Noy3SL5PhCl5a2rNMTrigKeSOOsupvoEe9EN7gcmNeIHZkNN1SmxJhGOKpa_S9RktoMsWSRwLnj7PA3YDx4RvPwxs9u7yP4qd7AdGK5iOtBvMqDazDBK7eSN/s1600/2015111402.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYpwI5i2F1PYTUYkPnFg6_Noy3SL5PhCl5a2rNMTrigKeSOOsupvoEe9EN7gcmNeIHZkNN1SmxJhGOKpa_S9RktoMsWSRwLnj7PA3YDx4RvPwxs9u7yP4qd7AdGK5iOtBvMqDazDBK7eSN/s400/2015111402.PNG" width="400" /></a></div>
がやっと上がるみたいなので Current でのリリースを待っている状態。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-89873495094905829322015-11-08T11:01:00.000+09:002015-11-08T11:01:18.525+09:00Power BI - 11 - Zabbix API を Power Query で使ってみる <a href="https://support.office.com/ja-jp/article/Web-Contents-Power-Query-%E3%81%AB%E9%81%A9%E7%94%A8-55efc096-bddb-44d9-9f6d-f35f5095c1ad">Web.Contents (Power Query)</a> を使うとコンテンツのダウンロードができる。バイナリコンテンツを加工することで必要なデータにすることができるのだけど、POST が必要な Webサービスもあるので。<br />
<blockquote class="tr_bq">
Web.Contents(url as text, optional options as nullable record) as binary</blockquote>
引数 "options" を使ってリクエスト時に Content などを渡すとよい。そこで、Zabbix を使うことがあったので、Power Query + <a href="http://www.zabbix.com/jp/zabbix_api.php">Zabbix API</a> を試してみた。なお、Zabbix API は JSON-RPC というプロトコルなので、JSON 形式のパラメータを送信 / JSON 形式で結果を受信する。Content-Type は application/json-rpc。<br />
<br />
例えば、Zabbix API のバージョンを得るためのリクエストは、<br />
<pre class="brush:js;">{
"jsonrpc": "2.0",
"method": "apiinfo.version",
"params": [],
"id": 1
}
</pre>
こんな感じなので、Power Query では<br />
<pre class="brush:text;">let
ZabbixServer = "http://Server/zabbix/api_jsonrpc.php",
RequerstJSON = Text.Format(
"{""jsonrpc"":""2.0"",""method"":""apiinfo.version"",""id"":#{0}}",
{Number.Round(Number.RandomBetween(1,9999))}
),
Options = [Headers = [#"Content-Type" = "application/json-rpc"],
Content = Text.ToBinary(RequerstJSON)],
Response = Web.Contents(ZabbixServer, Options),
ImportedJSON = try Json.Document(Response),
Result = if ImportedJSON[HasError]
then ImportedJSON[Error]
else if ImportedJSON[Value][id] = null
then ImportedJSON[Value][error]
else ImportedJSON[Value]
in
Result
</pre>
<a name='more'></a><br />
で、user.login と user.logout を UDF にしておいて使っておこうかなと。<br />
<pre class="brush:text;" title="fn_UserLogin">(optional UserName as text, optional Password as text, optional Id as number) =>
let
ZabbixServer = "http://Server/zabbix/api_jsonrpc.php",
Id = if Id = null then 1 else Id,
// Id = if Id = null then Number.Round(Number.RandomBetween(1,9999)) else Id,
_UserName = if UserName = null or UserName = "" then "Admin" else UserName,
_Password = if UserName = null or UserName = "" then "zabbix" else Password,
RequestContent = Text.Format(
"{ ""jsonrpc"":""2.0"",""method"":""user.login"",""params"":{""user"":""#{0}"",""password"":""#{1}""},""id"":#{2}}",
{_UserName, _Password, Id}),
Options = [Headers = [#"Content-Type" = "application/json-rpc"],
Content = Text.ToBinary(RequestContent)],
ImportedJSON = Json.Document(Web.Contents(ZabbixServer, Options)),
Status = if ImportedJSON[error]? = null
then "OK"
else ImportedJSON[error][data],
AddStatus = Record.AddField(ImportedJSON, "Status", Status),
AddServer = Record.AddField(AddStatus, "ZabbixServer", ZabbixServer),
RenameFields = Record.RenameFields(AddServer,
{{"result","Token"},{"id", "Id"}},
MissingField.UseNull),
RemoveFields = Record.RemoveFields(RenameFields,
{"jsonrpc","error"},
MissingField.UseNull),
ReorderFields = Record.ReorderFields(RemoveFields,
{"Id", "Token", "Status", "ZabbixServer"})
in
ReorderFields
</pre>
<pre class="brush:text;" title="fn_UserLogout">(Id as number, Token as text, ZabbixServer as text) =>
let
RequestContent = Text.Format(
"{""jsonrpc"":""2.0"",""method"":""user.logout"",""id"":#{0},""auth"":""#{1}""}",
{Id, Token}),
Options = [Headers = [#"Content-Type" = "application/json-rpc"],
Content = Text.ToBinary(RequestContent)],
ImportedJSON = Json.Document(Web.Contents(ZabbixServer, Options)),
Status = if ImportedJSON[error]? = null
then "OK"
else ImportedJSON[error][data]
in
Status
</pre>
ユーザグループをこんな感じで取得<br />
<pre class="brush:text;">let
LoginResult = fn_UserLogin(),
ContentJSON = Text.Format(
"{""jsonrpc"":""2.0"",""method"":""usergroup.get"",""params"":{""output"":""extend""},""auth"":""#[Token]"",""id"":#[Id]}",
LoginResult),
Options = [Headers = [#"Content-Type" = "application/json-rpc"],
Content = Text.ToBinary(ContentJSON)],
Request = Web.Contents(LoginResult[ZabbixServer], Options),
ImportedJSON = Json.Document(Request),
Result = ImportedJSON[result],
LogoutResult = fn_UserLogout(
LoginResult[Id],
LoginResult[Token],
LoginResult[ZabbixServer]),
ConvertedToTable = Table.FromList(
Result,
Splitter.SplitByNothing(),
null, null,
ExtraValues.Error),
ExpandedColumn = Table.ExpandRecordColumn(
ConvertedToTable,
"Column1",
{"usrgrpid", "name", "gui_access", "users_status", "debug_mode"},
{"usrgrpid", "name", "gui_access", "users_status", "debug_mode"})
in
ExpandedColumn
</pre>
history.get や trigger.get で対象のデータをExcelに取り込むとかはさほど問題なく。Excelテーブルにある元データから host.create や user.create で新規作成したりすることもできるはずだけど、データがないのでそのうち試そう。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-85112091204582823642015-10-13T16:28:00.000+09:002015-11-03T12:01:37.056+09:00Power BI - 10 - Power Query の リファレンスPower BI Desktop や Excel で使用できる Power Query のリファレンス<br />
<blockquote class="tr_bq">
<a href="https://msdn.microsoft.com/en-us/library/mt211003.aspx">MSDN:Power Query (informally known as "M") Formula reference</a> </blockquote>
メインはこれでよいかと。 ただし、日本語訳はまだないのでこんな感じで見ることはできる。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4a46vN5QoYdVsQbrC_tSCmqfiQITNhBe8mqAVo-RudnklmbqhDBMcKVHC9VZj_IJzl7-iPmwbb42qC3SKufbQyxIeAtFfO_mDaHbpRTH075QQiNQmYSsaTw5p4_r9O_DcjyCas2k3f6bd/s1600/20151013023.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4a46vN5QoYdVsQbrC_tSCmqfiQITNhBe8mqAVo-RudnklmbqhDBMcKVHC9VZj_IJzl7-iPmwbb42qC3SKufbQyxIeAtFfO_mDaHbpRTH075QQiNQmYSsaTw5p4_r9O_DcjyCas2k3f6bd/s640/20151013023.png" width="640" /></a></div>
空のクエリなど作成し、shared を参照すればよい。少し内容が怪しいけれどもどんなのあるかなぁって感じでも全く問題ない。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-37802830890592050872015-10-13T15:50:00.000+09:002015-10-13T15:57:00.371+09:00Power BI - 9 - 複数のExcel ファイルをインポートする複数の Excel ファイルから必要なデータだけを Power BI Desktop にインポートしてみる。 <br />
<a href="https://msdn.microsoft.com/en-us/library/mt260859.aspx">Excel.Workbook(Power Query)</a> の引数/binary に <a href="https://msdn.microsoft.com/en-us/library/mt260871.aspx">File.Contents(Power Query)</a> で読み込んだExcel ファイルを渡すことで解析され読み込みできるようになるのだけど、<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhubppHV6nbN7uFRpj_UFNvSdZVYdohI56iWxnp7k-rMon66yRec0iCokjFNvJSNTWXV9LiOPI660kbjriQcD6Kq99DD0zoUs-9bFK2baIPvxipap-pzj5FUHrhcuVX4r3Al6xfGzHreY1_/s1600/20151013013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhubppHV6nbN7uFRpj_UFNvSdZVYdohI56iWxnp7k-rMon66yRec0iCokjFNvJSNTWXV9LiOPI660kbjriQcD6Kq99DD0zoUs-9bFK2baIPvxipap-pzj5FUHrhcuVX4r3Al6xfGzHreY1_/s1600/20151013013.png" /></a></div>
<br />
まずはこんな感じになる。"名前付き範囲"が取得できているので、ドキュメントによっては印刷範囲も取れます。また、Book / Sheet 範囲の名前付き範囲が同じ名前の場合リネームされてしまうから使う前にはよく考慮しておきたい。<br />
シートをまるっと読み込んでもよいのだけど、加工に手間が掛かる傾向にあるかな。 そして、ナビゲーターでは非表示のシートと非表示のシートにあるテーブルは表示されないけど読み込むことは可能。<br />
<a name='more'></a><br />
とにかくどれかを読み込むと列のデータ型変更(ステップ:変更された型)まで進んでしまうので 、<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNmgkgOqDE8Z3rTtFcJJptLE_vj1GqI0GPt13aLZC21ZHbw7XtJ5uJd7RaFmiCwyVDpl0CxKKc3xtY6titOJrrpsuI2GGOE1WgiFzTrgsxawZKM4G3GICN7n97cvK3QKjV1xUkmEeMRuCP/s1600/20151013014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNmgkgOqDE8Z3rTtFcJJptLE_vj1GqI0GPt13aLZC21ZHbw7XtJ5uJd7RaFmiCwyVDpl0CxKKc3xtY6titOJrrpsuI2GGOE1WgiFzTrgsxawZKM4G3GICN7n97cvK3QKjV1xUkmEeMRuCP/s640/20151013014.png" width="640" /></a></div>
"ソース"までステップを戻してみるどのように解析されているのかがよくわかる。Kind やItem などでフィルタすることで目的のデータに達することができそう。Data には型:Table としてリンクが用意されている。<br />
<br />
で、Excel ファイルをまとめて読む込むにはシーケンシャルファイルのように、<a href="https://msdn.microsoft.com/en-us/library/mt260865.aspx">Folder.Files(Power Query)</a> → <a href="https://msdn.microsoft.com/en-us/library/mt260879.aspx">Binary.Combine(Power Query)</a>では解決しないので、どこかで <a href="https://msdn.microsoft.com/en-us/library/mt260859.aspx">Excel.Workbook(Power Query)</a>を実行する工夫が必要なのである。<br />
<br />
同じテーブル定義がされた Excel ファイルが複数あるものとして作業してみる。<br />
まず、<a href="https://msdn.microsoft.com/en-us/library/mt260865.aspx">Folder.Files(Power Query)</a>ですべてのファイルを読み込む。ポチポチやるなら、[新しいクエリ] - [フォルダ]、Excel 2016 なら [データ]タブ - [取得と変換] - [新しいクエリ] - [ファイルから] - [フォルダから]<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSsVthYvPTkNwaVzU6o4t1-sEaTGDxo_16ubxhmDDm31KnH2S6GM8mZKTY3IdVM8JtKuVwh3S3NKMs6Ze-mZ-0fHGMLdcuD-lAWyxL7AyAJO2E3fmhbtiriSAPl6Tsx1g9AUTSF_2Vh6qR/s1600/20151013015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSsVthYvPTkNwaVzU6o4t1-sEaTGDxo_16ubxhmDDm31KnH2S6GM8mZKTY3IdVM8JtKuVwh3S3NKMs6Ze-mZ-0fHGMLdcuD-lAWyxL7AyAJO2E3fmhbtiriSAPl6Tsx1g9AUTSF_2Vh6qR/s640/20151013015.png" width="640" /></a></div>
Content は Excel ファイルのバイナリなので、これを解析する必要がそれぞれの行ごとで必要。<br />
<br />
[列の追加]タブ - [カスタム列の追加] して、<a href="https://msdn.microsoft.com/en-us/library/mt260859.aspx">Excel.Workbook(Power Query)</a>で解析<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SFiE-TxeJglZuHNhPz3txH5mqlicCYnBOhZlP8bweem3Z3AXYP6MbKRmM4oLUAgxSWGf9k8HS1qnnkxttc8kYEkUvCU31B6LksOHBZGblehu79dSh4dk3uMFetGtyfwgXlkfQeoc9Q9-/s1600/20151013016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="472" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SFiE-TxeJglZuHNhPz3txH5mqlicCYnBOhZlP8bweem3Z3AXYP6MbKRmM4oLUAgxSWGf9k8HS1qnnkxttc8kYEkUvCU31B6LksOHBZGblehu79dSh4dk3uMFetGtyfwgXlkfQeoc9Q9-/s640/20151013016.png" width="640" /></a></div>
<br />
列が多いと見づらいので今回は重要な列のみになるようにした。プレビューみると無事取れてる感じ。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM3iRg9CogBDZ8q6mS-Jv2nI5i_tXFl3ep8i0HTksXA1kRhTfi12NVY8byB5KHyCz3NLLJmlxtRCGAff8mr3kP2q1W2pY4Z27sYDCHf4GOrdhYY_mS_9xlxyvmxOShpRVWJcQENvL8FgaA/s1600/20151013017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM3iRg9CogBDZ8q6mS-Jv2nI5i_tXFl3ep8i0HTksXA1kRhTfi12NVY8byB5KHyCz3NLLJmlxtRCGAff8mr3kP2q1W2pY4Z27sYDCHf4GOrdhYY_mS_9xlxyvmxOShpRVWJcQENvL8FgaA/s640/20151013017.png" width="640" /></a></div>
<br />
追加した列には入れ子になったテーブルがあるのでこれを展開<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYeD8PgPOYtXW6khSxFA4QbSatIKP2pIE9Nz-oTpFfCtIUARTNYlHSbiiNadmBeI3yTqSB1LeS7kvn4iCZzlp0PTIpX0oO1-qzjhMOqZtzi7dMYQIegjZLyBL78RIUrJ_BPgDr5uoj5fJd/s1600/20151013018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYeD8PgPOYtXW6khSxFA4QbSatIKP2pIE9Nz-oTpFfCtIUARTNYlHSbiiNadmBeI3yTqSB1LeS7kvn4iCZzlp0PTIpX0oO1-qzjhMOqZtzi7dMYQIegjZLyBL78RIUrJ_BPgDr5uoj5fJd/s640/20151013018.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGYpX13IgWgHShhmBRZ16Lula9SLV3h_CswhhhwaUZwbWiYCr0ek_PYSnyzlgfjMX6pAEmOFon-78SQ4ULBKNwfyjd0WiLK3z_pJzGBWth18onhPemfY7evCR_P-V6uRAao0LEps6OJzKu/s1600/20151013019.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="402" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGYpX13IgWgHShhmBRZ16Lula9SLV3h_CswhhhwaUZwbWiYCr0ek_PYSnyzlgfjMX6pAEmOFon-78SQ4ULBKNwfyjd0WiLK3z_pJzGBWth18onhPemfY7evCR_P-V6uRAao0LEps6OJzKu/s640/20151013019.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBuYw_qF1fsg7lJX18TralNTOv6lZhDGgr1hGfC-sg6SgjJfDcUWHfJu6rC0yVD59j8jIa41I393jvjoqh67cqvDr1QRWL3TMlGo3AiVxbZnA_5fM-VgtrwtyelT5NQUcziDs4aOLwac91/s1600/20151013020.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBuYw_qF1fsg7lJX18TralNTOv6lZhDGgr1hGfC-sg6SgjJfDcUWHfJu6rC0yVD59j8jIa41I393jvjoqh67cqvDr1QRWL3TMlGo3AiVxbZnA_5fM-VgtrwtyelT5NQUcziDs4aOLwac91/s640/20151013020.png" width="640" /></a></div>
これで、すべての Excel ファイルの解析が完了し必要なデータにアクセスできそう。データは"Custom.Data" に入れ子のテーブルとなっているのでさらに展開する。<br />
Custom.Item で"テーブル1"を抽出し、Custom.Data を展開<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo56atcuUPyfnvv0Ht43TCIzrm6xrVOfnjSjnG7huzfEorU2WSC4UPGExghsXyX14OxWoXuYnnMtPrfzNbv_Gm209RoX9UKXwrcGIbW3adfGmePrElzIPm6YGUxlidcWDo_RRLAyzxC3bS/s1600/20151013021.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo56atcuUPyfnvv0Ht43TCIzrm6xrVOfnjSjnG7huzfEorU2WSC4UPGExghsXyX14OxWoXuYnnMtPrfzNbv_Gm209RoX9UKXwrcGIbW3adfGmePrElzIPm6YGUxlidcWDo_RRLAyzxC3bS/s640/20151013021.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBnltsX8gibPo3ac97f3O6fJrpRJegv7V5vQYixt9Gz2mT555cqmVHhMNhP9BlMlg_CZhpx7VS_IS6y5Nkro3JMzk-8inEEkjkTH4QoUIQvM9CFYLVe2GyhZk8OT2Cv5dPGRZWEoMg8cpD/s1600/20151013022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBnltsX8gibPo3ac97f3O6fJrpRJegv7V5vQYixt9Gz2mT555cqmVHhMNhP9BlMlg_CZhpx7VS_IS6y5Nkro3JMzk-8inEEkjkTH4QoUIQvM9CFYLVe2GyhZk8OT2Cv5dPGRZWEoMg8cpD/s640/20151013022.png" width="640" /></a></div>
<br />
この手順で同一のテーブル定義されたデータを複数のExcel ファイルから抽出することができる。<br />
大事なことなのでもう一度、Excel 2016 の[データ] - [取得と変換] でも同じ作業ができる。<br />
ここでは、Power BI Desktop で説明したけれども、Excel で使うことが意外に多いのではないかと。VBA マクロなど使わずにできますので結構いい感じなはず。ファイルの更新だけではなくファイルの増減、ディレクトリ構造の変更にも対応するし。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-75088885520495154752015-10-13T11:44:00.000+09:002015-10-13T15:57:14.266+09:00Power BI - 8 - ログファイルなどをまとめてインポートするPower BI Desktop に ログファイルなどのシーケンシャルファイルをまとめてインポートすることが可能。<br />
ログファイルは テキスト形式 で CSV などにフォーマットされているから、複数のログファイルのETLを一気に実施してしまってもよい場合が多い。ヘッダが固定されていれば、<a href="https://msdn.microsoft.com/en-us/library/mt260879.aspx">Binary.Combine </a>で結合後 <a href="https://msdn.microsoft.com/en-us/library/mt260799.aspx">Table.SplitColumn</a> で分割すればよい。<br />
<br />
<a href="https://msdn.microsoft.com/en-us/library/mt260865.aspx">Folder.Files</a> なのだけど、リボンからポチポチすれば事足りるので、<br />
[ホーム]タブ - [データを取得 / 新しいソース] - [さらに表示]<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig5uvHgiSbUrqbWyyAtt07uBV3__CFfa3l03ogBXA_nmZdtIqzoq9uD2gRX-Y5PfWcboM43Y_M9uFuo_GTB85RwOeSY6f8USdlyzFSKq4QFFw0Z1441TnD2WVkwPEH4rXVl3_UwXYmgkb7/s1600/2015101301.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig5uvHgiSbUrqbWyyAtt07uBV3__CFfa3l03ogBXA_nmZdtIqzoq9uD2gRX-Y5PfWcboM43Y_M9uFuo_GTB85RwOeSY6f8USdlyzFSKq4QFFw0Z1441TnD2WVkwPEH4rXVl3_UwXYmgkb7/s1600/2015101301.PNG" /></a></div>
<br />
Excel 2016 の場合、[データ]タブ - [取得と変換] - [新しいクエリ] - [ファイルから] - [フォルダーから]<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJXjm-KIFvwC5pb3y5g2QvgbKP8X79jk0Tfp-Mdr_fhScW4ArkrGMV6H_z5-73bgDPKfJAjfhnqvcxZVEX0cO1RahBC19ZHqhg7k9g4JYoOR8YdaVRionyK2wBBe7mUfudw-ZngFG_Zsa/s1600/20151013002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJXjm-KIFvwC5pb3y5g2QvgbKP8X79jk0Tfp-Mdr_fhScW4ArkrGMV6H_z5-73bgDPKfJAjfhnqvcxZVEX0cO1RahBC19ZHqhg7k9g4JYoOR8YdaVRionyK2wBBe7mUfudw-ZngFG_Zsa/s1600/20151013002.png" /></a></div>
<br />
<a name='more'></a><br />
フォルダを指定<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtFSOSKE7fm2bByCagW4vC2iS9h5WthKCJNrU3NGOdZaY06sD9gMEXwf-9TP1GX9EB43nZA_oGWmKqpOEOOXWos3lKWH8HL5WEIzGwTbiZvZAslOPXCEgfv185evfa-WKUY1lfDxSfZKyh/s1600/20151013003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtFSOSKE7fm2bByCagW4vC2iS9h5WthKCJNrU3NGOdZaY06sD9gMEXwf-9TP1GX9EB43nZA_oGWmKqpOEOOXWos3lKWH8HL5WEIzGwTbiZvZAslOPXCEgfv185evfa-WKUY1lfDxSfZKyh/s640/20151013003.png" width="640" /></a></div>
<br />
指定のフォルダに存在するファイルすべての情報がテーブルとして取得<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM8ck3LnadFBqCJ0itamY7gJem2tjn8B9XRkyEfJLNTcmrddYxsW0X4Apo12s9DnzwKn730RdBcqvRwaklAGMBDmhhU1vxdcGtZtlzjrXs2dzqpEXIPGtW5GN41k1Liy1rMUsrzOeGsbQu/s1600/20151013004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM8ck3LnadFBqCJ0itamY7gJem2tjn8B9XRkyEfJLNTcmrddYxsW0X4Apo12s9DnzwKn730RdBcqvRwaklAGMBDmhhU1vxdcGtZtlzjrXs2dzqpEXIPGtW5GN41k1Liy1rMUsrzOeGsbQu/s640/20151013004.png" width="640" /></a></div>
ここでファイル名、フォルダパス、ファイル更新日時などからフィルタすれば、以降の作業で必要なファイルのみの作業ができる。"Attributes"を展開すれば別なフィルタリングは可能。Content Type などが使えそうかな。<br />
<br />
"Content"がファイルへのリンクなので、[バイナリの結合] を実行 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDZKgC-TqPoGRr0EOVGEi1kal2YVbsq8207t5r9E7CsJOX27OcMR1UcyZuDEwB5K0Ujg_zorKv0EYis-WhNRjNL4TJEetmcINJYnyBI0uIQQHA0I-ZVGc3aQYv7BCl4cRqjz32VIbkdqjJ/s1600/20151013005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDZKgC-TqPoGRr0EOVGEi1kal2YVbsq8207t5r9E7CsJOX27OcMR1UcyZuDEwB5K0Ujg_zorKv0EYis-WhNRjNL4TJEetmcINJYnyBI0uIQQHA0I-ZVGc3aQYv7BCl4cRqjz32VIbkdqjJ/s640/20151013005.png" width="640" /></a></div>
<br />
バイナリ結合しただけなので、1列のテーブルに<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnc91b4B94RhXnwDZ2w_bcGcFHPy7Tr79CyARZooQehTIS6MC53CueDRnT27MuB-7pAK4EoQYyNRpH_M-le-SZjZ2QfMaKjX98NAZKASyZo0kZiPKzTymkadE6NXRuHCrP1au7iszJShAz/s1600/20151013006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnc91b4B94RhXnwDZ2w_bcGcFHPy7Tr79CyARZooQehTIS6MC53CueDRnT27MuB-7pAK4EoQYyNRpH_M-le-SZjZ2QfMaKjX98NAZKASyZo0kZiPKzTymkadE6NXRuHCrP1au7iszJShAz/s640/20151013006.png" width="640" /></a></div>
<br />
区切り記号による分割<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinWhWsLPOX-1AM6CRT8vN27GX4i8ltdYiIQB1dyNDLUSO9Ixtza-ZqnMPMzEgvapG2Z6g7OyK_EQQvkuClFwmo-bE3MDBRtKLt4oQ04cWcPjVSN85znirGdR3pP3vcYc_dR62xv_dz6hsz/s1600/20151013007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinWhWsLPOX-1AM6CRT8vN27GX4i8ltdYiIQB1dyNDLUSO9Ixtza-ZqnMPMzEgvapG2Z6g7OyK_EQQvkuClFwmo-bE3MDBRtKLt4oQ04cWcPjVSN85znirGdR3pP3vcYc_dR62xv_dz6hsz/s640/20151013007.png" width="640" /></a></div>
<br />
区切り記号に使用する文字を指定。任意の文字は"カスタム"で指定<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-eydLUg_5g20NipEYSvVGxHiTRSw6C-6g69M8_zwOBIclV6_pVnSCjY93ocJyaCC5Vy97Px7RRnodd8knIeowOYOdjT8yn02fFRh3giIL0Q7WSR4-73PY47yRDyXSWGrd5JbvjyxIppre/s1600/20151013008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-eydLUg_5g20NipEYSvVGxHiTRSw6C-6g69M8_zwOBIclV6_pVnSCjY93ocJyaCC5Vy97Px7RRnodd8knIeowOYOdjT8yn02fFRh3giIL0Q7WSR4-73PY47yRDyXSWGrd5JbvjyxIppre/s640/20151013008.png" width="640" /></a></div>
"左端~"、"右端~" や "詳細設定オプション"を使用すると一部だけ分割などできる。<br />
<br />
ヘッダ行などが残るのでフィルタ<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiABMP0obNMtQrr9yGtQi-AePabYWqFhq9EidmJapCtXeXVMqmSQU6vWb_KzhyphenhyphenOsnJOhmnhx_Yg9OHgGIIrbTJOVqXZek4Mn3swRsBr7xutUpXkh13qva73xRGK_PB2AxvF33WhD4RguCNG/s1600/20151013010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="442" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiABMP0obNMtQrr9yGtQi-AePabYWqFhq9EidmJapCtXeXVMqmSQU6vWb_KzhyphenhyphenOsnJOhmnhx_Yg9OHgGIIrbTJOVqXZek4Mn3swRsBr7xutUpXkh13qva73xRGK_PB2AxvF33WhD4RguCNG/s640/20151013010.png" width="640" /></a></div>
<br />
インポートするログの特徴から、フィルタを適用するフィールドやその条件を充分に考慮する必要がある。<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDeVu-TpamTw6GcjX00xiufTj-lx7-qOC9kGz8BJxpLHNvaP0oSjUT7ZR5mlM7_F2EIFxNavguwXxhPBzwiczSKE-k8xK0X5KKVqaH1Cwhr9ztJm9Ccd8xSWk8Ay46SkVSxoc6aJbxuo4_/s1600/20151013011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDeVu-TpamTw6GcjX00xiufTj-lx7-qOC9kGz8BJxpLHNvaP0oSjUT7ZR5mlM7_F2EIFxNavguwXxhPBzwiczSKE-k8xK0X5KKVqaH1Cwhr9ztJm9Ccd8xSWk8Ay46SkVSxoc6aJbxuo4_/s1600/20151013011.png" /></a></div>
<br />
フィールドのデータ型を適するものに変換し作業完了<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJi9exVAQJsN8TkXZhXUURM5B6wCy5yqNQN3t7GPUyhBueaqLERixQyQzteDdrGw4q8Dx2g9ChvY_Ck6Wl2PmrcssZLSxMRLm91KYUGdA-Qkir5CdTJig9Wf6d5ucH_plULDsaF1H0yG5l/s1600/20151013012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJi9exVAQJsN8TkXZhXUURM5B6wCy5yqNQN3t7GPUyhBueaqLERixQyQzteDdrGw4q8Dx2g9ChvY_Ck6Wl2PmrcssZLSxMRLm91KYUGdA-Qkir5CdTJig9Wf6d5ucH_plULDsaF1H0yG5l/s640/20151013012.png" width="640" /></a></div>
例外が発生する可能性があれば、対応する変換は忘れずに。<br />
<br />
以上の手順で、<a href="https://msdn.microsoft.com/en-us/library/mt260865.aspx">Folder.Files</a> に指定したパスに存在するファイルは同じステップで処理が行われ、アウトプットは結合されたテーブルになる。<br />
Excel (Power Query)を使用した場合でも同じ結果が得られ、VBA マクロ などによる処理は不要でパス内に存在するログファイルすべての読み込みができる。MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-82948943334512612882015-09-23T13:00:00.000+09:002015-09-23T14:27:45.765+09:00Power BI - 7 - Excel 2016 のBI 関連する機能Excel 2016 のPower BI に関連する機能、リリース前の情報は、<br />
<blockquote class="tr_bq">
<a href="https://blogs.office.com/2015/09/18/new-ways-to-get-the-excel-business-analytics-features-you-need/?Wt.mc_id=DX_MVP4033531" target="_blank">New ways to get the Excel business analytics features you need</a></blockquote>
の通りで、<br />
<ul>
<li>Power Pivot for Excel</li>
<li>[データ] タブ - [取得と変換] グループに追加された機能</li>
</ul>
について。<br />
<a name='more'></a><br />
Power Pivot for Excel は以前から COM アドインとして利用できるが、バージョンアップに伴い機能が追加された。使用できる 関数も増えてると思うけど。<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvDeTkwEZK30gASZvopLYZs8-jjwMVNI86Jyj3LHHA3xckNmtsPqiKYe6u8x_WM7xapqtXSl1T9ij8W5_JlKAJx9Tz06KLUjVkyXl8rO5VEKJkBZrhKP__dXmc2g2ooPiEcB21t8xe1bX8/s1600/2015092211.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvDeTkwEZK30gASZvopLYZs8-jjwMVNI86Jyj3LHHA3xckNmtsPqiKYe6u8x_WM7xapqtXSl1T9ij8W5_JlKAJx9Tz06KLUjVkyXl8rO5VEKJkBZrhKP__dXmc2g2ooPiEcB21t8xe1bX8/s1600/2015092211.PNG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">カレンダーテーブルが生成できるようになった。</td></tr>
</tbody></table>
Power Pivot for Excel が使用できるSKUに変更はない模様。<br />
Excel 2016 単体製品 / Office 365 ProPlus / Office 2016 Professional / Office 2016 Professional Plus あたりかな。<br />
<br />
もうひとつは、以前の Excel で使用できる Power Query 相当の機能で Excel 2016 で機能が統合されたもの。役割としては BIで重要な ETL。<br />
<ul>
<li>Extract:抽出</li>
<li>Transform:変換</li>
<li>Load:ロード</li>
</ul>
たくさんのデータソースとの接続ができて、変換作業が簡単で分かりやすい。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNQP0g8Z5kBgTstL9990zTtW5exBa-lTVYJwBPQzZIrAYKS44cmSvxQuR4rtQX6DK94WEYTtjeyClDgWqcfuaA0OnsSJBwSTyFzD2PQyTWi_MnOFpHocack-TKVNcSGF9-OAAWVXeu-VcQ/s1600/2015092203.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNQP0g8Z5kBgTstL9990zTtW5exBa-lTVYJwBPQzZIrAYKS44cmSvxQuR4rtQX6DK94WEYTtjeyClDgWqcfuaA0OnsSJBwSTyFzD2PQyTWi_MnOFpHocack-TKVNcSGF9-OAAWVXeu-VcQ/s1600/2015092203.PNG" /></a></div>
Excel のエディションによっては使用できるデータソースが少し違うように見えるが、機能の本体は同一なのでしょう。サポートされないだろうから自己解決できる範囲で利用すればよいか。<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjEIjfVIgQqketSBevxTG3y39I3yivvqaD8D4JCNXDzxY002jpxp8hCDNXbfM7f42sm2kdzYohgx50JB8TIoEW9CX7yPi_8be7H3bG7nYWEB9Mzsm49411kzFXBKFo6S21M8PjSAisvFi1/s1600/2015092212.PNG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjEIjfVIgQqketSBevxTG3y39I3yivvqaD8D4JCNXDzxY002jpxp8hCDNXbfM7f42sm2kdzYohgx50JB8TIoEW9CX7yPi_8be7H3bG7nYWEB9Mzsm49411kzFXBKFo6S21M8PjSAisvFi1/s1600/2015092212.PNG" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Excel から Power BI Service に発行するなど</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0tag:blogger.com,1999:blog-5670379129939555102.post-84321668743211384082015-09-22T23:33:00.000+09:002015-09-22T23:33:01.445+09:00Office 2016 The new Office is here新しい Office、Office 2016 の リリース。結局、日付をまたぐことなく 9/22。<br />
<blockquote class="tr_bq">
<a href="https://blogs.office.com/2015/09/22/thenewoffice/?Wt.mc_id=DX_MVP4033531" target="_blank">The new Office is here</a></blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogs.office.com/2015/09/22/thenewoffice/?Wt.mc_id=DX_MVP4033531" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPtOspMBx8c-huYBSNf50vY6AHmO9xDXkh880PEy4D1hPikYHMyoGihMzGMK1oa97QCiruUSHwupwSKjpudYbboF93TDi7ehkdrMJBDgz5pEtl3BGGv3f12g3JQkRGv7rf7M0CQY0wE7DY/s640/TW_OfficeSocial_Office2016_AnnouncementPost_Confetti_Collaborate.png" width="640" /></a></div>
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6zINVK1xSdkm2hhMlUlwpTBuI64h1RTl_92TueP8f3a6GX5RCMDJmpbjPqGTSwu3K0s10D5RPEqQDi10tvc0P_BRVXWFIUt2DkDdaZihNcDPqDSJ0JEj48UfO1f_Kffqy9xU_cGfJ_SR/s1600/2015092231.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6zINVK1xSdkm2hhMlUlwpTBuI64h1RTl_92TueP8f3a6GX5RCMDJmpbjPqGTSwu3K0s10D5RPEqQDi10tvc0P_BRVXWFIUt2DkDdaZihNcDPqDSJ0JEj48UfO1f_Kffqy9xU_cGfJ_SR/s1600/2015092231.PNG" /></a></div>
Preview の Final Release がそのままリリースということで完了。<br />
<br />
Office 2013 ベースからのアップデートについては追って情報が出ると思うけど、<br />
<blockquote class="tr_bq">
<a href="https://community.office365.com/en-us/w/officeapps/office-2016-problems-and-solutions-and-frequently-asked-questions" target="_blank">Office 2016 Problems and Solutions and Frequently Asked Questions</a></blockquote>
あたりで。<br />
MukkuMukuhttp://www.blogger.com/profile/17972606097386292244noreply@blogger.com0