Excel-dax-updating-data-in-data-model
Excel DAX-データモデルのデータの更新
DAXは、Excel Power Pivotのデータモデルのデータの計算に使用されます。 DAXを使用すると、データモデリングとレポートアクティビティを効果的に処理できます。 ただし、これには、現在のデータを反映するために、データモデルのデータを随時更新する必要があります。
データ接続を確立することにより、外部データソースからワークブックのデータモデルにデータをインポートできます。 いつでもソースからデータを更新できます。 このオプションは、ライブセールス情報または1日に数回更新されるデータフィードを含むリレーショナルデータベースからデータを取得する場合に便利です。
データモデルのデータを更新するさまざまな方法
次の方法でデータモデルのデータを更新できます-
- データモデルのデータを随時更新する。
- 接続プロパティなど、データソースに変更を加えます。
- ソースデータが変更された後のデータモデルのデータの更新。
- データをフィルタリングして、データソースのテーブルから行を選択的にロードします。
データモデルのデータの更新
既存のソースから更新されたデータを取得することに加えて、ソースデータのスキーマを変更するたびにワークブックのデータを更新する必要があります。 これらの変更には、列またはテーブルの追加、またはインポートされる行の変更が含まれます。
データの追加、データの変更、またはフィルターの編集は、常にそのデータソースに依存するDAX数式の再計算をトリガーすることに注意してください。 詳細については、「DAX数式の再計算」の章を参照してください。
データモデルには2種類のデータ更新があります-
手動更新
手動更新オプションを選択すると、データモデルのデータをいつでも手動で更新できます。 デフォルトであるすべてのデータを更新するか、個々のデータソースの更新するテーブルと列を手動で選択できます。
自動またはスケジュールされた更新
PowerPivotをサポートするPowerPivotギャラリーまたはSharePointサイトにワークブックを公開している場合、ユーザーまたはSharePoint管理者は、ワークブック内のデータを自動的に更新するスケジュールを作成できます。 このような場合、サーバーで無人のデータ更新をスケジュールできます。
既存のデータソースの手動更新
既存のデータソースからデータを更新する必要がある場合、または新しいDAX数式を設計するために最新のデータを取得する必要がある場合は、いつでも手動でデータを更新できます。 1つのテーブル、同じデータ接続を共有するすべてのテーブル、またはデータモデル内のすべてのテーブルを更新できます。
SQL ServerやOracleなどのリレーショナルデータソースからデータをインポートした場合、1回の操作ですべての関連テーブルを更新できます。 新しいデータまたは更新されたデータをデータモデルに読み込む操作は、多くの場合、DAX数式の再計算をトリガーします。どちらの場合も、完了するまでに時間がかかる場合があります。 したがって、データソースを変更したり、データソースから取得したデータを更新したりする前に、潜在的な影響に注意する必要があります。
データモデル内の単一のテーブルまたはすべてのテーブルのデータを更新するには、次を行います-
- PowerPivotウィンドウのリボンの[ホーム]タブをクリックします。
- 更新をクリックします。
- 選択したテーブルを更新するには、ドロップダウンリストで[更新]をクリックします。
- すべてのテーブルを更新するには、ドロップダウンリストで[すべて更新]をクリックします。
データモデルで同じ接続を使用するすべてのテーブルのデータを更新するには、次を行います-
- PowerPivotウィンドウのリボンの[ホーム]タブをクリックします。
- [外部データの取得]グループの[既存の接続]をクリックします。
[既存の接続]ダイアログボックスが表示されます。
- 接続を選択します。
- [更新]ボタンをクリックします。
PowerPivotエンジンが選択したテーブルまたはデータソースのすべてのテーブルからデータをリロードすると、[データ更新]ダイアログボックスが表示され、データ更新の進行状況情報が表示されます。
3つの可能な結果があります-
- 成功-各テーブルにインポートされた行数について報告します。
- エラー-データベースがオフラインの場合、権限がなくなったときにエラーが発生する可能性があります。 ソースで表または列が削除または名前変更されます。
- キャンセル-これは、おそらく接続でリフレッシュが無効になっているため、Excelがリフレッシュ要求を発行しなかったことを意味します。
閉じるボタンをクリックします。
データソースの変更
データモデルのデータを変更するには、Power Pivotウィンドウで接続情報を編集するか、データモデルで使用されるテーブルと列の定義を更新します。
既存のデータソースに次の変更を加えることができます-
つながり
- データベース名またはサーバー名を編集します。
- ソーステキストファイル、スプレッドシート、またはデータフィードの名前を変更します。
- データソースの場所を変更します。
- リレーショナルデータソースの場合、デフォルトのカタログまたは初期カタログを変更します。
- データへのアクセスに使用される認証方法または資格情報を変更します。
- データソースの詳細プロパティを編集します。
テーブル
- データのフィルターを追加または削除します。
- フィルター基準を変更します。
- テーブルを追加または削除します。
- テーブル名を変更します。
- データソースのテーブルとデータモデルのテーブル間のマッピングを編集します。
- データソースから別の列を選択します。
列
- 列名を変更します。
- 新しい列を追加します。
- データモデルから列を削除します(データソースには影響しません)。
次の方法で既存のデータソースのプロパティを編集できます-
- ソースとして使用されるファイル、フィード、データベース、そのプロパティ、またはその他のプロバイダー固有の接続オプションなどの接続情報を変更できます。
- テーブルと列のマッピングを変更し、使用されなくなった列への参照を削除できます。
- 外部データソースから取得するテーブル、ビュー、または列を変更できます。
既存のデータソースへの接続の変更
現在の接続で使用されている外部データソースを変更することにより、外部データソースに対して作成した接続を変更できます。 ただし、従うべき手順は、データソースの種類によって異なります。
- PowerPivotウィンドウのリボンの[ホーム]タブをクリックします。
- [外部データの取得]グループの[既存の接続]をクリックします。
[既存の接続]ダイアログボックスが表示されます。 変更する接続を選択します。
変更するデータソースのタイプに応じて、プロバイダーが異なる場合があります。 また、使用可能なプロパティを変更する必要がある場合があります。 データを含むExcelブックへの接続の簡単な例を考えてみましょう。
- [編集]ボタンをクリックします。 [接続の編集]ダイアログボックスが表示されます。
- [参照]ボタンをクリックして、同じタイプの別のデータベース(この例ではExcelブック)を検索しますが、名前または場所は異なります。
- [開く]ボタンをクリックします。
新しいファイルが選択されます。 接続情報を変更したことを示すメッセージが表示されます。接続を確認するには、テーブルを保存して更新する必要があります。
- [保存]ボタンをクリックします。 [既存の接続]ダイアログボックスに戻ります。
- [更新]ボタンをクリックします。 [データ更新]ダイアログボックスが表示され、データ更新の進行状況が表示されます。 データ更新のステータスが表示されます。 詳細については、「既存のデータソースを手動で更新する」セクションを参照してください。
- データの更新が成功したら、[閉じる]をクリックします。
- [既存の接続]ダイアログボックスで[閉じる]をクリックします。
テーブルと列のマッピング(バインディング)の編集
データソースが変更されたときに列のマッピングを編集するには、次の操作を行います-
- [PowerPivot]ウィンドウで、変更するテーブルを含むタブをクリックします。
- リボンの[デザイン]タブをクリックします。
- テーブルのプロパティをクリックします。
[テーブルプロパティの編集]ダイアログボックスが表示されます。
あなたは次を観察することができます-
- データモデルで選択したテーブルの名前が[テーブル名]ボックスに表示されます。
- 外部データソース内の対応するテーブルの名前が[ソース名]ボックスに表示されます。
- カラム名には、ソースとモーダルの2つのオプションがあります。
- データソースとデータモデルで列の名前が異なる場合、これらのオプションを選択して、2つの列名セットを切り替えることができます。
- 選択したテーブルのプレビューがダイアログボックスに表示されます。
次を編集できます-
- データソースとして使用されるテーブルを変更するには、[ソース名]ドロップダウンリストで選択したテーブルとは異なるテーブルを選択します。
- 必要に応じて列マッピングを変更します-
- ソースには存在するがデータモデルには存在しない列を追加するには、列名の横にあるチェックボックスを選択します。 追加するすべての列について繰り返します。 実際のデータは、次に更新するときにデータモデルにロードされます。
- データモデルの一部の列が現在のデータソースで使用できなくなった場合、通知領域に無効な列をリストするメッセージが表示されます。 あなたは何もする必要はありません。
- [保存]ボタンをクリックします。
テーブルプロパティの現在のセットを保存すると、メッセージが表示されます。お待ちください。 次に、取得した行の数が表示されます。
データモデルのテーブルでは、無効な列は自動的に削除され、新しい列が追加されます。
列名とデータ型の変更
あなたは次のようにデータモデルのテーブル内の列の名前を変更することができます-
- 列のヘッダーをダブルクリックします。 ヘッダーの列の名前が強調表示されます。
- 新しい列名を入力し、古い名前を上書きします。 または、次のようにデータモデルのテーブルの列の名前を変更できます。
- ヘッダーをクリックして列を選択します。
- 列を右クリックします。
- ドロップダウンリストで[列名の変更]をクリックします。
ヘッダーの列の名前が強調表示されます。 新しい列名を入力し、古い名前を上書きします。
学習したとおり、データモデルのテーブルの列の値はすべて同じデータ型である必要があります。
列のデータ型を変更するには、次を行います-
- ヘッダーをクリックして、変更する列を選択します。
- リボンの[ホーム]タブをクリックします。
- [書式設定]グループのコントロールをクリックして、列のデータ型と書式を変更します。
データソースへのフィルターの追加/変更
データをインポートするときにデータソースにフィルターを追加して、データモデルのテーブルの行数を制限できます。 後で、前に定義したフィルターを変更して、データモデルのテーブルに行を追加したり、行数を減らしたりできます。
インポート中にデータソースにフィルターを追加する
データのインポート中にデータソースに新しいフィルターを追加するには、次を行います-
- PowerPivotウィンドウのリボンの[ホーム]タブをクリックします。
- [外部データの取得]グループのいずれかのデータソースをクリックします。
テーブルインポートウィザードダイアログボックスが表示されます。
- ステップに進む–テーブルとビューを選択します。
- テーブルを選択し、[プレビューとフィルター]をクリックします。
選択したテーブルのプレビューダイアログボックスが表示されます。
- フィルターを適用する列をクリックします。
- 列見出しの右側にある下矢印をクリックします。
フィルタを追加するには、次のいずれかを行います-
- 列の値のリストで、フィルタリングする1つ以上の値を選択またはクリアして、[OK]をクリックします。 +ただし、値の数が非常に多い場合、個々のアイテムがリストに表示されない場合があります。 代わりに、「表示するアイテムが多すぎます」というメッセージが表示されます。
- (列のデータ型に応じて)[数値フィルター]または[テキストフィルター]をクリックします。
- 次に、比較演算子コマンド(等号など)のいずれかをクリックするか、[カスタムフィルター]をクリックします。 [カスタムフィルター]ダイアログボックスで、フィルターを作成し、[OK]をクリックします。
注-いずれかの段階で間違いを犯した場合は、[行フィルターのクリア]ボタンをクリックしてやり直してください。
- OKをクリックしてください。 テーブルインポートウィザードの[テーブルとビューの選択]ページに戻ります。
ご覧のとおり、「フィルターの詳細」列に、フィルターを定義した列の「適用されたフィルター」リンクが表示されます。
リンクをクリックして、ウィザードで作成されたフィルター式を表示できます。 ただし、各フィルター式の構文はプロバイダーによって異なり、編集することはできません。
- [完了]をクリックして、フィルターを適用したデータをインポートします。
- テーブルインポートウィザードを閉じます。
既存のデータソースへのフィルターの変更
データをインポートした後、さらに行を追加するか、テーブル内の既存の行を制限することにより、時々更新する必要があります。 このような場合、テーブルの既存のフィルターを変更するか、新しいフィルターを追加できます。
- PowerPivotウィンドウのリボンの[ホーム]タブをクリックします。
- [外部データの取得]グループの[既存の接続]をクリックします。 [既存の接続]ダイアログボックスが表示されます。
- フィルタを変更する必要があるテーブルを含む接続をクリックします。
- [開く]ボタンをクリックします。
[テーブルのインポートウィザード]ダイアログボックスが表示されます。 前のセクションの手順を繰り返して、列をフィルタリングします。