- ベストアンサー
エクセル行ごと検索結果を表示したい
- エクセルで行ごと検索結果を表示したい方法について教えてください。
- エクセルの住所録で特定のキーワードを検索し、該当する行のデータを表示したいです。
- エクセル初心者ですが、行ごとの検索結果の表示方法について詳しく教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 外していたらごめんなさい。 ↓の画像で説明させていただきます。 Sheet1に作業用の列を設けています。 作業列K2セルに =IF(OR(ISNUMBER(FIND(Sheet2!$A$1,A2:D2))),ROW(A1),"") L2セルに =IF(OR(ISNUMBER(FIND(Sheet2!$A$1,F2:I2))),ROW(A1),"") これはどちらも配列数式になってしまいますので、 この画面からコピー&ペーストしただけでは正確な数値が表示されないと思います。 各セルに貼り付け後、F2キーを押す、又は貼り付けセルをダブルクリック、又は数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定してください。 数式の前後に{ }マークが入りは配列数式になります。 そして、このK2・L2セルを範囲指定し、L2セルのフィルハンドルで下へずぃ~~~!っとコピーします。 そして、Sheet2のB2セルに =IF(COUNT(Sheet1!$K$2:$K$100)<ROW(A1),"",INDEX(Sheet1!A$2:A$100,SMALL(Sheet1!$K$2:$K$100,ROW(A1)))) (これは配列数式ではありません)としてE2セルまでコピーします B2~E2を範囲指定してE2セルのフィルハンドルで下へコピーします。 同様にSheet2のG2セルに =IF(COUNT(Sheet1!$L$2:$L$100)<ROW(A1),"",INDEX(Sheet1!F$2:F$100,SMALL(Sheet1!$L$2:$L$100,ROW(A1)))) という数式を入れ、J2セルまでオートフィルでコピーした後に、下へコピーします。 これで画像のような感じになります。 元データに空白がある場合は「0」が表示されますので、 当方使用のExcel2003の場合ですが、 メニュー → ツール → オプション → 「表示タブ」で「ゼロ値」のチェックを外しています。 尚、数式はSheet1の100行目まで対応できる数式ですが、データ量によって 範囲指定の領域はアレンジしてみてください。 以上、長々と書いてしまいました。 参考になれば良いのですが、 的外れなら読み流してくださいね。m(__)m
その他の回答 (4)
- mar00
- ベストアンサー率36% (158/430)
私はExcel2003を使用していますので2003での話を させていただきます。 2007を使用していれば、聞き流してください。(同じかわからないので) オートフィルタを使ってみては? 並べ替えをしておけば、まとめて別シートへのコピーもできるので。 データ→フィルタ→オートフィルタを指定して検索したいキーワードを 指定すれば表示できると思います。
- junichihirobe
- ベストアンサー率20% (5/24)
検索する値がa列にあると仮定して 住所録のシートのj列に =IF(ISERROR(FIND(別シート!A$1,A1)),"",ROW()) を入れて、下方向にコピー。 別シートのa1セルに検索したキーワードを入れて、 b列の5行目に=INDEX(Sheet1!A:A,SMALL(住所録!J:J,ROW(A1)),1) を入れて、下方向にコピー。 c列に=VLOOKUP($B5,住所録!$A$1:$J$11,1,0)&VLOOKUP($B5,住所録!$A$1:$J$11,2,0)&VLOOKUP($B5,住所録!$A$1:$J$11,3,0)&VLOOKUP($B5,住所録!$A$1:$J$11,4,0) を入れて、下方向にコピー。 c列の式はf~iまで&でvlookupの式をつなげればよい。 以上。 あいまい検索でなければ、単純にvlookupをつなげればよいでのわ? データは昇順にしよう。
- keithin
- ベストアンサー率66% (5278/7941)
A1にデータ A2に 行 A3に 列 と記入 B1に 目的の値を記入 B2に =IF(COUNTIF(Sheet1!A:I,B1)<>1,"NA",SUMPRODUCT((Sheet1!A1:I99=B1)*ROW(Sheet1!A1:I99))) B3に =IF(COUNTIF(Sheet1!A:I,B1)<>1,"NA",FLOOR(SUMPRODUCT((Sheet1!A1:I99=B1)*COLUMN(Sheet1!A1:I99))-1,5)+1) データ1: =INDEX(Sheet1!A:I,B2,B3) データ2: =INDEX(Sheet1!A:I,B2,B3+1) データ3: =INDEX(Sheet1!A:I,B2,B3+2) データ4: =INDEX(Sheet1!A:I,B2,B3+3)
- aokii
- ベストアンサー率23% (5210/22062)
vlookup関数をお使い下さい。