- 締切済み
入力したデータをその都度別のシートに蓄積したい。
お世話になります。 分不相応なのですが、教えてください。 売上や支払に関する明細を作るためにエクセルを使っています。 『シート1』 罫線を引いて実際の明細仕立てにして、 社名 品名1・数量1・金額1・・・ 品名2・数量2・金額2・・・ 合計金額 計算式も入れて、品番と数量が入ると 金額を算出するようにしています。 『シート2』 1行目には、社名・品名などの項目名を入れました。 1つの取引先に付き、1行分で シート1で入力したデータを転記したいと思います。 理想としては、シート1で1明細の入力が完了 →コマンドボタン(登録)を押す →シート2の2行目にデータが転記 これを繰り返してシート2の3行目、4行目と データを蓄積していく・・・感じです。 マクロの記録で、入力した内容を消去するボタンを作ったり 1行目だけ内容を転記させてみたり(そこで終了・・) 色々なキーワードで、それらしきサイトを検索してみたり、 初心者でも分かるマクロ&VBAみたいな本で調べてみたり・・ ちょっと行き詰ってきたので質問させて頂きました。 ユーザーフォームを作ってシートに転記する方法は見つけましたが シート1には計算式を結構盛り込んでしまったので、 フォームには手が届きそうにありません。 説明不足かもしれませんが、何か良いアイデアはないでしょうか。 マクロで解決できるのか、やっぱりVBAでやるしかないのか、 また何か良いサイトをご存知でしたらご紹介ください。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ASIMOV
- ベストアンサー率41% (982/2351)
本来はVBAを使う問題だと思うんですが、後で変更が生じたときに、自分で作ったVBAで無いと、直すことが困難になると思います で、関数でやってみました 『シート1』 次のようなフォーマットを想定しています A列-社名 B列-品名 C列-数量&「合計」という文字 D列-金額&合計 A列の社名の右のセルが空いているので、作業用として使います A2に「社名」があるとして B2 =ROW() E2 =VLOOKUP("合計",$C2:$E$1000,3,0) 合計のある行のE列に =ROW()-1 と入れます 以下、社名の入っている行に、同様にコピーします 『シート2』 1行目は「社名」「品名」等の文字 2行目から次の関数等を入れます A列には、各「社名」を入れておきます BとC列は作業用に使います B2 =VLOOKUP(A2,Sheet1!$A$2:$C$1000,2,0) C2 =VLOOKUP(A2,Sheet1!$A$2:$E$1000,5,0)-B2 D2 =IF(INT(COLUMN()/2)-1>$C2,"",OFFSET(Sheet1!$A$1,$B2+INT(COLUMN()/2-2),1)) E2 =IF(INT(COLUMN()/2)-1>$C2,"",OFFSET(Sheet1!$A$1,$B2+INT(COLUMN()/2-2),3)) D列が品名、E列が金額です F列以降にはDとE列を必要なだけコピーします これで、『シート1』から『シート2』への転記は自動で行われます この様な自動化で注意しなければならないことは、いろいろな約束事をちゃんと守らないと、うまく動かないという事です この場合は、作業用のセルに忘れずに関数を入れておくとか、「合計」という文字は、必ず「合計」でなければならない (「計」や「合 計」ではだめ)とかです エラーが出れば良いのですが、場合によってはエラーにならず、間違いに気付かないまま計算されてしまう事があります そうすると、仕事上大きな支障が出ることも有りますので、注意が必要です
- ASIMOV
- ベストアンサー率41% (982/2351)
シート1では複数行の品名等がありますよね シート2ではそれをどの様に1行にするのでしょうか?
補足
質問に気付いてくれてありがとうございます! シート2では、 1行目に取引先名・品名1・金額1・品名2・金額2・・・ と、項目名を並べて2行目からデータを入れて行こうと思います。 最終的にはそれをワードで作った帳票に 差し込み印刷をしようと思います。 入力したデータは後で利用します。 すいません、拙い説明ですがよろしくお願い致します。
お礼
なんとか自分なりに作ってみました。 アドバイスありがとうございました!
補足
早速の丁寧なご回答ありがとうございます! お返事が遅れまして大変申し訳ありません。 アドバイスどおりにシートに入力をしてみます。 質問(1) 『シート1』で、 B列=品名と想定したフォーマットとのことですが、 B2に =ROW()と入力して支障ないのでしょうか? 質問(2) 『シート2』 取引先は毎月変わり件数が非常に多いので、 あらかじめ社名を入れることは大変な手間になってしまいます。 シート1の入力だけで、シート2へ転記される方法が理想です。 実際には、入力項目はもっと多いのですが、省略しています。 (取引先のエリア名や、単価・手数料等) すみません、ご面倒だと思いますがお時間のあるときに アドバイスを宜しくお願い致します。