Excel内のデータを自動検知して、一番最初に検知した値を変数に代入したい

・やりたいこと
Excel内に取得した値があり、それを一つ変数に代入を行いたいが、値が入っているセルもあれば入っていないセルもあります。そのため繰り返し判定で空のセルはスキップし、一番最初に値が入っているセルを検知したらそれを変数に格納する

・わかっていること
Excelの繰り返し範囲指定を行い、その後IF判定で値の有無を判定する挙動をすると考えています。

・問題点
検知するExcelの範囲設定とその後のIF判定の方で指定した範囲が空でない条件付けはできていますが、最初に検知したセルの値を検知するという挙動の設定の仕方がわかりません。現在設定できているところまでのスクショを載せます。

もしほかにいい方法があればぜひそちらも教えていただけると幸いです。

こんにちは

ループの後続レコードを実行する必要がないのであれば、Breakアクティビティ(繰り返しを終了)でループを抜けると良いかと思います。

返信ありがとうございます。

アドバイス通り繰り返し終了を入れました。
また、自分で解決として以下のスクショ通りに設定してみましたが、実行すると値が出ず判定ができていないように感じます。どこか問題ありますでしょうか?

条件分岐の指定が正しくないのでは?条件式の構築が難しいようなら、条件ビルダーで「空ではない」を選択してみてはと思います。

ありがとうございます。

その場合の出力先として「<[CurrentIndex.ToString]>」で合ってますでしょうか?

それは業務要件次第なのでこちらでは分かりません。
CurrentIndexの場合、当該行の番号が返ると思いますが、それが期待するものであればあっていると思いますし、そうでないなら別の物が必要です。

承知しました。

では以下の共有している挙動で得られる値は以下のものに代入されると認識しているが、全般的に間違いないでしょうか?
ちなみに業務用件として必ずこの変数などに代入しないといけないというものはないです。

「現在のインデックス」<[CurrentIndex.ToString]>:Excelの行番号
「Excelの列名」<[CurrentRow.ByIndex(0)]>:該当列の値が入っているセル

カスタム入力やExcelから選択する項目からは指定の単独セルしか選択できないため今回除外しました。

繰り返し範囲のインデックスが返ります。必ずしもエクセルの行番号とは一致しません。

「Excelの列名」<[CurrentRow.ByIndex(0)]>:該当列の値が入っているセル

表中に列名が規定されている場合は、ByIndexメソッドにならずByFieldメソッドになると思います。
表中に列名が規定されていない場合は、エクセルの列名を元にし、繰り返し範囲での列インデックスで指定することになります。メソッドはByIndexになります。
返るのはセルの値になります。

返信ありがとうございます。

今以下の二通りを検証してみましたがいずれもセルの値が返ってきませんでした。

CurrentRow.ByIndex(1)

CurrentRow.ByField(“あああ”)

本来ならセルの値が返ってくるが、事実として帰ってこないということはIF判定がうまく作動してないと認識してよろしいでしょうか?

ダミーデータでも良いのでプロジェクトをZipファイル等として共有可能でしょうか?

はい。こちらになります。
ダミーデータは「test.exle」になります。

やりたいこととして
あああの列の一番最初に来る値を自動で変数に代入したいです。

テストロボ.zip (8.6 KB)

xamlファイルが含まれていないようなのですが、こちらも共有可能でしょうか?

失礼しました。
こちらになります。
テストロボ (2).zip (21.5 KB)

ワークフロー内で呼び出しているBook1.xlsxあるいはSheet2はありませんので、このままでは動作しないと思います。

すみません、渡す際サイズダウンするためにいろいろファイル内容変更したのですが、細部まで気が回りませんでした。

お手数ですが、以下がシート名を変更したものになります。
test.xlsx (9.8 KB)

個別のファイルではなく、動作しない状態のプロジェクト一式として共有できますか?
そもそも指定しているファイル名も異なりますので。どのような設定をしていて、どのような入力に対して、どのような結果を期待しているかが良くわかりませんので。

失礼しました。

こちらになります。
テストロボ (3).zip (141.4 KB)

繰り返しの空白行に対する動作が「停止」になっているため、1行目の空行で処理が停止となっています。空行も処理を続ける必要があるならこちらは処理とする必要があります。

また変数設定の保存する値が、テキストとして入力されているので、式として入力する(か+マークから選択)必要があります。

ありがとうございます。

指摘通りに実行したところ無事一番最初に取得した値が検知され、テスト用にExcelに書き込めました。

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