データテーブルから条件指定の値を取得したい

UiPath初心者です。
条件を指定し、データテーブルより値を取得したいです。
データテーブル内に、条件一致する値は1つしかありません。
現在、以下の通りで作っていますが、
『インデックスが配列の境界外です』とエラーになりました。
解決策を教えて頂きたくよろしくお願いいたします。

左辺:new DT (string型)
右辺:元DT.Select("[検索対象列タイトル] = ‘"& 検索名の入った変数 &"’")(0)(“取得したい値の列タイトル”).ToString

こんにちは

元DT.Select("[検索対象列タイトル] = ‘"& 検索名の入った変数 &"’")

おそらくこの部分の結果が0件なのだと思われます。
変数を使わずに、直接式を書いたときにどうなるかをまず確認
→問題なければ、変数を組み込んだ時の差異を確認すると良いかもしれません

1 Like

ありがとうございます。
変数の部分に現在の文字列を直接入力しましたが、同じエラーとなりました。
式がおかしいのでしょうか。。

こんにちは

そうなりますね。完全一致検索になりますが、その点は大丈夫そうでしょうか?

1 Like

@miwa_yamamoto さん

条件一致する値は1つしかありませんなら、
まず、DT.Select(…).Countの結果が1ではないかを確認しましょう。
1以外の場合、Select条件の書き方を修正する必要があるかもしれません。

1 Like

ありがとうございます。
文字に違いがあり、見つかりました。
これで、直接入力では動くようになったのですが、
変数で動かすと、こちらのエラーが出ます。

image

MA20000012 この値を直接入力すると、期待する値は取得出来ました。

ありがとうございます。
countをしようとしたのですが、
image
と出てしまい、取れませんでした。。

こんにちは

上記の式では列名には変数が使われていないと思いますが、現時点での最新の式を共有いただけますか?

1 Like

ありがとうございます。
[
] を外し、
現在、こちらになっております。
元DT.Select(“検索対象列タイトル = ‘”& 検索文字列の変数 &"’")(0)(“取得したい値の列タイトル”).ToString

こんにちは

元DT.Select(“MA20000012 = ‘”& 検索文字列の変数 &"’")(0)(“取得したい値の列タイトル”).ToString

のようになっているということでしょうか?
可能な範囲で、そのまま記載いただいた方が良いかと思います。

1 Like

ありがとうございます。
こちらが現状そのままとなります。

汎用検索キーが 2つありますが、
1つ目は、列タイトル
2つ目は、変数となります。

data2.Select(“汎用検索キー = ‘”& 汎用検索キー &"’")(0)(“生産機種”).ToString

列『汎用検索キー』 にある 変数『汎用検索キー』の文字列と一致した行の
列『生産機種』の文字列 を返す ことを希望しています。

こんにちは

ありがとうございます

変数が列名となっているようですので、式中のダブルクォートの位置を今一度確認いただいた方がよいかもしれません。
あるいはこの式のスクーリーンショットを共有可能でしょうか?

1 Like

ありがとうございます。
画面コピーを送りますのでよろしくお願いいたします。

image

こんにちは

ありがとうございます。

変数「汎用検索キー」の中身を確認することは可能でしょうか?
この代入アクティビティの直前でWrteLineアクティビティで出力させるのが確実かと思います。

1 Like

ありがとうございます。

出力させたのですが、
中身は、合ってるように思いました。

image

こんにちは

ありがとうございます。お手数ですが、以下試していただけますでしょうか?

queryという名称のString型変数を用意して
代入でSelectメソッドの中身を記述(以下のようになると思います。)

query = "汎用検索キー = '" & 汎用検索キー & "'"

WriteLineでqueryの中身を出力(確認のため)

現在の代入の右辺を以下に書き換え

data2.Select(query)(0)("生産機種").ToString

もし上記がエラーとなるなら

query = "[汎用検索キー] = '" & 汎用検索キー & "'"

もお試しください。

1 Like

ありがとうございます!!!
出来ました!!!!

これで出来ました!!

本当にありがとうございます!!

1 Like

こんにちは

これで動くということは、修正前の式に何らかの問題があるということですが、
ちょっとその原因がわからないですね。(意味的には等価なはずなのですが...)

1 Like

ありがとうございます。
直接の原因不明ですが、
動かない時は、一度 代入で式を取り出して、
試してみることを学びました。
本当にありがとうございます。

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