• 締切済み

エクセルの表から抽出する

エクセルで作成したデータを関数を使い抽出する方法はないでしょうか? ちなみに一行のみならば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を使えば可能でしょうか?  宜しくお願いいたします

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

該当分を抜き出し先で縦に続けて並べればよいなら、 作業列をつ買うのを許されるなら、自称imogasi方式で抜け出せます。 OKWAVEかWEBでimogasi方式で照会してもらえば、沢山質問例が出ます。 作業列を使うので#2、#3のご回答より迂遠ですが、やっているロジックは、#2・#3のお答えより理解しやすいかなと思います。INDEXとMATCH関数を使います。 ーーー 関数は本質上、該当抜き出しは不得手と思います。 ーーー VBAで、「NO」の各行を、IF文で総なめすれば、該当分は抜き出せます。 Findメソッドもあります。 関数のような、難しい式になりません。 ーー データーフィルターフィルタオプションの設定も考えてください。 別シートに抜き出せないかも知れないが。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

配列数式を使用しない方法です。 任意のシートの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)
回答No.2

シート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.1

No.の列でオートフィルタをかければいいのではないでしょうか。

nyannmage
質問者

補足

回答有難うございます 例えばオートフィルタで表示されているデータを別のシートに表示させて印刷したいのです 要するにこのデータをレポートとして別の様式で印刷したいので質問しました 現在は、単純にデータのコピー&貼り付けでやっていますが 当然手間なので・・・・ 宜しくお願い致します

関連するQ&A