- ベストアンサー
エクセルVBAでのまとめ計算
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
わざわざVBAでやろうとしているので、VBAの勉強中と行った所でしょうか? コードを書く上で、どこが判らないのか書いて貰えると回答が付き易いと思います。 ポイントを幾つか…… C列で使用されている最終行は Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row 平均は、ワークシート関数の平均(Application.WorksheetFunction.Average)で計算すると空白を除外して平均してくれるので便利 列の最大は ActiveSheet.Columns.Count サンプルとしてはこんな感じ Sub Sample() Dim i, nAve '1行目からC列の最終行までループ For i = 1 To Range("C" & ActiveSheet.Rows.Count).End(xlUp).Row 'C列が空白なら空白行と判断 If Range("C" & i) <> "" Then 'D列以降の平均値(ActiveSheet.Columns.Countが、Excelの最大列数) nAve = Application.WorksheetFunction.Average(Range(Cells(i, 4), Cells(i, ActiveSheet.Columns.Count))) 'A列 Cells(i, 1).Value = Cells(i, 3).Value / nAve 'B列 Cells(i, 2).Value = Cells(i, 3).Value - nAve End If Next i End Sub
その他の回答 (1)
- yone_sk
- ベストアンサー率34% (58/167)
Range("A1") Range("B1") を起点として Forで100回ループ (又は「SpecialCells(xlLastCell).row」で最終行を取得してループ) OffsetでA列とB列の行をインクリメントしながら 同じくOffsetでC列とD列の値を取得すればできると思います。 わからないところがあれば解説しますが、考えてみてください^^ (他にも簡単なやり方があるかもしれないので、参考程度に)
お礼
解答ありがとうございます。申し訳ありません、当方素人で全く解りません。とりあえず検索して考えてみます。
関連するQ&A
- エクセルVBAで列のまとめ計算
初めまして、よろしくお願いします。 データーで A B C D E ・・・ 1 7 2 2 7 0 3 #DIV/0! 4 3 6 5 8 3 6 3 4 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 100 4 5 という表がありますA1からA10までには(D列の1 TO 10値-(D列の11 TO 20))/(D列の11 TO 20)を表示させたいと思います。For i =1 to 10 、For a =11 to 20 を使用するやり方だとは思いますがうまくいきません。たまに3行のようなエラーの行があります。関数式ではなく、VBAで解る方、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルで計算が出来ません。
エクセルで表を作成し平均値を出したいのですがどうしても出来ません。教えてください。 A B C D E F(合計) 1280 25 4823 325 1 6128 362 2220 1890 466 1 4938 4736 1650 436 1234 1 8056 0 0 0 19122 平均値 6374 というように平均値を出したいんですが、なん行かの表を作っておいて最後の行で計算をしたいのです。Eの列はFの列がスペースでないときには、1を立たせ入力がないつまり空白のときは、0になるようにしたいのです。最後に入力があった行(1)を足して合計を割れば出来ますが、F行= " ","0","1"とう式は成り立ちません。よい方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- EXCEL 空白セル削除 VBA使用せず
EXCELで、以下のような表を作成しています。 A B C D E 1 あ 10 2 い 20 3 う 20 4 え 10 5 お 10 もし、B列の値が10なら、C列にA列の内容を次のように表示します。 A B C D E 1 あ 10 あ 2 い 20 え 3 う 20 お 4 え 10 5 お 10 上の例の場合、C列の2行目・3行目にはA列を反映させないということを VBA無しで行いたいのですが、関数だけで可能でしょうか? 式はいくら複雑になっても構いません。 ヒントになるようなことでも、自分でトライしてみますので、 お教えください。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す
エクセル関数式により、列ごと最後尾と最後尾からの2行目の値を抜き出す。 初めまして、よろしくお願いします。 A B C D E 1 赤 青 黄 緑 黒 2 3 4 1 3 2 0 9 5 9 1 3 4 3 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 112 4 6 1 9 6 113 7 7 5 8 1 114 6 9 1 3 7 115 7 2 5 0 116 8 0 0 という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)と最後尾の数字から2行目の値を(A列では6、B列では6、C列では5、D列では8、E列では6)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル関数式により、列の最後尾から2行目の値からの最大値の求め方。
エクセル関数式により、列の最後尾から2行目の値からの最大値の求め方。 初めまして、よろしくお願いします。 A B C D E 1 赤 青 黄 緑 黒 2 3 4 1 3 2 0 9 5 9 1 3 4 3 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 112 4 6 1 9 6 113 7 7 5 8 1 114 6 9 1 3 7 115 7 2 5 0 116 8 0 0 という表があります。 各列の空白、もしくは0の入力されている後の値(A列では8、B列では9、C列では2、D列では5、E列では7)を最後尾とし、そこから2行目の値(A列では6、B列では6、C列では5、D列では8、E列では6)からの列(A列ではA4の1まで、B列ではB4の3まで、C列ではC4の2まで、D列ではD4の0まで、E列ではE4の9まで)の間の値の最大値(A列で、見えている部分のみではA5の9になります)を抜き出すことのできる関数式の方法がありましたら、教えていただきたく。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルの計算式
A列 B列 C列 D列 E列 1行 A 2 100 ○○○ 2行 B 2 200 3行 A 200 4行 C 100 5行 A 100 上記表で、B列が空白の時の、A列のAの、C列の合計を(この場合は、300) 例えば、E列の1行目セルに表示させる時の「E1」の計算式が知りたいのですが、よろしくお願いいたします。
- ベストアンサー
- その他(ビジネス・キャリア)
- エクセルVBAで質問です
下のような表を作っています。 A列に日付がある限り、B、C、D、E列それぞれの列に対して、 3行目以降のデータが検索値と同じであれば、そのひとつ上の行の 値をG、H、I、J列にそれぞれ上から順に入れていきたいのですが、 どのようになるでしょうか。 A1 月日 B1 検索値1・・・B3以降データ C1 検索値2・・・C3以降データ D1 検索値3・・・D3以降データ E1 検索値4・・・E3以降データ G2以降に検索値1で調べた値 H2以降に検索値2で調べた値 I2以降に検索値3で調べた値 J2以降に検索値4で調べた値 例えば、B1の検索値が1であり、B10に1があったとします。 この場合、ひとつ上のB9の値をG2に来るようにしたいのです。 説明下手ですが教えていただけないでしょうか。
- 締切済み
- オフィス系ソフト
- エクセルVBA及び関数
初心者です。お教えお願いします エクセル2003です 空白行及び0をなくしたいのですが(C列を入力された時点で自動でE列のようにしたい) 関数の場合及びVBAのシートコードを両方教えていただけないでしょうか VBAのコードは勉強の為です Sheet1 A B C D E F 16 文字A 文字A 17 文字B 文字B 18 0 文字C 19 文字C 文字D 20 0 文字E 21 文字D 文字F 22 23 文字E 24 25 文字F 文字はC16~C80まで入っております B16~E80までのセルのみで行いたいのですが 他の場所は関数やグラフ等がすでに入ってますのでいじりたくありません E16~をフォームのコンボボックスのリストにしようと思ってます よろしくお願いましす
- ベストアンサー
- オフィス系ソフト
- EXCELで式での空白セルの挿入方法
A列は空白行で、B列は数値が入っていたり空白だったりする行で構成されています。 またC列からD列までの全ての行には数値が入っています。 この時A列に条件付き数式を入力して、B列が空白でなければB列に空白セルを挿入して現B列からD列を右にシフトさせたいのですが、数式で可能でしょうか? 数式で可能ならばA列に入力する式を、不可能なら参考のためVBAでの記述をお教え頂けると嬉しいです。(VBAはあまり理解しておりませんが。) 例 【処理前】 A列 B列 C列 D列 E列 22 33 44 55 66 77 88 99 100 101 【処理後】 A列 B列 C列 D列 E列 式 22 33 44 式 55 66 式 77 88 99 式 100 101 2万行の処理を1回のみしたいです。 宜しくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 【エクセル】 条件を満たした値の計算
いつもお世話になっております。 A列 B列 C列 1 あ A a 2 い B b 3 い C c 4 あ D d ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ A列が『あ』の行のB列・C列の値を使って、 (A×a+D×d)/(a+d) (4行以降も『あ』があります) 上記のような計算をしたいのですが、 どのように関数を使ったらよいか分かりません。教えていただけないでしょうか。 どうぞ宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
お礼
解答ありがとうございます。親切に説明まで付けて頂き、大変参考になりました。ありがとうございました。