- 締切済み
エクセルについて
エクセルについて質問があります。 シート1のカレンダーの表に、シート2-7のHのセルに日付を記入した際、シート2-7のDセルの内容を反映させたいのですがどの関数を使えば反映させることができるか教えてください。シート2-7の表にはセルを結合させた部分がいくつかあります。どうぞよろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
一読して判りににくい質問。 ーー 書き直すと シート2、シート3(質問の例は2つ3つで十分)の H列のどこの行でも日付を入力すると、 入力したシートのセルとの同行(これは記述が大切)D列(Dセルの表現X)の値を、 シート1の日付の列で、入力した日付と同じ日付行を探して隣列に(?)でも、(入力したシートの同行D列の値を持って来たい。 ということかな ーー 何でもエクセルで関数で出来ると思わないこと。少し経験を積めば どういう場合が関数で難しいかわかる。 (1)関数は持ってくる(FROM・TO)のTo(シート1)のセルに式を入れる。(大基本原則) (2)しかしシート1のあるセル(日付の隣列)を中心にして考えると、シート2なりのどのセルから値を持ってくるか不定でわからない。シートも2-7まであるので入力されるまで、シート名も決まらない。普通では式を書きようが無い。 ーー こういうタイプの課題は関数では不得手か不可能。 == 言いたいことはこういうのはVBAで無いと出来ない。 A。入力したこと B。どのシートのどのセルに入力したか を教えてくれる仕組みがVBAならある(イベントを捉えるという) そして好きなセル(シート1でも)に値をセットすることがVBAならできる。シート2などから、シート1にデータを投げるイメージが出来る。 だから質問の課題はできる。 しかしシート1に対し入ってくるのがシート2-7と多数なのは 余り質問にも出たこと無い。イベントはシート単位が多いが、それなりに繰り返しの設定が必要。またはThisWorkbookのWorkbook_SheetChangeで捉えられるかも知れない。 ーーー 質問者はVBAは多分未経験・少経験だろう。だから勉強するまで課題はお預けせざるを得ないと思う。 ーーー もともと質問者の課題を解決する構想に問題(背伸び)があると思う。 1日とか入力が終ってから、シート2-7をシート1に反映させる 方がVBAでもやりやすい。 シート2-7で同じ日を指定することは無いはず無いと思うが、すると後の方はシート1で隣列にヅラして情報をセットなどにもエスカレートするのでは。
お礼
ご回答ありがとうございました。 関数で解決できる問題だと思っていました。 VBAは昔少し習ったことはあるのですが、はっきり覚えていないので 勉強します。 もう少し考えて表を練りなおします。 どうもありがとうございました。