条件で仕分けたのち1行ずつ書き込み

こんにちは。
以下のようなことをつくりたいのですがどのように組めば良いか分かりません。
ご教授いただけたら嬉しいです。

Excelをread rangeし、データテーブル(DT1)に格納し、for each rowで1行ずつ取り出したあとから、
以下のような事を行いたいと思っています。

⑴row(0)に特定の文字が入っているか判断する。
(1-1)特定の文字が入っている場合
read rangeしたExcelのシートと別のシートに書き込む。
(1-2)特定の文字が入っていない場合
Excelシートに書き込まず、次の行の処理を始める。

以上になります。

よろしくお願いします。

こんにちは

Ifアクティビティの条件に下記のように入力してみてください

row(0).ToString.Contains(“判断したい文字列”)

もし特定の文字列が入っていたらThenの部分が実行されるので"(1-1)特定の文字列が入っている場合の処理"を入れてください。

Elseは空で問題ないです。

少しトリッキー、というか、いわゆる「VB.NETの書式・表現」に踏み込んだ方法ですが。

DataTable型変数.Select("抽出のクエリ")

という命令で、特定の条件を満たす列だけを取得することができます。
特定の文字が含まれているかどうかであれば、 “列名 Like ‘’” のように記載できます(これは「列名」に該当するカラムに「あ」が含まれている行だけ取得する、となります)

そのままだとDataRowの配列になるので、CopyToDataTable命令で別のDataTableとして変数に保存する必要があるのですが。

と、説明するより実物を見た方が早いと思うので、

ExcelSelectSample.zip (9.1 KB)

簡単なサンプルですが、こちらを参照してみてください。
少し難しい方法ではありますが、かなりシンプルにシナリオを纏められる上、応用範囲も広いので便利かなと思います。

Select文の書式に関しては、Microsoftの記事がリファレンスになるかと思います。他にも「DataTable.Select」などをキーワードに検索してみてください。
(いわゆる「SQL」の「SELECT文」に似た考え方です)

1 Like

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

@Honokaho さん
ありがとうございます!