Excelデータの抽出・検索について教えてください

このQ&Aのポイント
  • Excelのデータ抽出・検索についてお伺いします。エクセル2003のシートには組、番号、氏名、科目のデータがあります。他のシートから特定条件のデータを読み出す関数は存在するのでしょうか?具体的には、氏名と科目名が一致するデータを他のシートから抽出したいです。
  • Excelのデータ抽出・検索に関して詳しく教えてください。エクセル2003のシートには組、番号、氏名、科目のデータがあります。他のシートから特定条件のデータを読み出す方法はありますか?具体的には、氏名と科目名が一致するデータを抽出したいです。
  • Excelでのデータ抽出・検索についてお聞きしたいです。エクセル2003のシートには組、番号、氏名、科目のデータがありますが、他のシートから一致するデータを取得する関数が存在するのでしょうか?具体的には、氏名と科目名が一致するデータを抽出したいです。
回答を見る
  • ベストアンサー

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組のシートから読み出すといった感じです。 説明がへたで 申し訳ないのですが うまく検索ができなくて困っています。 ぜひ くわしいかた教えてください。 どうぞ よろしくおねがいします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! すでに回答は出ていますので、参考程度で・・・ 当方使用の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

taa1031
質問者

お礼

ありがとうございます! 画像まで入れていただいて 本当にわかりやすくて助かります。 とっても参考になりました。 まだ出来ていないのでチャレンジしてみます! ありがとうございました。

その他の回答 (4)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です! たびたびごめんなさい。 前回書き忘れましたが、 名前定義する場合に _(アンダーバー)の後の数値は各組の数値で名前定義してください。 仮に2組なら _2 、 3組なら _3 ・・・のような感じです。 どうも何度も失礼しました。m(__)m

taa1031
質問者

お礼

重ねて御礼申し上げます。 本当に丁寧に教えていただいてありがとうございます。 がんばってみます。

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.3

すでに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へコピー貼付ができます。

taa1031
質問者

お礼

ご回答ありがとうございます。 理解するのに少し時間がかかりそうなので 先にお礼だけかかせていただきました。 2007になるとまた違うのですね。 とりあえず2003で試してみます。 本当に助かりました。 ありがとうございました!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばシート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)))

taa1031
質問者

お礼

ご回答ありがとうございます。 理解するのに少し時間がかかりそうなので 先にお礼だけかかせていただきました。 試してみます。 本当に助かります。 ありがとうございました!

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.1

補足をお願いします。 sheet2とsheet3のデータは、どの列にどの項目が配列されていますか? 1行目は見出し行で、明細行は2行目以降でしょうか? 読み出した成績は、sheet1のどの列に表示されるのですか?

taa1031
質問者

補足

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のその名前と科目が交差しているセルに 表示したいのです。 説明がたりなくてすみません。

関連するQ&A

  • EXCELでの検索マクロを作りたいのですが

    マクロの初心者です。氏名の検索マクロを作成したいのですが分かりません。 A列:名前 B列:郵便番号 C列:住所 と 名前等のデータを(ランダムに)入力したシート1を作成し、 シート2にシート1の「A列:名前」から性(たとえば青木)で検索して検索ボタン(マクロボタン)を押して該当データを表示させるようにしたいのですが。

  • エクセル2007 データ抽出(関数)について

    教えてください。エクセルシートにて郵便番号と住所が重複しているデータを抽出したいのです。 例)ある顧客の情報として、シート1のA列に、1から10までの新規顧客の氏名、B列には生年月日が入力されています。C列,D列は空白で、E列には全ての顧客(新規顧客を含みます)の氏名、F列には生年月日、G列には郵便番号、H列には住所が入力されています。このふたつの情報の中から、新規顧客データと全ての顧客データの氏名、生年月日が重複している顧客のみ、C列にその郵便番号、D列に住所を表示させたいのです。 OSはXP エクセル2007です。 困っています。よろしくお願いします。

  • エクセルのデータ検索&抽出作成について

    Excelの別シートでの検索と抽出について ExcelファイルでSheet1~5まで部署別の発注データで項目は下記の通りA列~G列まですべて同じになっているものがあります。 A列 B列 C列 D列 E列 F列 G列 注文番号 商品名 納品日 納品先 発注額 消費税 合計額 別シート(Sheet6)に「商品名」や「納品先」で検索する項目を作成し、その結果を表示できるようにしたいのですが何か良い方法はないでしょうか? マクロ・VBAでの作成方法もあればお願いします。 Excelのバージョンは2010です。 並べ替えとフィルター → 詳細設定 → フィルタオプションの設定 で試してみましたが、検索する商品名(納品場所)を変更してしまうと抽出されませんでした。 宜しくお願いします。

  • Excelで抽出

    初めまして。よろしくお願いします。 Excel2000を使っています。 例えば、 A列     B列   C列   D列 お客様番号  氏名   契約日  生年月日  :      :    :    : という表があるとし、データは2000件ほどあると 思ってください。 1行目から最終行までみて、 『同一氏名』&『同一契約日』&『同一生年月日』の ものを違うシートに表示させたいのですが、 こういうことってExcelで出来るのですか? 出来るのであれば是非教えてください。 質問するのは初めてなので お手柔らかに・・・m(__)m

  • エクセルデータ抽出方法を教えてください

    エクセルでのデーター抽出方法を教えてください、シート1:A1にUA1と入力し、シート2:A列にはUA1・・・・複数のデータが縦に並んでいます、シート1:A1に入力したデーターを元にシート2:A列を検索し該当するデータの抽出を行いたいです、VLOOKUPではうまく行きません教えてください

  • エクセルデータから必要な情報がどこにあるか検索したい(急ぎです!)

    うまく説明が出来ないのですが… データを入力しているエクセルシートにて、探している必要な情報がどこにあるのか検索したいのですが。 詳しく説明しますと、 A列に氏名、B列に住所、C列に年齢、等必要な情報を打ち込み、行毎に一人ずつデータを入力したエクセルシートがあります。 1シートにあたり200人分程の情報がある中から、探している対象の2~3人のデータがどの行にあるのかを探したいのですが、どの関数をどのように使ったらよいのでしょうか。 A列に漢字で入力している氏名にて抽出を行ないたいのですが…。 合計2000人分程のデータから特定の人を探さなければいけない為、手作業では全くはかどらず途方にくれています。 過去に同じような質問をされている方がいるとは思ったのですが、今回、とにかく時間がなく、過去質問を捜している暇がありません。 分かりにくい説明ではありますが、どうぞご協力をお願いします。

  • Excelでデータを抽出したい

    エクセルに詳しくないので、教えてください。 Sheet1のA列とB列に文章データがあります。このデータは2つで1セットになっています。 Sheet2には、D列部分にA列のデータが順不同であります。 このA列とD列にあるデータ同士の文章は同一のものですが、 Sheet1にあるB列のデータがSheet2にはないので、 同じB列のデータをD列の隣のE列に表示させ、 同じようにまた2つで1セットにしたいと思っていますが、方法がわかりません。 わかりにくい表現で申し訳ないのですが 教えていただけると助かります。 よろしくお願いします。

  • エクセルで検索→抽出

    お願いします。 シート(1)に次のように入力されています。 A列 B列 C列 D列 E列 → Y列 番号 県 性別 年齢 来社 1行目   1 東京 男  45 09/21  2行目   2 京都 女  33 10/07  3行目   3 福島 女  49 10/25  4行目   4 京都 男  25 12/05  5行目   5 東京 女  30 12/30  ↓ 以上のようにY列まで項目と、1110人のデータが 入ったシート(1)があります。 シート(2)に検索したい文字を入れて抽出する方法を教えてください。 例えば京都出身の人を検索したい場合↓ シート(2)の1行目にはあらかじめシート(1)の項目をコピーしておく 検索したい『京都』は「県列」の項目だから B列の2行目に『京都』と入力する。(1行目には項目) 3行目以降に検索結果↓が表示される。 2 京都 女  33 10/07  スイカ 4 京都 男  25 12/05  モモ 8 京都 女  58 05/04  りんご 12 京都 女  12 06/20  オレンジ また、年齢10~35を検索したりなどもできれば… データを入力したり検索したりするのは、パソコンに不慣れな方ですので エクセルに詳しくない人でも簡単に使用できるよう作成できればと思います。 以上、 検索項目を入力し、下の行に抽出されるような関数はありますでしょうか・・・? なければ近いものでも構いませんので教えてください。 宜しくお願い申し上げます。

  • エクセルでデータ抽出するには?

    まったくのエクセル初心者です。 エクセルで、シート1のデータの特定科目を抽出してシート2にコピーしたいのです。 シート1のデータは 5/1 消耗品    2500 5/3 水道光熱費  8000 5/5 消耗品     700 5/7 消耗品    1200 この中から消耗品と記入されている行をシート2に抽出したいのです。 マクロは全然わかりません。。簡単にできる方法は無いでしょうか?よろしくお願いします。

  • エクセルデータベースで検索

    エクセルでデータベースを作っています。 大量のデータ(全校生徒テスト成績データベース)の中から、(2009/07/01)の(5年○組)の(最低点)と(最高点)を導きたいです。 これを別シート(シート2)のC列に(最低点)を、D列に(最高点)を入れます。 以下のようにしたいです。   A列 B列   C列   D列 1 09/07/01実施テスト結果 2 5年 1組   25   90 3     2組   30   85 4     3組   15   95 ベータベースから条件に合ったものの中から、最小値を導く方法がわかりません。 セルC2からD4は関数で出来るのでしょうか? それともVBA? どなたか教えて下さい。 宜しくお願い致します。

専門家に質問してみよう