質問: excelのデータ抽出?検索?についておしえてください。 excelのデータ抽出?検索?についておしえてください。 エクセル2003で sheet1に次のようなデータがあります。 a列 b列 c列 d列 e列 ・・・ 1 組 番号 氏名 古典 現文 ・・・ 2 1 1 青木 優 3 1 2 池田 洋子 4 1 3 植村 美紀 ・ ・ sheet2には1組の成績が sheet3には2組の成績が入っています。 クラスによって科目が違います。 この「氏名」と1行目の「科目名」が一致するデータを 他のシートから読み出してくる関数がありませんでしょうか 青木さんの古典を1組のシートから読み出すといった感じです。 説明がへたで 申し訳ないのですが うまく検索ができなくて困っています。 ぜひ くわしいかた教えてください。 どうぞ よろしくおねがいします。
回答: こんばんは! すでに回答は出ていますので、参考程度で・・・ 当方使用のexcel2003での方法になります。 ↓の画像で説明させていただきます。 sheet1に数式を入力する前に一手間・・・いや、二手間かけています。 各組のデータは科目が10科目・生徒数が50名まで対応できるようにしてみました。 まず、1組のsheet2のd2~m52セルを範囲指定 → メニュー → 挿入 → 名前 → 定義 から 名前欄に _1 と名前定義します。 (数値が頭に入るとたぶん名前定義できないような気がしたので、とりあえずアンダーバーを入れておきます) 同じく、sheet2の氏名欄のc2~c52セルを範囲指定し、 名前定義で _1氏名 と名前定義 sheet2の科目のd1~m1セルを範囲指定し 同様に、_1科目 と名前定義 以上の操作を各組全て名前定義づけしておきます。 最後にsheet1のd2セルに =if(or($c2="",iserror(index(indirect("_"&$a2),match($c2,indirect("_"&$a2&"氏名"),0),match(d$1,indirect("_"&$a2&"科目"),0)))),"",index(indirect("_"&$a2),match($c2,indirect("_"&$a2&"氏名"),0),match(d$1,indirect("_"&$a2&"科目"),0))) という数式を入れ、オートフィルで列方向と行方向にコピーすると 画像のような感じになります。 以上、長々と書きましたが、 参考になれば幸いです。 的外れなら読み流してくださいね。m(__)m