LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

今日のチュートリアルでは、LuckyTemplates および SSAS または SQL サーバー分析サービス内で、ある列を別の列で並べ替えるプロセスを自動化する方法を説明します。このチュートリアルの完全なビデオは、このブログの下部でご覧いただけます。

この例では、複数の列を含む Dates テーブルがあります。一部の列は整数部分ですが、これは非表示にします。一部の列は文字列部分であり、これをエンドユーザーに表示します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

したがって、Calendar Year、Calendar Year Month、Month 列があります。私たちがやりたいのは、これら 3 つの列の整数部分による並べ替えを自動化することです。暦年を暦年番号で並べ替え、暦年月を暦年月番号で並べ替え、さらに月を月番号で並べ替えます。

しかし、それをいちいちやるわけではありません。この特定のテーブルに対してそれを自動的に並べ替えるスクリプトを実行します。複数のテーブルに複数の列がある場合は、それらのテーブルのセットでそのスクリプトを使用できます。

C# コードの記述には表形式エディターを使用しますが、現時点では表形式エディターには C# 言語用の IntelliSense がありません。簡単にするために、 Visual Studio (VS)を使用します。Visual Studio (VS) には C# 言語用の IntelliSense があり、VS コードも使用できます。

目次

C# を使用した LuckyTemplates および SSAS の列の並べ替え

まず、Visual Studio 内に新しいプロジェクトを作成する必要があります。これは、 C# 言語のコンソール アプリ (.Net Framework)になります。それを選択して「次へ」をクリックしましょう。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

次に、プロジェクトに任意の名前を付けることができます。これをSortByという名前にして、「作成」をクリックします。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

コードができたことがわかります。コードが機能したら、それをコピーして表エディター内に貼り付けるだけです。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

ただし、コードが Visual Studio 内で動作するには、ライブラリへの参照を設定する必要があります。そのためには、[参照]をクリックして、 [ブラウザー内でNuGet パッケージを管理する]オプションを選択するだけです。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

参照オプション内に、分析サービスを記述する必要があります。次に、利用可能なオプションで 2 番目のオプションを選択し、[インストール] をクリックする必要があります。インストールが開始され、インストールが完了するまでに数秒かかります。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

次に、コード内に「Using Microsoft.AnalysisServices.Tabular」と記述し、セミコロンを記述する必要があります。サーバー オブジェクトを作成するので、単純にServerと書きます。サーバー オブジェクトの名前はServer自体になり、 New Serverと書きます。

したがって、基本的には、メモリ内に新しいオブジェクトを作成しています。そして、そのサーバーを LuckyTemplates ファイルに接続するには、サーバー オブジェクトのメソッドを使用します。そこで、 server.Connectを作成しましょう。ここで、LuckyTemplates 内の AnalysisServices がリッスンするポート番号を指定します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

そのポート番号を見つけるには、[外部ツール] に移動し、 [DAX Studio]をクリックして、下部でローカル ホストを見つけます。これは、LuckyTemplates 内にある SQL サーバー分析サービスが、LuckyTemplates またはその他の外部ツールを通じて送信される変更をリッスンするコード番号です。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

サーバーは 1 つのものですが、SSAS の場合はサーバーに複数のモデルを含めることもできます。しかし現時点では、LuckyTemplates にはモデルが 1 つしかありません。そこで、そのモデルを宣言します。ここではModel is等しい (=) server.Databasesと書き、そのサーバー内の最初のデータベースにアクセスするので、.Modelと書きます。

次に、コードのその部分が機能するかどうかをテストしてみましょう。これを行うには、そのデータ モデル内にあるすべてのテーブルのリストを出力するだけです。したがって、ここに「 each (Table t in model.Tables) 」と入力し、括弧を開けて Enter キーを押します。

その後、「 Console.WriteLine (t.Name) 」と入力します。テーブルの名前を出力した後にウィンドウが自動的に閉じないようにするには、Console.ReadLine、開き括弧と閉じ括弧、およびセミコロンを記述します。あとは、「開始」オプションをクリックして、実行されるのを待つだけです。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

データ モデル内にあるテーブルの名前を出力できることがわかります。日付、製品、顧客、店舗があります。これにより、作成したセットアップが機能していることが確認できます。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

ここで、実際にコードの核心に入り、対応する整数で列を並べ替えるのに役立つコードの作成を開始できます。

ForEach部分から作成したものをすべて削除しましょう。サーバーとモデルはそのままにしておきます。反復処理するテーブルの名前を保持する変数を宣言しましょう。これにDatesTableという名前を付けます。テーブルの名前は基本的にDatesになります。

次に、model.Tables にforeach var tを設定し、 where句を使用して、 T が t に移動する場所を指定します。NameはDatesTableと等しい必要があります。現在 DatesTable を反復処理している場合は、その DatesTable のすべての列に対して別のループを開始します。そのために、t.Columns に foreach var cを書くことができます。

DatesTable のみを反復処理していて、DatesTable のすべての列にアクセスできるかどうかをテストするには、単純にConsole.WriteLine を出力し、 c.Nameとします。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

F5 キーを押すと、列にアクセスできることがわかります。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

ここでさらに先に進み、さらにコードを記述します。

さらに 3 つの列を含むタプルのリストを作成します。列の 1 つがターゲット列になります。2 番目の列は、ターゲット列を並べ替える際に使用する列になります。3 番目の列は、実際に並べ替える際に使用する列を非表示にするかどうかにかかわらず、単純に true または false を保持します。

暦年列を暦年番号で並べ替えたいとします。最初の列には暦年が含まれ、2 列目は暦年番号が含まれ、3 列目は並べ替えの完了後に暦年番号列を非表示にするかどうかを決定します。

そのために、Visual Studio に戻り、新しい変数を作成します。任意の名前を付けることができます。この例では、これをColOperationsと呼びます。次に、 newを記述し、次にリストを作成し、列のタイプ (string、string、bool) を記述します。その後、タプルを作成します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

したがって、基本的には 3 列のリストを作成しているだけであり、3 列に対して 2 行を用意しています。次に、foreachループ内でfor ループを開始します。基本的に、私たちが言いたいのは、各反復でiで始まる変数を宣言するということです。i がcolOperations.Countより小さい場合は 、単純にその値をインクリメントします。

次にIF文を書いていきます。c.Name は、現在いる列の名前に属します。次に、colOperations iがあります。基本的にi使用すると、特定の 1 つの行にアクセスできます。そして、 .Item1を記述すると、最初の列、2 列目、または 3 列目にアクセスできます。

したがって、最初にItem1列を使用します。これが真の場合は、「 c.SortByColumn はt.Columnsと等しい必要があります」と単純に記述します。t はテーブル オブジェクトであることに注意してください。次に、その特定のテーブルの列にアクセスします。必要なのは、現在列操作を行っている行であるcolOperationsであり、列は基本的にItem2オブジェクトです。

最後に、並べ替えを適用する特定の列を非表示にするために、最後の 1 行のコードを記述します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

表形式モデルに対して実行するメイン コードを記述したので、varcolOperations からコードをコピーして表形式エディターに取り込むだけで、同じコードを実行できます。

表形式エディターを使用した LuckyTemplates および SSAS の列の並べ替え

表形式エディターは、接続する必要がある LuckyTemplates モデルまたは分析サービス モデルを舞台裏で自動的に認識するため、サーバーまたはモデル オブジェクトは使用しません。したがって、これらの変数を使用する必要はありません。これは、これらのモデルに接続する方法を識別するのが表形式エディターの仕事であるためです。

LuckyTemplates に戻り、表形式エディター 3 または表形式エディター 2 のいずれかを起動します。どちらを使用しても構いません。この場合は、Tabular Editor 3 を使用しましょう。

[ファイル] タブに移動し、[新しい C# コード] をクリックして、[プロパティ] オプションを閉じます。次に、コードをここに貼り付けます。唯一確認する必要があるのは、モデル変数を使用する代わりにモデル オブジェクトを使用することです。そこで、大文字の M を使用してそのコードを実行してみましょう。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

スクリプトが正常に実行され、3 つのモデル変更が表示されたと表示されたので、変更をデータ モデルにコミットして戻します。これらの列に適用したものはすべて保存します。

LuckyTemplates に戻ると、月番号が非表示になっていることがわかります。「月」列をクリックして「列ツール」 、 「列で並べ替え」に移動すると、特定の列が月番号で並べ替えられていることがわかります。暦年月番号も同様です。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え

C# コード内にその列がなかったため、暦年は自動的に並べ替えられます。したがって、私たちができることは、表形式エディタを起動して別のタプルを作成することです。そして、もう一度そのスクリプトを実行します。

LuckyTemplates と SSAS – TE3 と C# を使用した列の並べ替え


表形式エディター LuckyTemplates: バージョン 3 のレビューとチュートリアル
LuckyTemplates 表形式エディター 3: スクリプトによる自動化 表形式
エディター 3 内の DAX コーディング

結論

と SSASでは、ある列を別の列で並べ替えるプロセスを自動化することが非常に簡単です。これは、Dates テーブル内でその操作を行う方法を示す非常に基本的な例でした。ただし、さらに列を追加してこのリストを充実させ、別のテーブルを確認することができます。

こうすることで、何度も作成する同じモデルに対してこれらの列を並べ替えるのに費やす時間を削減できます。

これがお役に立てば幸いです。ご質問がございましたら、コメント欄にご記入ください。


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 を使用して数式内に仮想リレーションシップを作成する方法を説明します。