DTを複数条件で列の数字の合計を取得したい

UiPath初心者です。
image

上記DTを使い、
部署・項目を指定し、金額の合計を取得したいです。
例①:部署/塗装、項目/突発修繕 → 金額312,300
例②:部署/塗装・溶接以外、項目/突発修繕 → 金額132,500

お知恵を貸して頂きたくよろしくお願いいたします。

こんにちは

例①:部署/塗装、項目/突発修繕 → 金額312,300

dt.AsEnumerable.Where(Function(r) r("部署").ToString="塗装" AndAlso r("項目").ToString="突発修繕").Sum(Function(r) Int32.Parse(r("金額").ToString))

例②:部署/塗装・溶接以外、項目/突発修繕 → 金額132,500

dt.AsEnumerable.Where(Function(r) r("部署").ToString<>"塗装" AndAlso r("部署").ToString<>"溶接" AndAlso r("項目").ToString="突発修繕").Sum(Function(r) Int32.Parse(r("金額").ToString))

上記のSum(....)Count()にすると件数の合計になります。

1 Like

ありがとうございます。
教えて頂いた式の応用で、
部署を3つに絞りたい場合は、
例②の式の<>”部署名を記入” を =”部署名を記入” に変更し同じ形で繋げていくとの認識であってますでしょうか。

こんにちは

3つの部門の合計を算出したいのであれば

dt.AsEnumerable.Where(Function(r) (r("部署").ToString="塗装" OrElse r("部署").ToString="部署X" OrElse r("部署").ToString="部署Y") AndAlso r("項目").ToString="突発修繕").Sum(Function(r) Int32.Parse(r("金額").ToString))

のように部門の部分にカッコを追加してOrElseでつなげる必要があります。

1 Like

ありがとうございます。
複数の場合はそのようにつなぐのですね。
大変勉強になりました。
お陰様でSumは出来上がりました

件数のCountの方なのですが、変数の型はどのようにすれば良いでしょうか。
Int32で作ったのですが、integerからbooleanへの暗黙の型変換はできません。
とエラーになりました。

こんにちは

右辺はどのような式になっていますでしょうか?

ありがとうございます。
こちらのようになっております。

請求書見積書.AsEnumerable.Where(Function(r) (r(“原価部門”).ToString=“MJ55T1” OrElse r(“原価部門”).ToString="MJ55U1"OrElse r(“原価部門”).ToString="MJ55V1"OrElse r(“原価部門”).ToString=“MJ55W1” ) AndAlso r(“勘定科目CD”).ToString=“73151021”).Count(Function(r) Int32.Parse(r(“金額”).ToString))

こんにちは

なので

請求書見積書.AsEnumerable.Where(Function(r) (r(“原価部門”).ToString=“MJ55T1” OrElse r(“原価部門”).ToString="MJ55U1"OrElse r(“原価部門”).ToString="MJ55V1"OrElse r(“原価部門”).ToString=“MJ55W1” ) AndAlso r(“勘定科目CD”).ToString=“73151021”).Count()

になります。

ありがとうございます。
Sumと書いてあるところをそのままCountと書くのかと勘違いしてしまっていました。
理解が悪く申し訳ございません。
お陰様でエラーが消えました。
どうもありがとうございました。

1 Like

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