• 締切済み

エクセルについて

エクセルについて質問があります。 シート1のカレンダーの表に、シート2-7のHのセルに日付を記入した際、シート2-7のDセルの内容を反映させたいのですがどの関数を使えば反映させることができるか教えてください。シート2-7の表にはセルを結合させた部分がいくつかあります。どうぞよろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

一読して判りににくい質問。 ーー 書き直すと シート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で隣列にヅラして情報をセットなどにもエスカレートするのでは。

happy1111
質問者

お礼

ご回答ありがとうございました。 関数で解決できる問題だと思っていました。 VBAは昔少し習ったことはあるのですが、はっきり覚えていないので 勉強します。 もう少し考えて表を練りなおします。 どうもありがとうございました。

関連するQ&A

  • エクセル VLOOP関数

    エクセル初心者です。 エクセル2003を練習中なのですが 今、下画像の上段のようなデータのシートを作成しました。 シートは左の日付を3行セル結合しています。 このシートのデータを、画像下段の表のように 関数で表引きしたいのです。 下段の表は、左の日付を2行セル結合しています。 関数(VLOOPUP関数とINDEX関数)の使い方が、今一つ分かりませんでした。 どんな数式を入力していけばいいのでしょうか。 お願いします。

  • 【エクセル】シート間で反映させたいのですが、結合されたセルがあるため困っています。

    お世話になります。 あまりエクセルに詳しくないのですが、データをエクセルで表にまとめなくてはならなくなりました。 データは複数シートでまとめています。 Sheet1にすべてのもととなる名簿をまとめ、このシートを更新すると他のシートにも自動的に反映するようにしたいと考えています。 その方法として、「=Sheet1!A1」などと入力して反映させようとしていたのですが、複数あるシートのうち何枚かは反映させたい部分がセルの結合されており、上記のようにするとひとつ飛ばしに反映されてしまいます。 例: 【sheet1】 1 Aさん 2 Bさん 3 Cさん 4 Dさん 5 Eさん 6 Fさん 【sheet2】 1   Aさん 2 3   Cさん 4 5   Eさん 6 わかりにくいですが、このような感じです。 sheet1を無理やりセルの結合させることも考えたのですが、私以外の者も表を扱うこととなるためなるべくシンプルにしたいと思い断念しました…。 セルの結合はそのままで、Sheet1に入力した内容を他のシートに反映させる方法はありますでしょうか? 似たような質問も検索してみたのですが、関数?など複雑なものが多く、よく理解できませんでした。(平均値や標準偏差など簡単な計算はしたことがあるのですが、複雑なものは未経験です。) わがままを言って申し訳ございません。 勉強不足でありご迷惑おかけしますが、何卒よろしくお願いいたします。

  • エクセル、同じ行の別の列の文字列を抽出する関数

    エクセル2010です。 例えば、図の上の表のように、担当ごとにある仕事をした日付を記入していく表があるとします。 そこに記入していくと、同時に別のカレンダー(図の下の表)に、日毎に誰が仕事をしたかまとめて書き出すような書類を作ろうとしてします。 日付を検索条件にして、その日付が書かれている同じ行のA列にあるセルの文字列を、ヒットするものだけ抽出して書き出す、という仕組みです。 カレンダーの日付はあらかじめ記入しているものとします。 こういう場合、どんな関数を使えばよいのでしょうか? 「この関数を使えばいい」というヒントだけでも結構です。どうぞよろしくお願いします。

  • エクセルで番号入力で別シートへ記入

    はじめて質問します。エクセル2000で簡単な工程表を作成しようと思っています。エクセル素人ですが、内容は シート1のB4~C4結合セル内~下に注文番号、D4~G4結合セル内~下に現場名、H4~L4結合セル内に工事店、以下設計担当者、完成予定日、等必要内容を記入、AA4~CC4結合セル内~下に納期日を記入します。行いたいのは、シート2のB4~C4に該当する注文番号を記入するとシート1の現場名、設計担当者、完成予定日等を同じセル内へ記入するようにしたいです。シート1のB4~C4結合セル内~下の注文番号は工事が完成すると削除し(一応、行削除で)、新たに挿入で注文番号、必要事項を記入します。 簡単に言えば、シート2に必要な時に注文番号を記入すると、その注文番号に関係する内容を自動で記入し、印刷をしたいです。OSはXPです。 ご教授よろしくお願いいたします。

  • Excelの参照について。

    こちらでは初めて質問させてもらいます。マクロ初心者です。長くなりますが携帯からなので画像貼れずにすいません。 vistaで2007使用です。 Sheet1に備品一覧表(結合セルなしで1行に備品ひとつ分が15列で400行くらい)があり、Sheet2に個表(空欄で枠のみの表で横に3品、縦に3品の9品分を1ページに印刷できるよう設定)を作成したいです。 Sheet2はSheet1の1行の中から一部を抽出して作製したい様式の違う表です。 例えばSheet1のA1がSheet2のA1からC1を結合したセルに、Sheet1のD1がSheet2のB2に、Sheet1のN1がSheet2のC3に…など 1つ目の参照が終わったら2つ目はSheet1のA2がSheet2のD1からF1を結合したセルに、Sheet1のD2がSheet2のE2に、Sheet1のN2がSheet2のF3に…という具合で もう1つ分右にいってから 4つ目は1つ目の下に移動しSheet1のA4がSheet2のA13からC13を結合したセルに、Sheet1のD4がSheet2のB14に、Sheet1のN4がSheet2のC15に…という具合で400行分参照するようにしたいのです。 Sheet2の各セルに一つ一つ参照を設定していくのも大変なので、Sheet1の必要なセルを参照してSheet2の各セル(結合セルあり)に表示させるマクロをつくりました。 今後Sheet1で変更したいのでコピー貼り付けでは都合がよくありません。いろいろ参考にさせてもらってヘルプで意味を調べながら作ったのですが、下記のコードでSheet1に文字が入っているセルの参照はできましたが、Sheet1に関数を入れているセルの参照の部分がうまくいきません。(関数が表示されます) Sheets(2).Select Cells(x, y).Select ActiveCell.FormulaR1C1 = "=Sheet1!R[" & CStr(i) & "]C[" & CStr(j) & "]" Sheet1で使った関数はこれです。 =IF(M10=1111111,"不明","H"&RIGHT(M10,6)) Sheet1のM列には購入日を数値化した七桁の数字(例えば4210310はH21.3.10のこと)が入っていて、N列に関数でH210310(ホントはH21.3.10としたいができませんでした。)と表示させそれをSheet2で参照させようと考えました。 文章表現がわかりにくいところがあると思いますし、マクロ初心者のため簡単なところが間違っているのかもしれませんが自分で解決できないのです。どなたかお助け下さい。

  • エクセル 1/0

    エクセルで表をつくりました。 シート1に表を作って、シート2にそれを別の形式で表示させようとしています。(=Sheet1!D45のように) そこで質問ですが、シート1の表に日付を入れるセルがありまして、そのセルが空欄の場合があります。 その時、シート2の日付を表示させるセルが、1/0と表示されます。 それを表示させないためには、どうしたらよいでしょうか。 書式設定からユーザー設定でいけるんでしょうか? その場合何を入れればよいでしょうか。 教えてください。

  • 【できれば至急で】エクセル関数の式で教えてください

    画像では、1つのシートに(シート1)(シート2)と記載していますが、実際は、別々のシートになります。 シート1に画像上記のような集計表があり、日々更新をしているのですが、その時に自動的にシート2にある内容が入力されるような関数が入っています。ただ、2010年は問題なく反映されていたのですが、2011年になり入金日を「例:2011/1/4」と入力をすると、シート2の日付部分には「1/0」と表示され、「シート1」の入金日が過去未入力のものが反映されてしまいます。シート1の入金日に「例:2011/1/4」と入力したら、自動でシート2の表が完成するような式を入れるにはどのようにしたら良いのでしょうか?実際に、2010年12月末まで問題なく使われていた関数を下へ書き出します。ちなみに、シート1の入金日は、2010年、2011年が区別されて入力しています。 (シート1) H2には、 =IF(AND(F2<>"",MONTH(G2)=シート2!$A$1),G2+ROW()/1000,"") (シート2) B3セルには、 =IF($B$1="","",IF(ISERROR(INDEX(Sheet1!G:G,MATCH(SMALL(Sheet1!H:H,ROW(B1)),Sheet1!H:H,0))),"",INDEX(Sheet1!G:G,MATCH(SMALL(Sheet1!H:H,ROW(B1)),Sheet1!H:H,0)))) C3セルには、 =IF($B3="","",INDEX(Sheet1!D:D,MATCH(SMALL(Sheet1!$H:$H,ROW(B1)),Sheet1!$H:$H,0))) D3セルには、 =IF($B3="","",INDEX(Sheet1!F:F,MATCH(SMALL(Sheet1!$H:$H,ROW(G1)),Sheet1!$H:$H,0))) の数式が入っています。 12/1~12/31まではシート2の表が反映されていたのですが、シート2のB1に「1月」を入力したところ、画像のように、シート1で入金日が空白(未入金状態)の場合も、シート2に反映されてしまいました。

  • EXcelの関数の1つの数値を一括で変換する方法

    Excelにて次のような関数を作りました。 {=SUM(IF(入出庫管理!$C$5:$C$153=1,IF(入出庫管理!$D$5:$D$153=1,入出庫管理!$G$5:$G$153,0),0))} 入出庫管理表なるものを作ってそのシートに入力した数値をカレンダーに反映させるものです。 入出庫管理!$C$5:$C$153=1は製品番号、入出庫管理!$D$5:$D$153=1は日付、入出庫管理!$G$5:$G$153,0),0は入庫数です。ここでセル一つ一つに入力するのが面倒なので一月分のセルに最初に記述した関数をコピーした後、製品番号や日付を同時に変換する方法は無いでしょうか?ご教授お願い致します。

  • エクセルの関数について

    エクセルの関数について困っております。 関数については、詳しくありません。お力をおかし下さい。 添付にある図の、sheet1 のリンゴ ミカン ブドウ を sheet2 の別のセルに、リンゴ.ミカン.ブドウと入力した際、その下に記入してある11111111111111 の数字を、同じように反映する為には、sheet2 のリンゴ等の文字の下には、どの様な関数を入れればよいですか? 関数でそこまで出来るのでしょうか? よろしくお願いします。  

  • エクセルの質問です。

    エクセルの質問です。(エクセル2003) 6桁の数値(例えば120821)を、別のシートのセルにVLOOK関数で読み込んだ時 そのセルに日付(H24.8.21)として表示出来るようにしたいのですが、 方法はありますか?

専門家に質問してみよう