下記のような表があります。
合計金額を数量で割って単価を求めたいです。
端数があればエラー終了したいです。
ForEachRowで一行ずつ計算するしかないでしょうか?
行数は最大50行、表の処理件数は100件ほどです。
|品名|数量|合計金額|
|りんご|2|1000|
|みかん|3|3000|
|いちご|2|2000|
|りんご|1|1000|
自分でも調べましたが見つけられませんでした。
下記のような表があります。
合計金額を数量で割って単価を求めたいです。
端数があればエラー終了したいです。
ForEachRowで一行ずつ計算するしかないでしょうか?
行数は最大50行、表の処理件数は100件ほどです。
|品名|数量|合計金額|
|りんご|2|1000|
|みかん|3|3000|
|いちご|2|2000|
|りんご|1|1000|
自分でも調べましたが見つけられませんでした。
HI @m03901
You need to add a column and return the value there and if the value has fraction need to return error in the same column is that right?
Regards
Sudharsan
こんにちは
期待する結果を共有できますでしょうか?
結果は行単位の単価でしょうか、あるい表全体で同じ品名はグルーピングしての平均単価でしょうか?
ありがとうございます。情報不足で申し訳ございません。
理想はこちらです。単価を求めた後、同じ品目・単価同士で集計したいです。
|集計前|
|品名|数量|合計金額||
|りんご|2|1000||
|みかん|3|3000||
|いちご|2|2000||
|りんご|1|1000||
|りんご|3|1500||
|集計後|
|品名|数量|合計金額|単価|
|りんご|5|2500|500|
|みかん|3|3000|1000|
|いちご|2|2000|1000|
|りんご|1|1000|1000|
こんにちは
上記ですが、集計後にりんごが2行ありますが、正しいでしょうか?
こんにちは
まず各行の単価を求めて、品名と単価の組でグルーピングするということであっていますか?
はい、行を追加しました。
同じ品目・単価で数量が違うデータが載っている可能性があります。
それは最終的には集計したいです。
はい、品名と単価でグルーピングしたいです
こんにちは
以下ForEachRowを使わない方法の一例です。
単価算定
dt = dt.AsEnumerable.Select(Function(r) dt.Clone.LoadDataRow({r("品名"),r("数量"),r("合計金額"),CDbl(r("合計金額"))/CDbl(r("数量"))},False)).CopyToDataTable
グルーピング
dt = dt.AsEnumerable.GroupBy(Function(r) Tuple.Create(r("品名").ToString,r("単価").ToString)).Select(Function(g) dt.Clone.LoadDataRow({g.Key.Item1,g.Sum(Function(r) Double.Parse(r("数量").ToString)),g.Sum(Function(r) Double.Parse(r("合計金額").ToString)),g.Key.Item2},False)).CopyToDataTable
Sample20221027-1.zip (3.4 KB)
拝見いたしました!!!ありがとうございます!
自力では絶対できませんでした。
明日早速試してみます!
いつもありがとうございます。
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.