StringGridでの平均算出

解決


fj  2015-07-29 09:41:01  No: 47503

StringGridに入れられた数値データの中に空白がある場合、平均を出そうとしてもエラーが出ます。
そのような場合、空白があるデータに対して列ごとに平均値を出し、空白のところにその平均値を入れるようにしたいと考えています。
Replaceなどを使ってできないか、等考えましたが、エラーが出ます。


通りすがり  2015-07-29 15:36:48  No: 47504

エラーが出ないようにすればいいんじゃないですかね。

というボケはともかく、何を聞きたいのか、何が問題なのかさっぱりわからない質問だとご自分でも思いませんか?
何をしたいのか、どうやればいいのか、その中の何をしようとしてうまくいかないのか、何がうまくいっていないのか、といったことを
順序立てて他人にもわかるように説明するところから始めてみてはいかがでしょう。
意外にその過程で問題が解決することもあるものです。


deldel  2015-07-29 20:27:34  No: 47505

いまいちよくわかりませんが、こんな感じでしょうか?

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  iw, iwCount: Word;
  sl, slAve: Single;
begin
  sl := 0;
  iwCount := 0;
  for iw := 0 to Pred(StringGrid1.RowCount) do begin
    if Trim(StringGrid1.Cells[0, iw]) <> '' then begin
      sl := sl + StrToFloat(StringGrid1.Cells[0, iw]);
      inc(iwCount);
    end;
  end;

  slAve := sl / iwCount;

  showmessage(FloatToStr(slAve));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[0, 0] := '1';
  StringGrid1.Cells[0, 1] := '';
  StringGrid1.Cells[0, 2] := '22';
  StringGrid1.Cells[0, 3] := '';
  StringGrid1.Cells[0, 4] := '333';
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加