アクティビティ「範囲内で検索」での完全一致検索について

エクエルファイル中から完全一致する文字のセル位置を取得出来る方法をお教えいただけますでしょうか?

@yuki3

Welcome back to our UiPath community.

Use LookUp Range activity to get matching cell number.

Thank you very much.

How can I get an exact match cell number using the activity “Look Up Range”?

@yuki3

LookUp Range activity needs 3 input parameters as Range, Sheet name, value.

Range - Excel data range. Eg: “A1-D10”
Sheet Name - “Excel Sheetname” Eg: “Sheet1”
Value - “Search string”

The above attached link contains example workflow also. Please look into it.

If there are multiple character strings containing the search value within the range, how should I specify them?

For example, if you want to get the cell number with “test”, but the character string “test 2” is entered in the excel file, etc.

こんにちは

範囲内で検索等のlookup系のアクティビティは完全一致ではなく部分一致検索になるかと思います。
そのため完全一致検索をしたいのであれば自力でロジックを組む必要があるように思えます。

パフォーマンスの観点から、Invoke Code内での実装や、LINQでの実装が良いかもしれません。

LINQの場合ですと、対象範囲をDataTableとして読み込み(dtとします)、検索対象文字列をstrTargetとすると

result = dt.AsEnumerable.SelectMany(Function(r,i) dt.Columns.Cast(Of DataColumn).Select(Function(c,j) if(dt(i)(j).ToString = strTarget,UiPath.Excel.Helpers.ExcelUtilities.ConvertColumnIndexToColumnLetter(j+1)+(i+2).ToString,"" ))).Where(Function(s) not String.IsNullOrEmpty(s)).ToArray()

のように書けると思います。(result はString配列)
なお上記はA1にヘッダ付きの表がある場合なので、
他の場所の場合は途中の+1 や +2といったオフセット量を
調整する必要があります。

ありがとうございます!

ちなみに、範囲内で検索以外の方法で、変動するセル位置を取得する方法はございますでしょうか?

こんにちは

上記の式はこれに該当しますが、これ以外という事でしょうか?

失礼いたしました。範囲内で検索での方法と勘違いしておりました。
知識が不足で申し訳ないのですが、お教えいただたLINQの実装は、どのようにすれば良いでしょうか?(何のアクティビティを使用すればよろしいでしょうか?)

こんにちは

上記の式は、代入アクティビティでそれぞれ左辺、右辺として入力してみてください。

その前にdtとstrTargetの各変数を設定する必要がありますので、
dtについては範囲読み込み、strTargetは代入アクティビティで設定ください。

なお表の位置によってオフセット量の調整が必要になります。(式中の+1や+2の部分)

ご丁寧にお教えいただきありがとうございます!!
やってみます!