CData Excel 関数
このセクションでは、CData Excel 関数について説明します。関数 は、さまざまな操作やデータ分析をより速く実行するためのプリセットされた数式です。すべての操作は、テーブル内のデータに関連しています。つまり、行のクエリ、追加、更新、または削除を行うものですが、これらの関数を使用してストアドプロシージャを実行することもできます。
関数は、引数またはパラメータと呼ばれる指定された値に基づいて、特定の計算を特定の順序で実行します。関数パラメータは、特定のセルを参照できます。これらのセル値が変更されると、アドインは自動的に結果をリフレッシュします。
Excel 関数はExcel ファイル内に格納されるため、動的スプレッドシートを他の人と簡単に共有できます。また、計算式の手入力の手間を省くことができます。タスクを効率的に実行し、時間を節約できます。
サンプル
このセクションの例は、データ行がスプレッドシート上のどこにでも存在できるため、さまざまな範囲のデータに基づいています。
J | K | L | |
14 | Id | FirstName | City |
15 | MyId1 | Jon Doe | Miami |
16 | MyId2 | ... | ... |
17 | MyId3 | ... | ... |
CDATAQUERY
=CDATAQUERY(Query, [Connection], [Parameters], [ResultLocation], [Options])この式はSELECT ステートメントを実行するか、ストアドプロシージャを呼び出します。デフォルトでは、この式が入力されたセルには、返された行数または変更された行数が表示され、それ以降の行に結果が表示されます。
Query | Query 引数は、このクエリを含む文字列です。次に例を示します。 SELECT * FROM Personパラメータ化されたクエリを実行するには、標準の構文を使用します。 SELECT unid, FirstName FROM Person WHERE City = @City AND FirstName = @FirstName 本製品 は範囲からパラメータを読み出します。Parameters プロパティで範囲を指定します。 |
Connection | 接続を定義する文字列で、CData リボン(接続の管理 を参照)から作成した接続プロファイル、または接続文字列のいずれかです。接続文字列にはProvider プロパティを含める必要があります。次に例を示します。 Provider=Domino;URL=http://dominoserver:3002/;DataSource=names;TableTypes=Tables;AuthScheme=OAuthPassword;User=MyUser;Password=MyPassword;
[データ選択]ウィザードを使用してスプレッドシートにデータをプルした場合、Connection 引数はオプションです。デフォルトでこの接続が使用されます。 |
Parameters | Parameters 引数は、クエリのパラメータの名前と値を含むセルの範囲を指定します。範囲の最初の行はヘッダー行で、パラメータ名を指定します。
例えば、範囲A10:B11 にパラメータが含まれる場合、セルA10:B10 にはパラメータ名が含まれ、セルA11:B11 にはパラメータ値が含まれます。 |
ResultLocation | 行単位での結果の出力が開始されるセルを指定する文字列です。デフォルトでは、CDATAQUERY は式が入力されたセルの真下に結果を出力します。 |
Options | 式の動作を制御する追加オプションを含む文字列。デフォルトの動作では、最初の行にカラムヘッダーが含まれるテーブルでデータを返します。"Header=False" は、ヘッダーなしでデータを返すように設定できます。"Scalar=True" は、データの単一のセルのみを返し、式と同じセルに返すように設定できます。 |
次の式はDomino を検索し、その結果をセルJ14以降に出力します。
=CDATAQUERY("SELECT unid, FirstName FROM Person WHERE City = 'Miami'","Domino.Connection1",,"J14")
次の式は、Domino から単一のCity のFirstName のみを選択し、結果を式のセルに出力します。
=CDATAQUERY("SELECT FirstName FROM Person WHERE City = '"&J15&"'","Domino.Connection1",,,"Scalar=True")