
WinActor【技術ネタ】Excelのセルの値を取得した時、ブランクにならない理由
こんばんは。
今朝、洗濯を干していると目の前の電信柱にクマゼミが止まり、おしりをフリフリけたたましく泣き始めたのですが、どう聞いても
セ~ミ、セミセミセミセミセミセミセミセミセミセミセミ
としか聞こえず、「知ってるって!」と真顔で蝉に向かって呟いたHANAです。
社内でRPA講習をしています。
今日は初心者さんから届いた質問をご紹介します。
RPAあるあるネタでもあります。
「Excelのセルは何もないはずなんですが、HPのプルダウンを選択してしまうんです。どこがおかしいんのでしょう??」
という質問が届きました。
最初はノードの並びがおかしいのかと考えましたが、ノードの並びは順序良く、ループも前の変数を持ち越しているような節はありません。
Excelの表を見て、「あぁ、なるほど」と思いました。
指定したセルにはVlookup関数が入っています。
何もないはずのセルには#N/Aエラーが表示されていました。
ちなみに、「セルがブランクだった場合」という条件分岐は
条件 「等しい」「値⇒ 」
WinActorではこのように設定します。
これはWinActorの仕様なので覚えておきましょう。
イコールや、ゼロを使用しても上手くいきません。
さて、この「何も入っていなかった場合」は、本当に真っ白な状態を指します。つまり、関数も取得してしまうので、完全にブランク(真っ白)な状態にする必要があります。
対応策としては2つ。
①RPA実行前に手動で#N/Aエラーを消しておく。
②VlookupにIFERROR関数を追加し、該当しない場合はブランクに設定する。
例:=IFERROR("",Vlookup(A4,D4:H20,5,False))
その後、RPA側でコピー、値を貼り付けのノードを追加してください。
とにかく、ブランクセルとして認識したいセルの関数を消してしまうと考えてください。そうすると、誤った値を変数に取得することがなくなります。
条件分岐。「もし、セルがブランクだったら」。
よく使う条件式なので、覚えておきましょう。
ハートを押してくれると喜びます♪