データテーブル上で計算を行い結果を出力する方法

やりたいこと
データテーブルに以下のようなデータが格納されています。
スクリーンショット 2022-04-11 114409

  1. 各行で「価格÷面積」の計算を行い、単価を割り出す
  2. 各行の単価の平均を変数に返す

最終的に出力したいのは②の単価の平均値のみです。

ためしたこと
価格列の平均、面積列の平均を出してから価格平均/面積平均で単価を割り返すことはできましたが、この数値では意味のないものになってしまうため、1行ずつの単価を出してからその平均値を出したいです。

こんにちは @111860

基本的な解決策として、ForEach行アクティビティを使用し、値をトリミングして不要なテキストを削除してから分割することができます

これがお役に立てば幸いです

ありがとう

こんにちは

結果だけが必要でしたら以下で算定可能かと思います。

dt.AsEnumerable.Average(Function(r) Double.Parse(System.Text.RegularExpressions.Regex.Match(r("価格").ToString,"[.,\d]+").Value,System.Globalization.NumberStyles.Any)/Double.Parse(System.Text.RegularExpressions.Regex.Match(r("面積").ToString,"[.,\d]+").Value,System.Globalization.NumberStyles.Any))

Main.xaml (6.7 KB)

1 Like

ありがとうございます!サンプルの内容を確認させていただき、やりたいことが実現できていました。

以前こちらでご教示いただいた方法で、価格列に”億”などが含まれている場合の平均値の記述方法を利用し今回の式に代入してみたのですが、以下エラーとなりました。
スクリーンショット 2022-04-11 164340

エラーの出ている記述内容はこちらです。

ExtractDataTable.AsEnumerable.Average(Function(r) Double.Parse(System.Text.RegularExpressions.Regex.Matches(r("価格").ToString,"[,\w]+").Cast(Of System.Text.RegularExpressions.Match).Select(Function(m) Double.Parse(m.Value.Replace("万円","0000").Replace("億",""),System.Globalization.NumberStyles.Any)))/Double.Parse(System.Text.RegularExpressions.Regex.Match(r("面積").ToString,"[.,\d]+").Value,System.Globalization.NumberStyles.Any))

単純に、前者のDouble.Parse()の中身を書き換えただけのため、()の場所を変えればもしかしたら直るかもしれないと思い触ってみましたが、別のエラーが発生してしまいうまくいきませんでした。

恐れ入りますが、こちらについてもご確認いただけますと幸いです。

上記の内容について、ややこしい状況で大変恐れ入りますが引き続きアドバイスをお待ちしておりますので、何卒よろしくお願い致します。

こんにちは

内容がタイトルと離れていますので、状況に応じて別トピックを上げていただいた方が良いかと思います。(後に検索する人のためにも)

なお上記を検討するにあたっては具体的なデータ例を提示いただくとより良いかと思います。

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