やりたいこと
DataTableから条件に合うデータを抽出する
以下にDataTable型の変数dt従業員があるとします。
このデータテーブルから、性別が男のデータを抽出する場合は、
dt従業員.Select("[性別] = '男'").CopyToDataTable
とすることで抽出することができます。
条件の"男"は文字列ですが、すでにダブルクォーテーションで囲まれているので、シングルクォーテーションで囲むところがポイントです。
WrightRangeアクティビティに実際に書き込んでみます。
結果は、、
無事に性別が男のデータを抽出することができました!
抽出したデータの数を取得
性別が男のデータを抽出することができました。
今回はデータが6つありましたが、.Countを使用することで抽出したデータの個数を取得することもできます。
dt従業員.Select("[性別] = '男'").Count
メッセージボックスに表示してみます。
結果↓
これを応用するとIf分で「この条件に合致するデータが1つでもあれば~する」といった操作ができてとても便利です(^^♪
条件の設定に変数を使用する
先ほどのケースでは、性別が男と指定しましたが、
指定する条件が文字列ではなく変数の場合はどうすれば良いでしょうか。
例えば変数str性別には”女”が代入されているとします。
dt従業員から性別がstr性別と合致するデータを抽出したいといった場合は、
dt従業員.Select("[性別] = '"& str性別 &"'").CopyToDataTable
とすることで抽出可能です。
ごちゃごちゃして見にくいですが、
先ほどの'男'の部分が'"& str性別 &"'に変わりました。
少しややこしいですが、深く考えずにシングルクォーテーションの中にダブルクォーテーションを入れてその中で変数を&で囲むと覚えてしまいましょう。
先ほどと同じく書き込みしてみます。
結果↓
無事に性別が女だけのデータを抽出することができました!
複数の条件を設定してデータを抽出する
dt従業員から性別が男で部署が総務部のデータを抽出というように、複数の条件を設定するためにはAndで条件をくっつけることで抽出ができます。
dt従業員.Select("[性別] = '男' And [部署] = '総務部'").CopyToDataTable
同じくWriteRangeで書き込みをしてみます。
結果↓
性別が男で部署が総務部のデータを抽出することができました!
AndをOrにすると 性別が男性または、部署が総務部という条件にすることも可能です。
ひとこと
Select文を使ったデータテーブルの操作は本当によく使います。
RPAでもSQLのようなデータテーブル操作が可能です。
当初はコードに慣れず、抽出するデータをイメージできなくて苦戦しましたが、
今では開発で使わないことがないくらい多用しているので、データテーブルの操作に関してはだいぶ理解が深まったと思います。
データテーブルを自由に扱えるようになれば開発が一段と楽しくなるので、ぜひ積極的に使ってみてださい!
Select文やデータテーブル操作については他にも紹介しているので、ぜひ参考にしてみてください(^-^)