Excelの「複数条件フィルタ」「個数(行数?)」取得

指定したエクセルを開いたあとの下記処理がうまくいきません。
どのように進めればよいでしょうか。

①データをフィルタリング(?)
C列が空欄 And F列が”有” でフィルタリング
→範囲を読み込みを挿入して「シート指定」
→データテーブルをフィルタリングを挿入
3を””、5を”有”にしましたが、上部の入力データテーブル、出力データテーブルのところが「!」になっていて原因がわかりません。。。。

②フィルタリングされたF列の個数(行数)を取得したい
→行項目を取得かな?と思い挿入したものの使い方がわからず・・・・

よろしくお願いいたします。

「範囲を読み込み」アクティビティを使用すると、DataTable型の変数に格納されます。DataTable型には、列と言う概念があって、その列それぞれに名前が付きます。

「範囲を読み込み」アクティビティの「ヘッダーを追加」にチェックした場合、読み込み範囲の最上行のセルの値が名前になります。チェックしなかった場合は、任意の名前が割り当てられます。

データテーブルをフィルタ掛ける際、列名のところにはそのデータテーブルの列名を指定しなければなりません。ですので、C列だから3と言うのはダメです。

C列は、DataTable上のColumns(2)となりますので(0からの連番なので)、以下のように指定します。

DataTable変数.Columns(2)

同じようにF列の場合は
DataTable変数.Columns(5)
ですね。

フィルタ掛けた後の件数は、

DataTable変数.Rows.Count
で取得できます。

HANACCHIさん
ご丁寧にありがとうございます。
ただ、私の理解力が乏しく解決できていません。
もしお付き合いいただけるのであれば下記教えていただけますでしょうか。

【読み込みたいExcel】
オートフィルタしたい行は3行目
3行目D列は”対応者”というセルで空欄でフィルタリングしたい
3行目F列は”申込”という名前のセルで”有”でフィルタリングしたい
このExcelには名前の定義などの設定等は行っていません。

◆「範囲を読み込み」アクティビティの「ヘッダーを追加」
→チェックを外しました。

◆データテーブルをフィルタ掛ける際・・・について
→事前に変数設定をするのでしょうか?

恐れ入りますがご確認よろしくお願いいたします。。。

Excelの複数条件フィルタ.zip (9。8 キロバイト)

こちらをご覧ください。
更に、ヘッダーの追加ON・OFFと範囲指定の方法について、いろいろと試してみてくださいな。

1 Like

ありがとうございます。
いろいろ試してみます。

実際の仕事用の本番でも上手くいきました!
ありがとうございます。
1つ上手くいかない事があり教えて頂けますでしょうか。

起動時、条件のフィルタ対象数がゼロのときに行0がない的なエラーになります。
こういうときは「0件だ」と解釈したいのですがどのようにすれば良いでしょうか。
(もしかしたら行を数えるという考え方自体を変えないと???)
よろしくお願い致します。

DataTable変数.Rows.Count

で件数が取得できますので、

DataTable変数.Rows.Count.Equals(0)

で判断できますね。

ありがとうございます。
うまくできず、色々いじっていたら。。。
後半の「1行を書き込み(フィルタ後)」アクティビティのみ消してみたら0件でも取得出来るようになりました。

これはこれで良いんですよね??
まだ頭で理解できない状況ですいません。。。

まぁ、とりあえずうまく行ったらOK!
ただ、こんな事があったというのは覚えておいてください。

今後の開発で新たな知見を得た時に、あぁそういえばあの時のあの事象は!?と振り返る事も大切ですので。

それと、よろしければ解決に至った回答に、解決済チェックをお願いします。

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.