-PR-
nyannmage

エクセルで作成したデータを関数を使い抽出する方法はないでしょうか?
ちなみに一行のみならば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
  • 気になる数0
  • Aみんなの回答(全4件)

    回答 (全4件)

    • 2007-01-15 16:20:29
    • 回答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: ...続きを読む
    シート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))),"")
    • ありがとう数0
    • 2007-01-15 23:18:46
    • 回答No.4
    該当分を抜き出し先で縦に続けて並べればよいなら、 作業列をつ買うのを許されるなら、自称imogasi方式で抜け出せます。 OKWAVEかWEBでimogasi方式で照会してもらえば、沢山質問例が出ます。 作業列を使うので#2、#3のご回答より迂遠ですが、やっているロジックは、#2・#3のお答えより理解しやすいかなと思います。INDEXとMATCH関数を使います。 ーーー 関数は本質上、該当抜き出 ...続きを読む
    該当分を抜き出し先で縦に続けて並べればよいなら、
    作業列をつ買うのを許されるなら、自称imogasi方式で抜け出せます。
    OKWAVEかWEBでimogasi方式で照会してもらえば、沢山質問例が出ます。
    作業列を使うので#2、#3のご回答より迂遠ですが、やっているロジックは、#2・#3のお答えより理解しやすいかなと思います。INDEXとMATCH関数を使います。
    ーーー
    関数は本質上、該当抜き出しは不得手と思います。
    ーーー
    VBAで、「NO」の各行を、IF文で総なめすれば、該当分は抜き出せます。
    Findメソッドもあります。
    関数のような、難しい式になりません。
    ーー
    データーフィルターフィルタオプションの設定も考えてください。
    別シートに抜き出せないかも知れないが。
    • ありがとう数0
    • 2007-01-15 15:38:42
    • 回答No.1
    No.の列でオートフィルタをかければいいのではないでしょうか。 ...続きを読む
    No.の列でオートフィルタをかければいいのではないでしょうか。
    補足コメント
    回答有難うございます

    例えばオートフィルタで表示されているデータを別のシートに表示させて印刷したいのです

    要するにこのデータをレポートとして別の様式で印刷したいので質問しました
    現在は、単純にデータのコピー&貼り付けでやっていますが
    当然手間なので・・・・
    宜しくお願い致します
    投稿日時 - 2007-01-15 15:43:33
    • ありがとう数0
    • 2007-01-15 17:45:22
    • 回答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(Sh ...続きを読む
    配列数式を使用しない方法です。
    任意のシートの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行目としています。必要に応じて変更してください。
    • ありがとう数0
    • 回答数4
    • 気になる数0
    • ありがとう数0
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    このやり方知ってる!同じこと困ったことある。経験を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ