データテーブルの列の値の合計

データテーブルにエクセルの1列を列を読み込みで取得します。
その後、その列の値を合計したいのですが、過去のフォーラムを見ていると、Computeを利用するような記載があり試したところ、Compute自体出てきません。別の方法でもいいのですが、何か簡易なやり方ございますでしょうか?

あるデータテーブルのn列目にあるデータを集計する場合であれば、とりあえずLINQで実現できそうです。

datatable.AsEnumerable.Sum(Function(row) CInt(row(n)))

※datatable は DataTable型の変数に置き換えてください
※ヘッダー付きのデータテーブルであれば、row(n)row("列名") に置き換えてもOKです。

1 Like

Compute でやってみました
フォーラムを読んで試行錯誤したので、皆さんの書き込みが元になっています。

まず、
列を読み込みではなく、範囲を読み込みで、データテーブル型の変数に格納します。この変数を仮にrとします。
次にrにカラムを追加する代入を置きます。
左辺値はなんでもよく、右辺値にカラムを追加する記述を置きます。
例、r.columns.add(任意の文字,GetType(decimal)),“CONVERT(集計したい項目名,system.decimal)”)
任意の文字のほうはダブルクォーテーションで囲います。
集計したい項目名のほうはそのままデータテーブルrの中の項目名を使用しました。
次も代入で、左辺値はstring型変数、右辺値にcomputeを記述しました。
例、r.compute(“sum(任意の文字)”,string.empty).tostring
この時の任意の文字にはダブルクォーテーションは不要でした。
最後に1行を書き込みを使って、上の左辺値のstring型変数を指定し、出力しました。
フローを貼り付けられず申し訳ありません。
出力画面にExcelでいうところのsumが行われ、合計値が表示されていました。

ループも不要ですし、読み込み、代入が2つ、書き込み、のみなのでシンプルで速いかと思いますが、如何でしょうか。

@cheez_RPA
@poke
みなさま実装段階で参考にさせて頂きます!
ご返信遅れまして、すみません
まずはお礼まで

1 Like