- ベストアンサー
Excelデータの抽出・検索について教えてください
- Excelのデータ抽出・検索についてお伺いします。エクセル2003のシートには組、番号、氏名、科目のデータがあります。他のシートから特定条件のデータを読み出す関数は存在するのでしょうか?具体的には、氏名と科目名が一致するデータを他のシートから抽出したいです。
- Excelのデータ抽出・検索に関して詳しく教えてください。エクセル2003のシートには組、番号、氏名、科目のデータがあります。他のシートから特定条件のデータを読み出す方法はありますか?具体的には、氏名と科目名が一致するデータを抽出したいです。
- Excelでのデータ抽出・検索についてお聞きしたいです。エクセル2003のシートには組、番号、氏名、科目のデータがありますが、他のシートから一致するデータを取得する関数が存在するのでしょうか?具体的には、氏名と科目名が一致するデータを抽出したいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! すでに回答は出ていますので、参考程度で・・・ 当方使用の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
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
No.4です! たびたびごめんなさい。 前回書き忘れましたが、 名前定義する場合に _(アンダーバー)の後の数値は各組の数値で名前定義してください。 仮に2組なら _2 、 3組なら _3 ・・・のような感じです。 どうも何度も失礼しました。m(__)m
お礼
重ねて御礼申し上げます。 本当に丁寧に教えていただいてありがとうございます。 がんばってみます。
- minosennin
- ベストアンサー率71% (1366/1910)
すでにKURUMITOさんからご回答があり解決済みかと思いますが、補足をお願いした立場からの一例です。 sheet1のd2につぎの式を入力し、縦横に必要数ドラッグ =IF(ISNA(INDEX(INDIRECT("Sheet"&($A2+1)&"!$D$2:$M$51"),MATCH($B2,INDIRECT("Sheet"&($A2+1)&"!$B$2:$B$51"),0),MATCH(D$1,INDIRECT("Sheet"&($A2+1)&"!$D$1:$M$1"),0))),"",INDEX(INDIRECT("Sheet"&($A2+1)&"!$D$2:$M$51"),MATCH($B2,INDIRECT("Sheet"&($A2+1)&"!$B$2:$B$51"),0),MATCH(D$1,INDIRECT("Sheet"&($A2+1)&"!$D$1:$M$1"),0))) 科目数10個、各クラス人員50名まで対応していますので、必要により式の数値等を変更してください。 なお。2007であれば下記のようにIFERROR関数で少しスッキリできるのですが・・ =IFERROR(INDEX(INDIRECT("Sheet"&($A2+1)&"!$D$2:$M$51"),MATCH($B2,INDIRECT("Sheet"&($A2+1)&"!$B$2:$B$51"),0),MATCH(J$1,INDIRECT("Sheet"&($A2+1)&"!$D$1:$M$1"),0)),"") なお、関数式は、この画面からEXCELへコピー貼付ができます。
お礼
ご回答ありがとうございます。 理解するのに少し時間がかかりそうなので 先にお礼だけかかせていただきました。 2007になるとまた違うのですね。 とりあえず2003で試してみます。 本当に助かりました。 ありがとうございました!
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばシート2やシート3では1行目に項目名があり、A1セルには番号、B1セルには氏名、C1セルから横の列には科目名が並んでいるとします。 そこでシート1ですがお示しの表があるとして、氏名で検索しますと同じ組でも同じ氏名の人がいる場合もありますので、検索にはここでは番号を使うことにします。また、科目についてはX1セルまで使用できることにします。 シート1のD2セルには次の式を入力し、右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR($B2="",D$1="",COUNTIF(INDIRECT("Sheet"&($A2+1)&"!A:A"),$B2)=0,COUNTIF(INDIRECT("Sheet"&($A2+1)&"!1:1"),D$1)=0),"",INDEX(INDIRECT("Sheet"&($A2+1)&"!A:X"),MATCH($B2,INDIRECT("Sheet"&($A2+1)&"!A:A"),0),MATCH(D$1,INDIRECT("Sheet"&($A2+1)&"!1:1"),0)))
お礼
ご回答ありがとうございます。 理解するのに少し時間がかかりそうなので 先にお礼だけかかせていただきました。 試してみます。 本当に助かります。 ありがとうございました!
- minosennin
- ベストアンサー率71% (1366/1910)
補足をお願いします。 sheet2とsheet3のデータは、どの列にどの項目が配列されていますか? 1行目は見出し行で、明細行は2行目以降でしょうか? 読み出した成績は、sheet1のどの列に表示されるのですか?
補足
sheet2には A列 B列 C列 D列 E列 ・・・ 1 組 番号 氏名 古典 現社 ・・・ 2 1 1 青木 優 56 77 3 1 2 池田 洋子 78 66 4 1 3 植村 美紀 80 56 ・ ・ sheet3には A列 B列 C列 D列 E列 ・・・ 1 組 番号 氏名 現文 世界史 ・・・ 2 2 1 佐伯 力 86 77 3 2 2 志垣 洋 58 66 4 2 3 末武 剛 70 86 ・ ・ といった漢字に並んでいます。 クラスによって 教科がまちまちです。 それをsheet1のその名前と科目が交差しているセルに 表示したいのです。 説明がたりなくてすみません。
お礼
ありがとうございます! 画像まで入れていただいて 本当にわかりやすくて助かります。 とっても参考になりました。 まだ出来ていないのでチャレンジしてみます! ありがとうございました。