Excelデータの複合条件検索

Filter data tableを用いて下記条件で抽出したく思います。
(([key}=row(2).ToString) and [対象者]=“〇”) or
(([key}=row(2).ToString) and [対象者]=“△”) )

というものです。

色々試しましたがうまくいきませんでした。
Filter data tableでは複合条件難しいのでしょうか。

この後、
.netを利用して
assgin
DT02 =
DT01.Select(("[key]=’+row(2).ToString+’ )and( [対象者]=‘〇’)or
(([key]=’+row(2).ToString+’ )and( [対象者]=‘△’") ).CopyToDataTable

とすると
Assign: The expression has too many closing parentheses.

となります。

ご教示いただければと思います。

@matrix99999さん

確かSelectメソッドを利用して、複合条件を指定さらると思います。
でも括弧の数量はちょっとおかしいです。

下の検索式で入り替え見てください。
DT01.Select((("[key]=’+row(2).ToString+’ )and( [対象者]=‘〇’))or
(([key]=’+row(2).ToString+’ )and( [対象者]=‘△’")) ).CopyToDataTabl
ご参考まで

Filter data tableでも複合条件はできると思うのですが、
色々試した結果でうまくいかないとは、どの様な状態になりますか。

添付のように指定しました抽出できませんでした。
("[key]=’+row(2).ToString+’ and [対象者]=‘〇’)or
([key]=’+row(2).ToString+’ )and( [対象者]=‘△’")
の条件での抽出を考えています。

実装例を作成しました。
selectMultiple.xaml (16。9 キロバイト)

Filter data tableについて
複合条件は可能ですが、()が使えない為使い勝手は悪いです。

フィルタを2回使って行うのではまずいことがありますか?
※実装例 1.フィルタを複数回に分ける

多少無理やりですが、1つでも可能なことは可能です。
※実装例 2.フィルタ1つで複合条件

実装例では、以下のルールを利用してひとつにしています。
※参考 AND 演算子では、その他の演算子に優先するようです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datacolumn.expression?view=netframework-4.8

.netを利用した場合について
こちらも2つに分けた方がいろいろといいと思うのですが。。
※実装例 3.select分を二つに分ける

※参考 select文での抽出ですが、複数の条件がある場合、ひとつにまとめるより分けた方がよいようです。
https://www.cresco.co.jp/blog/entry/6016/

ひとつにする場合はこうなります。
※実装例 4.selectに複数条件を追加

以上、ご参考まで。

1 Like

@matrix99999さん

よろしければ、テストデータアップロードしてもらいませんか?サンプル作ってあげます。

こんにちわ!
@matrix99999

Filter Wizardの下の2項目の”<”を"="に修正して見てください。

2 Likes