StringGridに入れられた数値データの中に空白がある場合、平均を出そうとしてもエラーが出ます。
そのような場合、空白があるデータに対して列ごとに平均値を出し、空白のところにその平均値を入れるようにしたいと考えています。
Replaceなどを使ってできないか、等考えましたが、エラーが出ます。
エラーが出ないようにすればいいんじゃないですかね。
というボケはともかく、何を聞きたいのか、何が問題なのかさっぱりわからない質問だとご自分でも思いませんか?
何をしたいのか、どうやればいいのか、その中の何をしようとしてうまくいかないのか、何がうまくいっていないのか、といったことを
順序立てて他人にもわかるように説明するところから始めてみてはいかがでしょう。
意外にその過程で問題が解決することもあるものです。
いまいちよくわかりませんが、こんな感じでしょうか?
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;
ツイート | ![]() |