- 締切済み
こんなことは初心者の私には難しすぎでしょうか?
営業成績を管理するBOOKをエクセルで作っています。 Sheet1!にはその日一日分の成績を入力する表を作りました。(内容は件数、金額、担当者、販売した商品です。そのうち担当者及び販売した商品はコンボボックスを作って反転させます。) Sheet2!にはSheet1!に入力したものが当該月のみ反映させるようにしたいのですが、その成績は当然1日何件あるかわからないので、例えば9月1日に3件あったらSheet2!の1行目には9月1日の1件目、2行目には9月1日の2件目、3行目には9月1日の3件目、9月2日には何もなく、9月3日に1件あった場合にはSheet2!の4行目に入力するように組みたいのです。 この場合IF関数とTODAY関数とVLOOKUP関数とマクロを使えばなんとかなりそうだなと思っているんですけどうまくいきません… 説明がへたですいません… どうぞよろしくおねがいします。 あともしこれから勉強するときに「こんな本がいいよ」とかお勧めの本があったら教えてください。(とくに関数、VBA、マクロ関係がよくわかるもので)
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問で良く読み取れなくて、下記のどれでしょう。 (1)Sheet1は1日ごとにSheetを変えているのですか。次の日分は別シート? (2)それとも順次下の行へ、前日分の次に追加しているのですか。そして月を越してもSheet1に記録し続けているのですか。 (3)1日ごとにSheet1を、Sheet2に転記して、Sheet1は消しているのですか。 (2)であるとすると、Sheet2は、今月だけが載っているのが特徴ですか。 基本的に関数式は「自分の」セルに「値」をセットするもので、Aセルに式を入れて、Bセルに自分の値やその他の値を持って行け(セット出来)ない。(Bセルの値をAセルの条件式、演算の項に使えるが。)Sheet1のセルからSheet2への自分のコピー先を指定(選べ)出来ない。Sheet2のセル側で、場合によって変わるSheet1のセルを持ってくるのは式が複雑になったり、不可能です。集計するだけなら、データベース関数などは、ダイナミックですが、セル・行・列をコピーや移動(抜き出し)は念頭にない。例外的にフィルタがあるが、今のところ別シートへ抜粋分をセットできない。 結論として「VBAでプログラムするしか方法がない」のではというのが(私の十分ではない)知識からの結論です。ただ本件の場合Sheet1からSheet2への 転記のきっかけは何にすれば良いか、月初日よりの分を すべて転記しなおすべきか迷います。前々日分の後日に間違い発見して訂正などもあるでしょうし。
- mismaru
- ベストアンサー率35% (7/20)
私がいつもお世話になっているページです。 ご参考になさってください。 ずばりの回答ではなく申し訳ありません。
- 参考URL:
- http://www2.odn.ne.jp/excel/
お礼
このページは結構便利ですよね。ありがとうございます。参考にしてみます。
補足
(1)Sheet1はSheetは変えていません。私がかんがえているのはSheet1に成績があがった時点で内容を入力し、入力しおわったらマクロボタンを押すとSheet2のすでに内容が入力されている行の下の行に入力される。Sheet2に内容が入力された時点でSheet1に入力されていた内容は消える。 (3)そうです!そういうことです。 そうなんですよね。関数って自分のセルに値をセットするものなんですよね… やってるうちに気づきました。そのとき私のやろうとしてることは関数じゃ無理かなと思いました。 >VBAですよね。VBAはまったくわからないので本を買って勉強してから挑戦しようかな…