• ベストアンサー

Excel関数 別のBookからの参照がうまくいきません

Book1 の4月(Sheet1の名前) に      A   B   C   D  1       4 月        2  Aさん  100   80   20  3  Bさん  200  100  100 Book2 の4月(同じくSheet名)に      A   B    1       4 月        2  Aさん  20 (Book1の4月のAさんのD2がくるようにしたい)  3  Bさん  100              つまり、Book2のA列の名前とBook1のA列の名前を対応させて、Book1の4月のD1を入力すると、Book2の4月のB2が自動的に入力されるように設定したいのです。Book2の月名を5月に変えるとBook1の5月分が参照されるようにしたいのです。 これで、わかるでしょうか? 宜しくお願いします。

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

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

#3です。シート名の変化についての扱いをやってみました。 Book2は 4月シート 4月 氏名 コード 計数 山田 a 11 木下 b 12 久保 c 13 近藤 d 14 田中 e 15 鈴木 f 16 本田 g 17 ーーーー 5月 5月 氏名 コード 計数 山田 a 111 木下 b 222 大田 d 333 中田 e 444 鈴木 f 555 本田 g 666 ーーーー 6月 6月 氏名 コード 計数 浦田 a 220 木下 b 330 大田 d 440 中田 e 550 栗木 f 660 本田 g 770 ====== Book1の 4月(名前と月を入れておく)他は関数の結果 4月 氏名 コード 計数 田中 e 15 本田 g 17 川田 鈴木 f 16 北側 ーーーーーー 5月(名前と月を入れておく)他は関数の結果 5月 氏名 コード 計数 山田 a 111 大木 木下 b 222 中田 e 444 大田 d 333 本田 g 666 ーーーー 6月(名前と月を入れておく)他は関数の結果 6月 氏名 コード 計数 浦田 a 220 中田 e 550 大田 d 440 === 元になる関数式は Book14月のD3の関数 =IF(ISERROR(VLOOKUP($A3,INDIRECT("'[Book2.xls]"&$C$1&"'!$A$3:$C$100"),COLUMN()-2,FALSE)),"",VLOOKUP($A3,INDIRECT("'[Book2.xls]"&$C$1&"'!$A$3:$C$100"),COLUMN()-2,FALSE)) 縦方向、横方向に式を複写する。 5月のD3には、4月のD3をコピーして貼り付け。 縦方向、横方向に式を複写する。 6月のD3には、4月のD3をコピーして貼り付け。 縦方向、横方向に式を複写する。 結果は上記例の通り。

hanasan
質問者

お礼

細かく教えていただいて、ありがとうございました。ひとつひとつの関数はなんとなくわかるのですが組み合わせて使うのって難しいです。ちゃんとできました。ほんとにありがとうございました。 また、是非お願いします。

その他の回答 (3)

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

#2です。問題は別にありますが、そこまでの中途の回答 Book2(既存、同一フォルダ内)のA1:C8 氏名 コード 計数 山田 a 11 木下 b 12 久保 c 13 近藤 d 14 田中 e 15 鈴木 f 16 本田 g 17 Sheet1の2:A6に 田中 本田 川田 鈴木 北側 ・・ と有るとして D2に=VLOOKUP($A2,[Book2.xls]Sheet1!$A$2:$C$100,COLUMN()-2,FALSE) と入れて、E2に式複写。D2:E2を下方向に式を複写。 結果は新規客はエラーが出るので、式を =IF(ISERROR(VLOOKUP($A2,[Book2.xls]Sheet1!$A$2:$C$100,COLUMN()-2,FALSE)),"",VLOOKUP($A2,[Book2.xls]Sheet1!$A$2:$C$100,COLUMN()-2,FALSE)) に改良する。 D2をE2に式複写。 そしてD2:E2を範囲指定して 下へ複写する。 結果 田中 e 15 本田 g 17 川田 鈴木 f 16 北側 となる。 他ブックの参照は http://www.asahi-net.or.jp/~ef2o-inue/shiki/sub03_020.html の「他のシート、他ブックを参照する。」など参考に。 時間が無いので、もうひとつの問題は(4->5月)別の機会があれば。

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

一読しただけでは問題のポイントが頭に入らない表現です。 結局別のセルに式を複写したとき、適当にセルがスライドしてくれるのは、同一シートの連続セルだけです。 本件はそういう意味でシートさらにはブックが変わるので不可能です。 相当技巧を凝らさないといけない。 INDIRECT関数の応用ぐらいしか無いかなと思う。 さて (1)Book1(例えば今年)4月のAさんは指定する(入力済み)として Book1(今年)4月 ↑ Book2(去年)4月 のどれが対応するのか、 氏名は今年と去年で出現者は (A)同じで無い+ (B)同じとして順序は同じか+ (C)同じでなければ順序は違うことになるが、 どうですか。 (2)B、C、D列の計数は、式複写で持ってくるのか 結局去年の同月シートをコピーしてくるのと、どう違うものを望んでいるのか。 質問文は 「去年のシート(Book2の同月名のシートと、今年のシートでは得意先の異動があり、既存先は去年のシートの得意先データを、名前で採ってきたい。行列データ構成は同じです」で済むのでは。

hanasan
質問者

補足

説明がへたで済みません。 「去年のシート(Book2の同月名のシートと、今年のシートでは得意先の異動があり、既存先は去年のシートの得意先データを、名前で採ってきたい。行列データ構成は同じです」 まさにそうです。ただ、行列構成は違うので、Book2のB2には、Book1のD2がくるようにしたいのです。 宜しくお願いします。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

回答待ちで、たぶん補足したいのでは? >Book1の4月のD1を入力すると、Book2の4月のB2が自動的に入力・・・・ Book1の B1には「4月」が入っていますが C1,D1,・・・・・には、何が入力されているのでしょう? ___________________________________ Book2のB1に月(4月、5月というように)を入力すれば、Book1のその月の列データが 名前に対応して表示する表を作りたいのですが、 どのような関数式を入れたら、Book2のような表が作れるでしょう?  ___________________________________ ということを、聞きたいのでしょうか?

hanasan
質問者

補足

説明がうまくなくて済みません。 Boo1のC1、C2は何も入力しません。1行は、題目でB1は4でC1が月でもいいかなと思います。 「Book2のB1に月(4月、5月というように)を入力すれば、Book1のその月の列データが 名前に対応して表示する表を作りたいのですが、 どのような関数式を入れたら、Book2のような表が作れるでしょう?」 まさにそうです。宜しくお願いします。

関連するQ&A