比較結果が空欄だったら結果を反映させない

閲覧ありがとうございます。
現在、エクセルの2列を比較して、中身が一致していたら”OK”、一致していなければ”NG”と隣のセルに出力するようなシナリオを作成しています。
そのシナリオの中で改善したい点がありまして、
比較している2列なのですが、時々空欄になっているところがあるので、
片方でも空欄だったら、結果を出力しないという設定にしたいです。
どういった方法があるでしょうか。
ちなみに現在のシナリオは以下の通りです。

理想としては、
①3列目と10列目(比較する2列)の結果を変数に入れ
②3列目あるいは10列目が空かどうかを判別し
③結果を出力orスルーして次のループを始める

といった流れに出来たらと思っております。

ご教授お願い致します。

現在のElseの中に下にもう一つIFを設け、
条件 row(3).ToString=“” or row(10).ToString=“”
Then row(15) = “”
Else row(15) = “NG”
でいかがでしょうか。

1 Like

MarikoUsui様

ありがとうございます。
IF文の中にIF文という発想がありませんでした。
無事、反映することができました!!
感謝いたします。

MarikoUsui様

再度の質問で申し訳ないのですが、よろしいでしょうか・・・?

現状、[A]と[B]を比較して、一致していたら”OK”、していなかったら、
[A]あるいは[B]が空欄であるかを確認して、空欄であったら、何も反映させず、空欄でなかったら”NG”と反映させる。
というところまではできたのですが、

追加として
[A]と[B]が一致もせず、空欄でもなかった場合、[B]と[C]をさらに比較する
というシナリオを書きたいのですが、
[A]と[B]が一致もせず空欄でもなかった場合の部分に
[row(2).ToString = row(3).ToString]のような文章を入れても、きちんと機能してくれません。
最初の前提条件とかぶる部分があるからかもしれませんが、if文でなくてもかまいません
何か良い書き方ありますでしょうか。

エラーメッセージが出るということでしょうか?
どのように機能しないか、ご教示いただけますと幸いです。

MarikoUsui様

エラーメッセージではなく、
私の理想としてはこの条件だと
[A]と[B]が一致せず空欄でもなかった場合、
[row(2).ToString = row(3).ToString]というシナリオによって、2行目と3行目が一致していれば”OK”と出力されてほしいのですが、”NG”と出てきてしまう状態です。

作業的には、緑枠と赤枠を比べ、
緑枠≠赤枠 あるいは 緑枠か赤枠が空白だった場合
赤枠と黄色枠を比べる
という作業を行いたい状態です。

たとえばExcelの97行目は赤枠が8.5、黄枠も8.5で一致しているのに、「NG」と表示されてしまうのが想定外、ということでしょうか。
であれば、Excelに入っている値が、見た目上は同じに見えても実際は異なっていることが原因かと思われます。
UiPath側で赤枠、黄枠の値がどのように認識されているか確認するために、
デバックで実行し変数を確認する、
もしくは以下のようにmessage boxアクティビティを最後のIFアクティビティのElse部分に入れて実行し、
row(12)とrow(13)の出力内容を確認してみると良いかと思います。

MarikoUsui様

ありがとうございます。アクティビティの中身自体は間違っていない状態なんですね。
それがわかっただけでもありがたいです。確認してみます。