LuckyTemplates のテーブル: 種類と区別

LuckyTemplates のテーブル: 種類と区別

今日は LuckyTemplates のテーブルについてお話したいと思います。私たちはあらゆる問題でいつもテーブルにぶつかりますが、一人で問題を考えることに多くの時間を費やすことはありません。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

最近、LuckyTemplates メンバーの Ashton から投稿がありました。彼は常に示唆に富んだ良い質問を考え出します。彼の質問をきっかけに、私はよく見かけるパターンについて考えるようになり、このチュートリアルで取り上げたいと思いました。

それは彼が犯した間違いではありませんでしたが、よくある間違いです。たとえば、そもそも仮想テーブルではない場合など、仮想テーブルで問題が発生していると言う人を何度も見かけます。

LuckyTemplates のテーブルの種類には実際の違いがあります。

私が例えるなら、誰かが「最近犬を飼ったのですが、その犬のことで困っているので助けてもらえませんか」と言ってきたとき、それが犬ではなくオオカミだった場合です。どちらもイヌ科ですが、考慮すべき大きな違いがいくつかあります。

したがって、LuckyTemplates のテーブルと同様に、これらはすべて同じファミリーに属しますが、ソリューションとそれらのテーブルの使用方法に実際に影響を与える重要な違いです。そこで、私がやりたかったのは、Ashton の質問を再検討し、LuckyTemplates で見つかるテーブル間の違いを少し掘り下げて、それがテーブルの処理方法にどのような影響を与えるかを示すことでした。

質問は非常に単純でしたが、最初に見えたものよりももう少し奥があります。彼は、顧客、購入した果物の種類、数量、そしてインデックス番号だけを記載した単純なデータセットを持っていました。

LuckyTemplates のテーブル: 種類と区別

彼は、複数選択機能を備えたスライサーを使用して、たとえばオレンジを選択すると、オレンジを購入したすべてのクライアントを表示するだけでなく、他に何を購入したかも表示できるようにしたいと考えていました。

LuckyTemplates のテーブル: 種類と区別

したがって、この選択 (オレンジ色) をオフにすると、完全なデータセットが表示されます。また、これらはオレンジを購入した 2 人の顧客 (ジョーとメアリー) ですが、それぞれ追加の購入もあったこともわかります。

LuckyTemplates のテーブル: 種類と区別

したがって、私たちが最初に知っていることは、フルーツ スライサーは切断されたスライサー テーブルである必要があるということです。通常のスライサーの場合は、オレンジをヒットすると、基本的にテーブル内のオレンジ以外のすべてが削除されます。また、これは動的であるため、仮想テーブルの問題があることもわかっています。

それでは、これについて少し詳しく説明していきますが、その前に、LuckyTemplates にあるさまざまな種類のテーブルを見てみましょう。

目次

LuckyTemplates の 3 種類のテーブル

私たちが定期的に見かけるテーブルには 3 種類あります。最初のテーブルは最も一般的なもので、物理テーブルであり、実際にはプライマリ データです。データの取得を行うとき、またはこのオプションまたはPower Queryで直接データを入力するときは常に、参照または複製を実行するか、物理テーブルである日付テーブルなどの空のクエリを介してデータを読み込みます。

LuckyTemplates のテーブル: 種類と区別

物理テーブルは完全に動的ではありませんが、物理データであるため、ファイル サイズを増加させるその他の特性をすべて備えています。Power Query からアクセスできます。通常、データ モデル内の関係は、物理的な関係を通じて構築されます。必ずしもそうである必要はありませんが、通常はそうなります。これらはプライマリ データに使用され、データ ビューまたは Power Query を通じて視覚化します。

LuckyTemplates のテーブル: 種類と区別

物理テーブルは完全に動的ではありませんが、物理データであるため、ファイル サイズを増加させるその他の特性をすべて備えています。Power Query からアクセスできます。通常、データ モデル内の関係は、物理的な関係を通じて構築されます。必ずしもそうである必要はありませんが、通常はそうなります。これらはプライマリ データに使用され、データ ビューまたは Power Query を通じて視覚化します。

仮想テーブルとよく混同されるのは、この計算テーブル、または DAX 式テーブルとも呼ばれるものです。これは、 DAX式を通じて作成される計算列に直接似ています。これは、[モデリング] タブと [新しいテーブル] オプションを使用して実行し、DAX 式を入力します。

仮想テーブルとよく混同されるのは、この計算テーブル、または DAX 式テーブルとも呼ばれるものです。これは、DAX 式を通じて作成される計算列に直接似ています。これは、[モデリング] タブと [新しいテーブル] オプションを使用して実行し、DAX 式を入力します。

LuckyTemplates のテーブル: 種類と区別

以下の比較表からわかるように、計算されたテーブルは、物理テーブルまたは仮想テーブルとはプロファイルが大きく異なります。完全に動的ではありません。

新しい情報を取得するには、更新する必要があります。物理ファイルのサイズは増加します。直接の物理テーブルとは異なり、Power Query ではアクセスできません。計算列が Power Query に表示されないのと同じように、計算テーブルも表示されません。ただし、物理テーブルの他の側面も備えています。

LuckyTemplates のテーブル: 種類と区別

通常、計算テーブルはサポート テーブルに使用され、より一般的にはデバッグに使用されます。現在では DAX Studio や表形式エディターなどのより優れたツールがあるため、それほど頻繁には使用されていません。このテーブルはデータ ビューを通じて表示します。

率直に言って、計算列と同様、一般的には避けるべきものです。計算表を使用するよりも優れた方法があります。

そして、メジャーに類似したものは、真の仮想テーブルです。これらは、DAX メジャー コードを通じてメジャーのコンテキストで作成されます。他の 2 種類のテーブルとは異なり、これらは完全に動的です。オンデマンドであるため、ファイル サイズが増加することはありません。メジャーと同様に、仮想テーブルはメモリ内でオンデマンドで計算され、必要なコンテキスト全体にわたってすべて使用されます。

Power Query ではアクセスできません。それらに肉体関係を置くことはできません。を使用して関連付けます。

メジャーはテーブル値を返すことができず、スカラー値を返す必要があるため、仮想テーブルはメジャーの中間計算に使用されます。したがって、通常はこれらを中間計算として使用し、それに基づいてスケーラーを生成します。スケーラーはメジャーの結果として得られます。

これらのテーブルは、DAX Studio、表形式エディター、新しいテーブルなどのツールで視覚化できます。これを削除しない限り、データ モデルが大量の追加テーブルで乱雑になるため、これもおそらく最も望ましくない方法です。

仮想テーブルの DAX 測定ソリューション

Ashton の質問に戻りますが、テーブルを見ると、テーブルが動的であることがわかります。複数の選択を行うこともでき、これはその場で完全に変更されます。そのため、他の 2 つ (物理テーブルと計算テーブル) が完全には動的ではないため、これが仮想テーブルであることがわかります。また、最初に述べたように、それが切断されたテーブルであることもわかっています。

LuckyTemplates のテーブル: 種類と区別

これを解決するために、Rubber Duck のコンセプトを使用しました。前回のチュートリアルでは、特定の DAX について詳しく説明する前に、問題に対する概念的な解決策を開発するラバー ダッキングの概念について説明しました。

それで、ここでのラバーダックソリューションのために私がやったことは、基本的にこの切り離されたスライサーテーブルを組み立てることでした。次に、それらのスライサーの値を収集しました。次に、切断されたテーブルで選択したものを購入したユーザーによってクライアントをフィルタリングする仮想テーブルを考え出しました。

次に、その顧客リストを取得し、それらの顧客によって設定された元のデータをフィルタリングして、スライサー値に加えて、顧客とその顧客による購入を導き出しました。

具体的な対策を見て、これがどのように展開するか、また仮想テーブルを操作する際の考慮事項をいくつか見てみましょう。

LuckyTemplates のテーブル: 種類と区別

最初に行ったのは、私たちの価値観に対する 2 つの収穫基準を開発することでした。最初の値は、切断されたスライサーの値です。

要件に複数選択があったため、だけを使用することはできませんでした。そこで私がやったのは、関数を使用して、切断されたスライサー内の 1 つ以上の選択範囲をキャプチャすることです。クライアントの場合、評価する各行に 1 つのクライアントがあるため、SELECTEDVALUE を使用できます。

次に私が実行したのは、で始まるこの仮想テーブル変数 ( VAR Buyers ) です。次に、切断されたスライサーの値に含まれる果物を購入したかどうかによって、クライアントをフィルタリングします。

これは、DAX クエリを実行することで確認できます。これは、DAX Studio または表形式エディターで行うことができます。ここで仮想テーブル メジャーを取得し、それを表エディタにコピーしましょう。私たちが期待する値 (Joe と Mary) が提供されていることを確認します。

LuckyTemplates のテーブル: 種類と区別

DAX クエリは常にテーブルを返し、常に EVALUATE で始まるため、ここに EVALUATE を追加します。ただし、結果としては何も得られません。これは、選択された切断フルーツ ( SelDisconnFruit ) ハーベスト変数がスライサーを認識していないためです。それは文脈から外れています。

したがって、それをテストする方法は、スライサー値を人為的に設定することです。ここでは SelDisconnFruit を小さなテーブルに置き換えます。波括弧の間に「オレンジ」(スライサーの値)を入力します。そして今、ここで結果が得られます。それはジョーとメアリーです。これにより、仮想テーブルは私たちが想定したとおりに機能するようになりました。

LuckyTemplates のテーブル: 種類と区別

それで、メジャー式に戻ることができます。仮想テーブルの課題の 1 つは、メジャー内に仮想テーブルを簡単に作成できることです。ただし、メジャーの結果として仮想テーブルを返すことはできません。したがって、スカラーを返す必要がありますが、これは仮想テーブルの関連する側面をキャプチャします。

ここには、バリュー スライサーにあるフルーツをどのクライアントが購入したかを示す仮想テーブルがあります。選択したクライアントがその購入者のテーブルに存在する場合、 1 を取得するという別の変数 ( VAR BuyerIn )を設定できます。そうでない場合は、ゼロが返されます

LuckyTemplates のテーブル: 種類と区別

次に、その結​​果を取得してフィルター ペインに入力します。私たちが言うところの「主要購入者」の尺度は 1 つで、この場合はオレンジを購入した顧客になります。

LuckyTemplates のテーブル: 種類と区別

そうすることで、元のデータ テーブルをフィルタリングして正しいレコードを絞り込みます。仮想テーブルが作成され、各選択に基づいて適切にフィルタリングが行われることがわかります。


LuckyTemplates の反復関数内の仮想テーブル – DAX の概念
TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する
仮想テーブルで COUNTROWS DAX 関数を使用する方法

結論

これが今日取り上げたかった内容の大部分です。これは非常に単純な仮想テーブルの例ですが、物理テーブル、計算テーブル、仮想テーブルの違いに焦点を当てています。

仮想テーブル、特に仮想テーブルのメジャーのデバッグに関して、再検討すべき興味深い問題がたくさんあります。これについては、今後数週間以内にもう一度取り上げる予定ですが、今のところ、このチュートリアルはこれですべてです。

乾杯!


Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。