データテーブルをフィルタリングする「テーブルをフィルタ」アクティビティについてです。
1.アクティビティのプログラム名
RCA.Activities.Core.FilterDataTable
2.説明
Studio バージョン 2.0.2.0まで
クイックアクセス: 「ツールボックス」 > 「データテーブル」 > 「テーブルをフィルタ」
Studio バージョン 2.0.3.0から
クイックアクセス: 「ツールボックス」 > 「コア」 > 「データテーブル」 > 「テーブルをフィルタ」
「フィルタウィザード」ウィンドウで条件を指定し、データテーブルの列や行をフィルタリングするアクティビティです。
※動作を確認したコボットStudioのバージョン:2.2.0.2
※バージョンによって文言などが一部異なる場合がございます
3.プロパティ
プロパティ項目 | プロパティ名 | 入力欄 | 説明 |
---|---|---|---|
オプション | 行フィルタモード | ドロップダウン選択 | フィルタウィザードの「行のフィルタ」でフィルタリングした行に対して、残すのか削除するのかを選択する。 |
列モードを選択 | ドロップダウン選択 | フィルタウィザードの「出力列」で選択した列に対して、残すのか削除するのかを選択する。 | |
その他 | パブリック | チェック項目 | |
表示名 | 値を入力(String型) | デザイナーパネルのアクティビティ名に反映される。 | |
出力 | データテーブル | 値を入力 (DataTable型) | 指定値にフィルタリング後のデータテーブルを格納する。 |
入力 | データテーブル | 値を入力 (DataTable型) | フィルタリングしたい元となるデータテーブルを指定する。 |
4.使い方
「データテーブルをビルド」で作成したデータテーブルの内容を、「テーブルをフィルタ」アクティビティを使用し、データをフィルタリングしましょう。
アクティビティ「データテーブル > テーブルをフィルタ」を、ツールボックスからデザイナーパネルにドラッグ&ドロップで配置します。
フィルタリングの条件を指定していきます。アクティビティ内の「フィルタウィザード」ボタンをクリックします。
「フィルタウィザード」ウインドウがポップアップで表示されます。
「フィルタウィザード」ウインドウの詳細
このウィンドウでフィルタリングの条件を指定していきます。それぞれの項目についての説明です。※説明不要で設定について確認する場合は「フィルタウィザード」ウインドウの設定 を参照してください。
「入力データテーブル」… フィルタリングしたい元となるデータテーブルを指定します。
「出力データテーブル」… 指定値にフィルタリング後のデータテーブルを格納します。「入力データテーブル」のデータテーブルを指定する事も可能です。その場合、フィルタリングしたデータテーブルに上書きされます。
「行のフィルタ」タブの項目
「保持」… 指定したデータテーブルからフィルタリングした行のみを残します。
「削除」… 指定したデータテーブルからフィルタリングした行を削除します。
「列」… フィルタリングの条件を設定したい列の名前またはインデックスを指定します。
「操作」… コラムと価値の間で満たしたい条件を、ドロップダウンリストから選択します。
「値」… 列に対して、操作で指定した条件でチェックしたい値を指定します。
アクション | フィルタリングされる条件 ※演算子の詳細は「演算子について」の比較演算子を参照 | 条件を満たす値の例 | |
列名1 | 値1 | ||
< | 「列名1」の値が「値1」より小さい場合 | 80 | 100 |
> | 「列名1」の値が「値1」より大きい場合 | 120 | 100 |
<= | 「列名1」の値が「値1」以下の場合 | 80 | 100 |
>= | 「列名1」の値が「値1」以上の場合 | 120 | 100 |
= | 「列名1」の値が「値1」と等しい場合 | 100 | 100 |
!= | 「列名1」の値が「値1」以外の場合 | 10 | 100 |
Is Empty | 「列名1」の値が空の場合 | "" | 指定できない |
Is Not Empty | 「列名1」の値が空以外の場合 | "コボット" | 指定できない |
Starts With | 「列名1」の値が「値1」から始まる文字列の場合 | "コボットStudio" | "コボット" |
Ends With | 「列名1」の値が「値1」で終わる文字列の場合 | "面接コボット" | "コボット" |
Contains | 「列名1」の値に「値1」が含まれている文字列の場合 | "面接コボット導入" | "コボット" |
Does Not Start With | 「列名1」の値が「値1」で始まらない文字列の場合 | "面接コボット" | "コボット" |
Does Not End With | 「列名1」の値が「値1」で終わらない文字列の場合 | "コボットプラットフォーム" | "コボット" |
Does Not Contain | 「列名1」の値に「値1」が含まれていない文字列の場合 | "RPAコンサルティング" | "コボット" |
ボタン … クリックすると条件を削除します。
ボタン … クリックすると条件を追加します。
「And」… どちらの条件も満たす場合フィルタリングされます。
「Or」… どちらかの条件を満たす場合、フィルタリングされます。
条件が複数ある場合に表示されるボタンです。条件追加時のデフォルトは「And」になります。「Or」で条件を設定する場合、「And」ボタンをクリックで変更されます。「And」と「Or」が混在する場合「And」が優先されます。※「演算子について」の「論理演算子」参照
キャプチャの場合、以下のどちらかに該当する行がフィルタリングされます。
①「列名1」の値が空でなく、かつ、「列名1」の値が「値1」以下の場合
②「列名2」の値に「値2」の文字列が含まれる場合
「出力列」タブの項目
「保持」… 指定したデータテーブルから、列で指定した列のみを残しアウトプットします。
「削除」… 指定したデータテーブルから、列で指定した列を削除しアウトプットします。
「列」… 対象としたい列の名前、またはインデックスを指定します。ひとつも指定しない場合、すべての列が対象となります。
ボタン … クリックすると対象の列から削除します。
ボタン … クリックすると対象の列として追加します。
「フィルタウィザード」ウインドウの設定
「フィルタウィザード」ウインドウを設定し、「rateTable」から通貨単位が「ドル」のデータを抽出し、抽出したすべての列を格納したデータテーブル「resultTable」を作成してみましょう。
「データテーブルをインプット」に、フィルタリングしたい元となるデータテーブルの変数名「rateTable」を指定します。「データテーブルをアウトプット」に、フィルタリング後のデータテーブルを格納する変数名「resultTable」を指定します。「resultTable」変数が作成されていない場合、「変数の作成」を行い指定します。「プロパティから作成する」で「resultTable」変数を作成した場合、変数の型はDataTable型で作成されます。
「行のフィルタ」の設定です。
行フィルタモード:「保持」にチェック
列:「0」または「"通貨(通貨単位)"」と入力
操作:ドロップダウンリストから「Ends With」を選択
値:「"ドル"」と入力
「出力列」の設定です。「出力列」タブをクリックします。
列選択モード:「保持」にチェック
列:指定なし(すべての列が対象)
※列を指定してすべての列を対象とする場合
「OK」ボタンをクリックし、ウィザードを終了します。
「ホーム > スタート」をクリック、または「F5キー」押下で実行すると、データテーブル「rateTable」を設定した条件でフィルタリングし、「resultTable」に格納します。※データテーブルを出力し確認する場合は、「データテーブルを出力」で文字列に変換し「1行を書き込む」で出力パネルに表示したり、「行ごとに処理」でメッセージボックスに表示してください。
複数条件の設定
先ほどのフィルタに条件を追加し、「rateTable」から『ドルを使用し、取引レートが100円より小さい国』を抽出してみましょう。
フィルタウィザードに条件を追加していきましょう。
「行フィルタ」の追加設定です。
条件の結合:「And」ボタン
列:「1」または「"取引レート(円)"」と入力
操作:ドロップダウンリストから「<」を選択
値:「100」と入力
「出力列」の設定です。「"通貨(通貨単位)"」の列のみアウトプットし、国名が表示されるようにします。
※「列選択モード」の「削除」を利用する場合
条件を追加後の実行結果です。