• ベストアンサー

複数のエクセルシートからの検索

社員住所録が会社ごとに別シートに作成されている状態で、任意の会社(シート)の任意の氏名とか電話番号をキーにして個人情報(一行分)を検索(取り出し)する場合の関数の使い方を教えて下さい。 住所録の項目は左から下記の順で各セルに入っています。 『社員番号・氏名・〒・住所・電話番号・生年月日』 以上、宜しくお願いします。

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

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

関数でこの程度は出来ると言うサンプル例を上げます。 (データ:Sheet1を関東工業にシート名変更) (A列) (B列) (C列) 氏名 部署 役職 上野 秘書 係長 中野 購買 課長代理 野田 総務 課長 下野 企画 部長 村野 厚生 部長 川野 総務 室長 山野 人事 主任 (データ:Sheet2を阪神産業にシート名変更) 氏名 部署 役職 植田 総務 係長 半田 人事 課長 大田 企画 課長代理 下田 厚生 部長 木村 購買 主任 上村 総務 部長 中村 秘書 室長 (Sheet3に) A1に会社名(例、関東工業) B1に氏名(例、野田)をいれる。 (A1・B1以外ならどこでも良いが) A3、B3、C3にそれぞれ関数式 =OFFSET(INDIRECT($A$1&"!$A$1"),MATCH($B$1,INDIRECT($A$1&"!$A$1:$A$10"),0)-1,0) =OFFSET(INDIRECT($A$1&"!$A$1"),MATCH($B$1,INDIRECT($A$1&"!$A$1:$A$10"),0)-1,1) =OFFSET(INDIRECT($A$1&"!$A$1"),MATCH($B$1,INDIRECT($A$1&"!$A$1:$A$10"),0)-1,2) といれる(最後の引数が0->1->2と変化するだけ。項目数が増えても、関数式は複写して一部手直しで出きるということ。)。 A1,B1に会社名と氏名を入れると、即座にA3:C3に 氏名 部署 役職の内容が出ます。 しかし見つからない時のエラー対処や同姓同名の存在に対処するなど、満足の行くものにするには、関数では複雑になりすぎて、力不足でしょう。 本質問は、質問を記述するのは簡単ですが、ミニ・(コンピュタ)システムとも言えなくもない内容であって本格的にやるのは (1)エクセルVBA (2)アクセス (3)アクセスVBA を使うべきと思います。

gnamasute1
質問者

お礼

お陰様で大変参考になり、ありがとうございました。 又、素早いご回答にビックリ・感激です。 今後も宜しくお願い致します。

その他の回答 (1)

  • 7_7_7
  • ベストアンサー率24% (115/469)
回答No.1

Cells.Findを使えば簡単に出来ます。 データ領域には名前の定義をしてそこを探すマクロを組めば大丈夫ですけどマクロが解らないと関数ではちょっと難しいかもしれません。

gnamasute1
質問者

お礼

アドバイス、ありがとうございます。 これから少しマクロを勉強します。

関連するQ&A