DataTable内の数値を集計したいです。

お力をお貸しください。

Csvファイルから読み込んだDatatableの情報を項目ごとに値を集計したいです。

|カラム1|カラム2|
itema 1
itema 100
itemb 2
itemb 200
itemc 3
itemc 300

Datatable内で操作したい場合、どのようなアクティビティになるか教えてください。

UiPathのお話なのにExcelのスクショで超ごめんなさい…
ご質問って、こういうことがしたいってことで私の認識は合っていますか?ちがう?

%E7%84%A1%E9%A1%8C

sumireさん
ありがとうございます、合致しています。

DataTable型の変数.Compute(”sum(カラム名)”, Nothing)

で列の合計を取得出来ます。

オブジェクト型で帰って来るので、string型で取得したい場合は
DataTable型の変数.Compute(”sum(カラム名)”, Nothing).toString

int型で取得したい場合は
Integer.Parse(DataTable型の変数.Compute(”sum(カラム名)”, Nothing).toString)

でとれます!

ExcelでいうところのSUMIFってことですね!
そしたら

他所のサイトを貼るだけでごめんなさい…

こんにちは

LINQ使えばできそうですが、かなり複雑になると思うので、今回のケースの個人的なお勧めはDictionaryに詰め込む方法です。計算量もO(n)で済みます。

サンプル添付します。
Sample20191004.zip (10.7 KB)

n-shiumiさん

ありがとうございます。以下の通り指定してみたのですが構文エラーとなりました。

【指定内容】
Integer.Parse(dt1.Compute(“Sum(Column2”,str_Jyoken).ToString)
※str_Jyokenには「“Column2='” & row(“Column1”).ToString & “'”」

【エラー】
IncludeExceptionDetailInFaults=true により作成された可能性のある ExceptionDetail の値:
System.Data.SyntaxErrorException: 集約引数の構文エラー : 可能な ‘Child’ 修飾子を含む単一列の引数を指定してください。

なぜか教えていただけませんでしょうか?

Youichiさん

サンプルありがとうございました。
端的にお聞きすると、Csvで取り込んだ現在使用しているDatatableではなく、新たにDictionaryを作ってそちらに入れ込みながら、計算し、Csvへ書き戻す際はまたDictionary→DataTableへ書き戻す感じでしょうか?

すみません、すこし勘違いしていました。
項目ごとに合計を出したいのですね!!

項目がわかっている場合にこのようにとることができます!これはitemaだけ集計してます。

データテーブル変数.Compute(”sum(カラム2)”, ”カラム1=‘itema’”)

(データテーブル変数、カラム2、カラム1、itema、は必要に応じて変更してください。カラム1、カラム2は列名でitemaは項目名です。)

全部の項目を集計したい場合は、

  1. データテーブルをカラム1の重複がないようにフィルタリングする

  2. データテーブルをループで回す

  3. 以下の式で、項目ごとに集計する

データテーブル変数.Compute(”sum(カラム2の値)”, ”カラム1=‘カラム1の値’”)

というようなかたちになると思います!

こんにちは

端的にお聞きすると、Csvで取り込んだ現在使用しているDatatableではなく、新たにDictionaryを作ってそちらに入れ込みながら、計算し、Csvへ書き戻す際はまたDictionary→DataTableへ書き戻す感じでしょうか?

最終的な集計データの扱い次第ですね。
元のDataTableに書き戻しても良いですし、新規に集計結果のDataTableを構築しても良いかと思います。
またEXCELに書き出すなら直接個々の値をWriteCellで書き込むようなケースもあると思います。

n-shiumiさん

うまくお伝え出来ず恐縮です。
サンプル.pdf (126。4 キロバイト)
こちらのような単純なファイルで、


このような単純な設定をしているつもりでして、実行結果は、
Message.xlsx (9。2 キロバイト)
となります。

本当に申し訳ありません、.netからやり直せ!と思いますがどうぞご教授いただきたく。

こちら、サンプル作ってみました!

こちらでリスト型の変数に項目ごとの集計が入る仕組みになっています!

Main.xaml (13.1 KB)

1 Like

n-shiumiさん
ありがとうございます。何とか解決しました。御指南ありがとうございます。

1 Like

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