比較した結果をエクセルのセルに載せていく

excel

#1

度々の質問失礼します。
今回、IF文を使ってエクセル上での比較を行いたいのですが、結果の出力が上手くいかず困っております。

希望としましては、例えば、
[A1]と[C1]をIF文で比較して、内容が合っていれば[D1]に「OK]と出力する。間違っていたら[D1]に「NG」と出力する。(NGだけでも良し)
といったものを、1から500列目くらいまで行いたいです。

現状、上記の状態で、Outputには”OK結果のみ”出力はされる状態です。
[A1]セルだけとかなら出力できるんですが、上から順番に出力していくにはどうしたらよいでしょうか


#2

・間違っていたら、は Ifアクティビティの Else節 (右側)にアクティビティを並べていけばよいです。
現在Sequenceだけあってブランクになっていますが、そこにWrite Lineを入れるなどして動作確認してみてください。

・現状500件程度のデータを上記ワークフローに流して、結果は1件しか出ませんか?
とりあえずループはしているように見えるのですけど。

・結果を書き出したいとのことですが、
[Read Range]で読み込んだデータテーブル(wordDTかな?)に、結果を格納するカラムを追加してやって、
Ifアクティビティのなかで追加したカラムに値(OK/NG)を設定、
ループが終わったら結果をデータテーブルを丸ごと [Write Range]アクティビティでファイルに書き戻す、
なんて流れではどうでしょうか。


#3

yukino様

返答ありがとうございます。
最初にあげた画像の通りで[Write cell]や[Write range]を使うと、前者の場合は1つセルに上書きされいていく形、後者の場合は指定されたセル全部が埋まりますが、比較全部が同じ対象のものが反映される状態です(全部のセルがどんどん上書きされていく)。

上記のものやらせていただきましたが、

Main has thrown an exception

Source: Add data column

Message: Object reference not set to an instance of an object. This error usually occurs when using a variable with no set value (not initialized).

Exception Type: NullReferenceException

System.NullReferenceException: Object reference not set to an instance of an object.
   at UiPath.Core.Activities.AddDataColumn`1.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

というエラー文が出てしまいました。


#4

・Write cell で ひとつのセルに上書きされていくのは、書き出し対象のセル位置 (プロパティの[Range])を行に併せて変えていかないからですかね。
ここを、[ “D” + カウンタ変数 ] みたいな形にして、データを処理する都度 D1,D2,D3…となる文字列を作って設定してあげる必要があります。
・Write range のは少し読み解けないです。すみません。。。

・画像のシナリオが倒れましたか。すみません。
現物を上げるので動作確認してもらえますか。Studio 2018.2.3 で動いてます。to_shimamura_san.xaml (11.6 KB)

あ,い
1,1
2,2
3,3

なんてExcelを呼ぶと、

あ,い,結果
1,1,○
2,2,○
3,3,○
なんてなるはずなんですが。。。


#5

yukino様

サンプルありがとうございます。
こちら動作致しました。

確認したところ、一番上の[Read range]の変数を指定し忘れてました、こちらのミスです申し訳ございません。
こちらの現物も無事結果記載できました。

ありがとうございます。