• 締切済み

値を指定しないで、選択範囲を設定、選択範囲内で同じ値なら指定した値を返す方法

エクセルの質問です 値を指定しないで、選択範囲を設定、選択範囲内で 同じ値なら指定した値を返す方法 ・エクセルバージョン 2001 SP-1 ・OSバージョン  WIN 2000 プロフェッショナル   「ブック1」と「ブック2」があります 「ブック1」には、 ・1列目には「名前」 ・2列目には「売上」 ・3列目には「確率」 ・4列目には「前年比」 「ブック1」例 ああ 10 10% -10 いい 20 20% -20 うう 30 30% -30 .... .... 「ブック2」 ・「名前」が、バラバラに並んでいます ・項目は「名前」「売上」「確率」「前年比」で同様 「ブック2」例 ああ 10 10% -10  いい 20 20% -20 うう 30 30% -30 「名前」は、ざっと680種くらいあります 「ブック1」・「ブック2」で 「ブック1」の1列目の「名前」と 「ブック2」のバラバラにおかれている「名前」が 同じなら、「ブック2」の例のように「売上」「確率」 「前年比」の値を返したいのですが、 なにかいい方法はありますでしょうか。

みんなの回答

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

質問が長い割りに、要領を得ない質問の書き方だと思います。 良くあるパターンの質問なので、「ブック2に名前を指定し、ブック1の参照表の名前項目で検索しその同行の他項目をとってきたい」で良い。 (1)VLOOKUP(FALSE型)の問題で (2)他ブックに参照表が有る点が質問になるとすればなる点です。 (2)は下記例で可能を検証しました。 Book1のSheet2のA2:B5に 11 大島 12 小島 14 中島 15 牛島 と入れて、保存してあるとする。 開いている別ブックのB2に=VLOOKUP(A2,'C:\Documents and Settings\xxxx\My Documents\[Book1.xls]Sheet2'!$A$1:$B$10,2,FALSE) と入れて下方向に式を複写する。 A列の入力に対し、 11 大島 14 中島 12 小島 となりました。 これをつかって、ブック2の名前が、ブック1にあるかチェックします。エラーの場合は、空白をセットします。 見つかった場合はVLOOKUP関数の第3引数(列が何番目かを指定)を指定してブック1の元表の項目を持ってこれます。 ===== 関数で済む話と思うが、VBAでやるなら、VLOOKUPはApplicationのワークシートファンクションにあるので、つかうのが、総なめ法やFindメソッドでやるより、コード行数が少ないと思います。

sim_w
質問者

お礼

>imogasi 説明が下手で申し訳ありません VLOOKUPで、作成可能でした。 検索値を1つ1つ設定し、たくさん関数を作成しなければいけないのかと 思っていたので、計算式を下に複写するだけでいいとわかり解決です。 ありがとうございます。 また初歩的な質問になってしまって申し訳ないのですが 選択範囲を「固定されている行」+「セルが結合されていて離れているところ」 で設定したいのですがうまくいきません 例 スポンサーと05年度を検索範囲にしたい スポンサー  04年度      05年度 中村    00 11 22    33 44 55 のようになっています

  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.1

VBからExcelを操作するのですよね? Excel単体でのお話なら失礼ですが板違いです。 案1(だけ) ADOを使って「名前」でブック1とブック2を紐付け。 ブック2の「売上」「確率」「前年比」をSELECTするとか

関連するQ&A