• ベストアンサー

データを入力して自動で合計が次の行に入るやり方がわかりません

エクセルの初心者です。 現在仕事で JOBNO 月日 客先 品名 型番 A代  B代  C代  D代 合計 ○○ ○○ ○○ ○○ ○○ ○○ ○○ ○○ ○○ ○○ ・・・ △△ △△ △△ △△ △△ △△ △△ △△ △△ △△ ・・・ といった形でひたすらデータを入力してるんですが、 JOB一纏まりが入力された時点で、その次の行に JOB 月日 客先 ABCD代の各合計と総合計を自動で入れられるボタンの マクロを作りたいと思ってるのですがどうすればいいのかがわかりません。 どんな構文を書けばいいんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

A代(F列)~合計(J列)最終行の1行下に合計を入れたいということでよいでしょうか? 以下のマクロをALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択して実行します。 Sub Macro1() Dim idx As Integer Dim insRow As Long For idx = 6 To 9  insRow = Application.Max(insRow, Cells(65536, idx).End(xlUp).Row + 1) Next For idx = 6 To 10  Cells(insRow, idx).FormulaR1C1 = "=SUBTOTAL(9,R2C[0]:R[-1]C[0])" Next idx End Sub どの行も必ずA代~D代が入力されるか分からないので、各列の最大行を一旦求めるようにしました。またSUBTOTAL関数を使用するので合計行の下に再度データを追加しても合計を2回足し込むことはないです。

neo556
質問者

お礼

わざわざ作ってくれたのですね、ありがとうございます。 最終行の1行下に合計を入れたいということであってるのですが その合計を入れた行の下にまた新しいのをどんどん入力していると 最初から全部が合計されてしまいました。 TOTAL?関数なので当たり前なのかもしれませんが。 このデータ入力はデータベースとして使う予定で 他のシートで例えばjobNOで検索したら ここから引っ張ってくるような感じにしたいわけです。 そっちは色々と調べて Worksheets("データ入力").Range("A5:N65000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Worksheets("検索用").Range("A4:N5"), CopyToRange:=Worksheets("検索用").Range("A9:N65050"), Unique:=False こんな感じでやってみて何とか動くようになりました。 もうちょっと関数を調べつつ試行錯誤してみます。 ありがとうございました。

その他の回答 (2)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#02です >他のシートで例えばjobNOで検索したらここから引っ張ってくるような感じにしたいわけです 集計行を挿入するシートは別シートだったのですか? それならば、実現方法はAdvancedFilterでも行コピーでも何でも良いのですが、JobNOが合致する行だけを別シートにコピーして、最後に集計行を入れる方法でよいのではないでしょうか。

neo556
質問者

お礼

あ、なるほど! そっちの最後に集計行をいれればいいんですね! 私も指示を出してきた上司も殆ど素人なもので こーしたい、あーしたいとやりたいことと 出来ることがなかなか一致しないものでして・・・。 色々手助けありがとうございます! もっともっと勉強していこうと思います。

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

>JOB 月日 客先 ABCD代の各合計と総合計 「ABCD代の各合計」は解りますが「JOB 月日 客先」は何を合計するのでしょうか? カウントかな?

neo556
質問者

補足

説明不足で申し訳ありませんでした。 「JOB 月日 客先」はそのまま同じものをコピーするだけなのです。 自分で色々といじってるんですが JOBNOだけオートフィルタで抽出して 抽出した範囲の合計を出せばいいのかなとか思ったんですが どうもうまくいかなかったです。。

関連するQ&A

  • 入力したデータをその都度別のシートに蓄積したい。

    お世話になります。 分不相応なのですが、教えてください。 売上や支払に関する明細を作るためにエクセルを使っています。 『シート1』 罫線を引いて実際の明細仕立てにして、  社名   品名1・数量1・金額1・・・   品名2・数量2・金額2・・・          合計金額 計算式も入れて、品番と数量が入ると 金額を算出するようにしています。 『シート2』 1行目には、社名・品名などの項目名を入れました。 1つの取引先に付き、1行分で シート1で入力したデータを転記したいと思います。 理想としては、シート1で1明細の入力が完了 →コマンドボタン(登録)を押す →シート2の2行目にデータが転記 これを繰り返してシート2の3行目、4行目と データを蓄積していく・・・感じです。 マクロの記録で、入力した内容を消去するボタンを作ったり 1行目だけ内容を転記させてみたり(そこで終了・・) 色々なキーワードで、それらしきサイトを検索してみたり、 初心者でも分かるマクロ&VBAみたいな本で調べてみたり・・ ちょっと行き詰ってきたので質問させて頂きました。 ユーザーフォームを作ってシートに転記する方法は見つけましたが シート1には計算式を結構盛り込んでしまったので、 フォームには手が届きそうにありません。 説明不足かもしれませんが、何か良いアイデアはないでしょうか。 マクロで解決できるのか、やっぱりVBAでやるしかないのか、 また何か良いサイトをご存知でしたらご紹介ください。 よろしくお願い致します。

  • マクロで自動入力がしたいのですが

    エクセル2000(Win)を使用しています。 下のような表があります。 チェック欄を手入力するのが手間なので、マクロで自動入力できないか考えました。 チェック欄  ID  チェックしたいID   1     1    1         2    3   1     3    5         4       1     5       ↑   このチェックをマクロで自動入力したい。 マクロは詳しくないので、エディタは用いず ツール→マクロ→新しいマクロの記録で相対参照をオンにして1行をマクロに記録しました。 しかし何度やっても1行目しかチェックしてくれません。 2行目以降もマクロでチェックしてほしいのですが。 できることはできますよね? 原因として何が考えられるか、教えていただけますか?

  • 行を追加した時の、値の合計範囲

    行を追加するマクロがあり、実行すると「合計」行の1行上に行が追加されます。 行が追加された分「合計」のある行が下がっていくんですが、その関数が変動してくれなくて困っています。    A   B   C   D   E   F   G   H   I 1    商品の基本データ ・    ・ ・    ・ 14   商品の基本データ 15 16     日付  入庫  出庫               本日在庫  17 2012/04/01  100                     100 18 2012/04/05  50                      150 19 2012/05/03      100                 50 20 2012/05/04  300                     350 21    ・         150                 200 22    ・          50                 150 23    ・      200                     350 24    ・          10                  340 (ここに行が挿入されていく) 25 合計       (1)   (2)                340(=(1)-(2)) (1)=IF(COUNT($C$17:$C24)=0,"",SUM($C$17:$C24)) (2)=IF(COUNT($D$17:$D24)=0,"",SUM($D$17:$D24)) 現在こんな感じで式を入れています。$C24と$D24が$C25...、$D25...等動いていってくれるといいんですが・・。 他にもSUMPRODUCTやOFFSETなど色々試しましたが、上手くいきません。 行が増えていく(セル参照範囲が変わってくれない)、C:CやD:Dとして設定できない、データが連続していない、などが原因だと思っています。 A列には何もありません。 E~H列は他にもデータが入っています。 マクロで、B17からHの合計の1行上までを日付でソートすることがあります。 合計行の上に空白行C25を入れ、合計行C26にSUM(C17:C25)とし、 挿入する位置を空白行C25の上とすれば、SUMは挿入行を抱えていってくれるんですが、 この場合空白の行25を高さ0の不可視にさせなければならず、利用する側としては21・22・23・24・26と、25が飛んでいるのが気になるものと思います。 できればそういう疑問を持たせることなく可動させたいです。 因みにVBAでWorksheet_ChangeやWorksheet_Selectionhangeなどは既に使用しているので、 マクロで自動で合計値を入力することはできないと思います。 ボタンで動かすマクロでなら出来そうですが、合計を逐一表示するのにマクロボタンを設置するのもどうかと思うので・・。 いくらネットで探しても方法が見つからなかったので、何方かご教授宜しくお願い致します。

  • EXCEL 自動入力すると止まる

    エクセルで注文書などを書いています。 品名を書く列にある品物(例青森産りんご)の名前を入力。 同じ列で違う行に「青森産まぐろ」 と入れようとすると 「あ」と入力した時点で「青森産まぐろ」と出てくると思います。(入力補助?) そこでエンターキーを押すとエクセルが止まってしまいます。 結構同じような品目があって、頻繁に自動入力が出現して その度に動作が停止して困っています。 この自動入力機能はもう使えなくてもいいのです。 どのように対処すればよいかお教え下さい。 再インストールしましたがダメでした。 OS ウィンドウズビスタ オフィス2000

  • Excel 行と日付自動入力する方法

    Excelで金融機関の支払表を作っています。 目標イメージ(空白が認識されずずれるので勘弁してください) A  B  C  D  E  F  G  1  年  月 日 曜 支払  他略 2  2008 3  1 土  水道   - 3  2008 3  2 日  電気   - 4  2008 3 3  月   - - 5  2008 3 4 火   ガス   - ・・・ 32 オートフィルタ合計の管理(年の水道料金別などを出すための行) といった感じですなのですが、エクセル初心者なので現在次の日がほしいときは6行目挿入、オートフィルコピー、月が替わると手動で4 1(4月1日)と入力して同じようなことをしています。挿入と手動入力をするのに手間がかかりますので、2008 3 1を入力すると3月の日付が自動挿入(行が挿入)、自動入力(2~31まで)などされて効率よくしたいので方法、マクロ、コードなんでもいいので教えてください。オートフィルタ合計行を作り年、月、日を分けていますので手間取っています。 できれば今後ずっと使っていく予定ですので、4月は30日までとか閏年とかも認識させたり、土日は自動色変更されるようにしたいです。 説明下手ですがお願いします。

  • コンボボックス_データ抽出

    コンボボックスを使用し、<全台帳>から、自分の担当分の必要データのみ抽出し、新たに<一覧表>を作成したいと考えています。 ≪エクセルの状態≫ ・Sheet1 <メニュー欄>(表紙になっています) ・Sheet2 <全台帳>  部署全体の注文アイテム情報があります。      このデータは、毎日自動更新されるようにすでにマクロが組まれています。(行が日々変更します) ・Sheet3 <自分の一覧表>      今回作りたいものです。 ≪Sheet2と3の説明≫ ・Sheet2のデータは、下記のようなものが横に一列に並んでいます。 [入力日][注文番号][客先][品名][数量][納期][送り先]など物凄いたくさんの情報が部署全員分あります。 ・Sheet3には、[注文番号(唯一これが自分の分とわかるものです)]からデータを引っ張ってきて、その分の[客先][品名][数量]データのみ一緒に引っ張ってきてほしいのです。 ≪作りたいマクロ≫ 【1】Sheet1のメニュー欄にマクロボタンを作り、それをクリックすると、ユーザーフォーム(コンボボックス)が表示されます。 (表示場所は、Sheet1でも3でもかまいません。) 【2】コンボボックスは、Sheet2にリンクしてあり、[注文番号(直接入力は不可)]から自分の担当分を選ぶ。 【3】ユーザーフォーム上で、<登録ボタン(コマンドボタン?)>を押す。 【4】Sheet3に、[注文番号]とその分の[客先][品名][数量]のみ一緒に引っ張られてくる。 注文が入るたびに、この作業をするため、Sheet3は最終行に追加されるかたちにします。 この様なマクロの組み方を、教えてください。 よろしくお願いいたします。

  • 入力した合計数値を振り分けたい

    関数とかマクロなど理解していない初心者でエクセル2003を使用しいます。 例えば 1Aのセルに1~10個(単価50円)と入力済 2Aのセルに11~20個(単価40円)と入力済 3Aのセルに21~30個(単価30円)と入力済 1B~3Bのセルに個数欄未入力 1C~3Cのセルに金額自動計算式入力済 4Bのセルに合計個数欄未入力 4Cのセルに合計金額自動計算式入力済 とした場合、例えば4Bの合計個数に29個と入力すると、自動的に1Bに10個、2Bに10個、3Bに9個と個数が振り分けられる様にしたいのですが、できるのでしょうか?

  • マクロ NO番号・上からの行で入力したい。

    マクロを使い。自動でNO番号とSheet2に上からの行で入力させたいです。是非、方法を教えてください。 例)SHEET1 A1 空白 A2 買い物 A3 金額 A4 残金 入力ボタンをクリックしたらSheet2へ 例)SHEET2 A  B   C   D 12 買い物 金額 残金 と自動で番号が記載され、上の行からどんどん入力記載されるように作りたいのですが、マクロで作れますか?教えてください。 マクロの記述も詳しく教えてください。

  • Excel 入力のある行だけ印刷したい

    こんにちは、Excelの関数で教えてください。 いま注文書を作成しています。A1からE10の 範囲でタイトル行含み10行作成し、A~Eには それぞれ型番、商品名、単価、数量、合計金額が 入っているとしてください。つまり商品の種類は 9種類です。 ここで、たとえば2行目と6行目のみ注文がある 場合、2行目と6行目だけ数量の欄に入力されます。 すると、印刷時に2行目と6行目だけ印刷されるよう 制限をかけたいのですが、どのような関数を使えば できるでしょうか? メンテナンス等を考慮し、できればマクロを使わず 関数だけで実現したいのですが・・・。 よろしくお願いします。

  • 任意のセルに小計、合計と入力したら自動計算してくれ

    エクセル2007でVBAを何度も挫折しています 任意のセルに小計、合計と入力したら自動計算してくれるVBAの方法を教えてください セル G21 商品名 L21 詳細 V21 数量 X21 単位 Z21 単価 AD21 金額(V21:数量*Z21:単価) の何処にでもある見積書なのですが 任意のG行に小計・合計と入力すると AD行に金額が自動で入力させるVBAの仕方が知りたいです。 3行ほどの見積もあれば100行を超える見積もあります 教えてください。

専門家に質問してみよう