![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.5ベストアンサー
- 回答日時:
もし、計算を開始するフィールドの位置が
最初のフィールドからではない場合、
Private Sub cmdB()
Const COUNTFIELD = 8 'テーブルの計算対象のフィールド数
のあとに、
Const STARTFIELD = 0 '計算を開始するフィールドの位置
を追加してください。
この場合は0ですから、先頭のフィールドから計算を
開始します。2番目のフィールドから始める場合は
Const STARTFIELD = 1
とします。
さらに、
'集計
For i = 0 To COUNTFIELD - 1
a(i) = rs.Fields(i).Value
s = s + a(i)
Next i
のところで、
a(i) = rs.Fields(i).Value
を
a(i) = rs.Fields(i + STARTFIELD).Value
に変更してください。
以上、変更したところは先頭のフィールドから
計算を開始する場合でも使えます。
No.3
- 回答日時:
字数いっぱいだったので、追加です。
Databaseオブジェクトを使っているので
コード表のツール→参照設定からDAO3.6
(3.6でよかったかな)
にチェックをいれてください。
以上です。
No.2
- 回答日時:
>列の標準偏差はテーブルの集計で出来ます
>レコードの標準偏差を求めたい
ということは、各レコードのフィールドを
横に演算したいということですか。
横のものを縦にして計算したい、ということですか。
縦のものを横にしたいというのは時々
お目にかかりますが。
クエリで出来るのかできないのか朝から頭が
回らないので手っ取り早くコードで計算します。
ひょっとしたらクロス集計クエリでどうにか
なるかもしれませんが、そのあたりは
だれか気を利かして回答するかもしれません。
こういう計算はExcelに放り込んでそっちで
計算するほうが手っ取り早いのでは、という
のが大方の見方でしょうが。
テーブルの名前をTdata、フィールドを
A,B・・・・とし、標準偏差というフィールド
を追加しておきます。各フィールドは
数値型で倍精度浮動小数点型とします。
一応、他にはフィールドはないものとします。
一応、フォームに一つボタンを貼り付け
てのクリックイベントで行います。
関数に簡単に変更できるので、その時は
試してみてください。小数点以下の端折り
は適当です。標準偏差はテーブルの
標準偏差というフィールドに各レコード
ごとに算出して記録します。
各レコードのフィールドの値を配列に
読み込んで計算するので、フィールドは
簡単に連続しているものとします。
Field(i)はフィールドを示していて、
iは0から始まります。したがって、
計算対象のフィールドが10あれば
iは0から9まで変化します。
保守を簡単にするためにこの数値を
Const COUNTFIELD = 10
のようにCOUNTFIELDという定数で
管理します。計算対象のフィールドの
数が変更されるならこの10の数値を
変更すればすみます。
Private Sub コマンド0_Click()
Const COUNTFIELD = 8 'テーブルの計算対象のフィールド数
Dim db As Database
Dim rs As Recordset
Dim i As Integer
Dim fld As Field
Dim a() As Double
Dim s As Double
Dim sa As Double
Dim d As Double
Dim sd As Double
Set db = CurrentDb
Set rs = db.OpenRecordset("Tdata", dbOpenDynaset)
ReDim a(COUNTFIELD)
With rs
rs.MoveFirst
Do Until rs.EOF
s = 0
sa = 0
'集計
For i = 0 To COUNTFIELD - 1
a(i) = rs.Fields(i).Value
s = s + a(i)
Next i
'標準偏差
d = s / COUNTFIELD
For i = 0 To COUNTFIELD - 1
sa = sa + (a(i) - d) ^ 2
Next i
sd = (sa / COUNTFIELD) ^ (1 / 2)
'書式設定 少数点以下の表示形式
'必要なければ以下はコメントアウトか削除
sd = Val(Format(sd, "0.000"))
'テーブルへの結果書き込み
rs.Edit
rs!標準偏差 = sd
rs.Update
'確認 必要なければコメントアウトか削除
MsgBox ("合計s=" & s)
MsgBox ("標準偏差=" & sd)
rs.MoveNext
Loop
End With
Erase a
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Sub
フィールドを個別に配列に入れていくように
すれば様々に対応できるかもしれません。
関数化もたいして難しくないので時間が
あれば、と言う感じです。
一応、popo4655のテーブルの構造をお聞きしてから
コードを書いたほうがよかったかもしれませんが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) お世話になります ACCESSを使用しています 下記のクエリデータ(1)があります 商品名 行数 A 1 2022/09/05 08:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスで入力したデータの順...
-
「#エラー」の回避
-
accessのフィールドに10桁の数...
-
Accessでボタンを押すと今日の...
-
追加クエリ実行時に入力した文...
-
FileMakerで、フィールドの値が...
-
ExcelからAccessデータを検索す...
-
ファイルメーカーの集計方法を...
-
住所の改行について
-
WORD差し込み印刷:日付の処理 ...
-
差し込み文書のルールで if the...
-
A1、A2、A3・・・とデータを増...
-
Wordでページ番号を計算式で入...
-
ACCESSのクエリの関数について
-
アクセス Access 時間の引き算
-
ACCESSでデータ変更箇所が分か...
-
MS-WORDで、あるフィールドに入...
-
FileMakerで画像をまとめて書き...
-
Access フィールド内の値で、...
-
ファイルメーカーで条件によっ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「#エラー」の回避
-
アクセスで入力したデータの順...
-
ExcelからAccessデータを検索す...
-
差し込み文書のルールで if the...
-
accessのフィールドに10桁の数...
-
Access フィールド内の値で、...
-
Accessで値がnullの場合は計算...
-
フィールドの中のテキストを分...
-
Accessでボタンを押すと今日の...
-
access フィールドのサイズ(文...
-
FileMakerで、フィールドの値が...
-
MS-WORDで、あるフィールドに入...
-
ACCESSでデータ変更箇所が分か...
-
MS-ACCESSで中央値(ME...
-
ファイルメーカー複数フィール...
-
WORD差し込み印刷:日付の処理 ...
-
アクセス Access 時間の引き算
-
WORDフィールドコード一括編集
-
Wordでページ番号を計算式で入...
-
accessのVBAで変数名でフィ...
おすすめ情報