- 締切済み
エクセルの表から抽出する
エクセルで作成したデータを関数を使い抽出する方法はないでしょうか? ちなみに一行のみならばVLOOKUPでいいのですが・・・ 例 No. 日付 金額 125 1/1 1,500 8H 125 1/11 1,500 7.5H 125 1/13 2.200 6H 等のデーターNo.125と入れると 全ての データが表示される MACHやINDEXを使えば可能でしょうか? 宜しくお願いいたします
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
該当分を抜き出し先で縦に続けて並べればよいなら、 作業列をつ買うのを許されるなら、自称imogasi方式で抜け出せます。 OKWAVEかWEBでimogasi方式で照会してもらえば、沢山質問例が出ます。 作業列を使うので#2、#3のご回答より迂遠ですが、やっているロジックは、#2・#3のお答えより理解しやすいかなと思います。INDEXとMATCH関数を使います。 ーーー 関数は本質上、該当抜き出しは不得手と思います。 ーーー VBAで、「NO」の各行を、IF文で総なめすれば、該当分は抜き出せます。 Findメソッドもあります。 関数のような、難しい式になりません。 ーー データーフィルターフィルタオプションの設定も考えてください。 別シートに抜き出せないかも知れないが。
- zap35
- ベストアンサー率44% (1383/3079)
配列数式を使用しない方法です。 任意のシートのA1に「125」を入力して、B1に以下の式を入れます。 B2以降の下のセルと、右側(C~E列)にもコピーしてください。 =IF(COUNTIF(Sheet1!$A:$A,$A$1)-ROW()+1>0,INDEX(Sheet1!B$1:B$350,SUMPRODUCT(LARGE((Sheet1!$A$2:$A$350=$A$1)*ROW(Sheet1!$A$2:$A$350),COUNTIF(Sheet1!$A:$A,$A$1)-ROW()+1))),"") 元データの範囲は2行目~350行目としています。必要に応じて変更してください。
- mu2011
- ベストアンサー率38% (1910/4994)
シート3にデータリスト(仮に100行)、シート1を表示リスト、表示リストのA1セルにNOを入力するとします。 表示シートの任意セルに次の数式を設定し、縦横に必要分コピーして下さい。 この数式は、配列数式の為、shift+ctrl+enterキーを同時押下して下さい。 =IF(ROW(A1)-1<COUNTIF(Sheet3!$A$1:$A$100,$A$1),INDEX(Sheet3!A$1:A$100,SMALL(IF(Sheet3!$A$1:$A$100=$A$1,ROW(Sheet3!$A$1:$A$100),999),ROW($A1))),"")
- ham_kamo
- ベストアンサー率55% (659/1197)
No.の列でオートフィルタをかければいいのではないでしょうか。
補足
回答有難うございます 例えばオートフィルタで表示されているデータを別のシートに表示させて印刷したいのです 要するにこのデータをレポートとして別の様式で印刷したいので質問しました 現在は、単純にデータのコピー&貼り付けでやっていますが 当然手間なので・・・・ 宜しくお願い致します