• ベストアンサー

Excel2003、配列から、複数の条件一致する行のデータを取り出す方

Excel2003、配列から、複数の条件一致する行のデータを取り出す方法 配列は最大で10行、10列程度ですが、このデータはリアルタイム(0.5秒間隔)で更新されますので、 分類等はできません。 A列のデータがZ1のセルのデータと一致し、かつ、B列は、特定の”文字列”と一致し、かつ、C列は数量で、0より大きい(負のデータは無いが、""はあり得る)という条件に合致した行があったら、その行のD列の値をZ2のセルに格納したい。 条件に合致する行は複数あり得るが、そのときは最初に条件が合致した行のデータが必要。 いくつかの関数を調べましたが、つまづいています。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 今仮に、配列が存在している範囲をSheet1の2行目から11行目だとします。  そして、 >B列は、特定の”文字列”と一致し、 の箇所で触れている「特定の”文字列”」とは、仮に「特定の文字列」だとします。  又、適当な行、例えばSheet2のA列を作業列として使用します。  まず、Sheet2のA2セルに次の数式を入力して下さい。 =IF((Sheet1!$A2=Sheet1!$Z$1)*(Sheet1!$B2="特定の文字列")*ISNUMBER(Sheet1!$C2)*(Sheet1!$C2>0),ROW(Sheet1!$A2),"")  そして、Sheet2のA2セルをコピーして、Sheet2のA3~A11の範囲に貼り付けて下さい。  最後に、Sheet1のZ2セルには次の数式を入力して下さい。 =IF(COUNT(Sheet2!$A:$A)>0,INDEX($D:$D,MIN(Sheet2!$A:$A)),"")  以上です。

Yahoosan
質問者

お礼

テストしてみました。 目的の動作結果が得られました。 色々な関数の利用法と組合せ方を知っていないと完成しないんですね。 大変、有り難うございました。

関連するQ&A

  • (MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させ

    (MS-Excel)複数の条件にマッチする複数のセルを配列?で出力させたい。 たとえば、条件1=A列で値が数値であるセルと、条件2=条件1でマッチしたセルと同じ行でC列で値が「その他」という文字列であるセルを検索させます。 そして、A列でマッチしたセルの値をE列に出力させて、C列でマッチしたセルの値をF列に出力させたい、というような感じです。 VLOOKUP関数などで、{配列}を使うなどすれば可能だと思って試行錯誤したけどダメでした。 なお、データベース関数のように条件セルなど作業セルが必要な方法は使いたくないです。 よろしく、お願いします。

  • Excelで複数条件を満たすのは何行目?

    Excel VBAにてどういう方法があるのか考えています。 A列はHかL、B列は1,2,3のようなデータにおいて  条件1:A列はH  条件2:B列が2 を満たす行は何行目かを探して、C列のその行のセルに コピーしていたデータを貼り付けたい (この場合、2つの条件で重複する行はありません) A列 B列 C列 H  1 H  2  ■←ここへ貼り付け H  3 L  1 L  2 L  3 この場合は、2行目なので、C列の2行目のセルをselectしてpasteしたいのです。 良い方法をご存じの方、よろしくお願いいたします。

  • エクセル 複数の条件に一致

    複数の条件に一致したセルの内容によって、別のセルに別の文字を自動で表示したいのですが可能でしょうか? 詳細はこのような形で、 【シート1】       A     B       C 1      0001     3/1    有 2      0002     3/1    無 3      0001     3/2    不明 【シート2】       A     B       C 1             3/1      3/2 2      0001       ○      △ 3      0002       ×     "空欄" ・シート2のB2からC3を自動で表示できるようにしたい。 ・シート1のA列とシート2のA列が一致、更にシート1のB列とシート2の1行が一致。 ・シート1のC列が「有」の場合「○」、「無」の場合「×」、「不明」の場合、「△」、「空欄」の場合、「"空欄"」と表示。 知りうる限りの関数を合わせてみましたが、できませんでした。 どなたかいい方法を教えて頂ければと思います。 環境はXPpro、エクセル2000です。 宜しくお願いします。

  • EXCEL VBA 条件に合致しない行を削除したい

    超初心者です。どうか教えてください・・・m(_ _)m A列   B列   ・・・・・ 1234567  2345678 9876543  8765432  ・    ・  ・    ・ といった、表(数千行規模)があります。 A列とB列には7桁の数字があります。 A列とB列には途中ブランクのセルもあります。 A列またはB列のどちらかにも、 複数の範囲条件(数字)に合致しない行を削除したいです。 A列またはB列のどちらかに合致すればその行を残します。 複数の範囲条件(数字) (例)  1000000~1000009  2000100~2000199     ・     ・   十数個あります。 何卒、宜しくお願い致します。・・・m(_ _)m

  • エクセル複数条件一致の数式

    質問失礼します。 下記のエクセルデータから、E列のセルに、条件にあわせて5か6、もしくは空白を表示させる数式を作りたいと考えています。 条件として セルE2に5を表示さる場合 D2がa4の時、A列から、同じa4を検索し、この場合は、行10と行11が該当します。 その該当する行から、 セルD2の文字列a4がある行のA列のセル、この場合は、セルA2のa1 と文字列が一致するセルB11の11行目が選択され、その行にあるC列の数字を、E2セルに表示させたいです。 E列に入れる数式は作ることが可能でしょうか? 色々試してみましたが、どうしてもうまくできませんでした。 よろしくお願いします。   A  B  C   D    E 1        2 a1  a2   5    a4   5 3 a1  a3       a3   6 4 a1  a1       5 a2  a3   5    a1   5 6 a2  a1       7 a3  a1   6    a2   5 8 a3  a1       a4   6 9 a3  a4   5    a2   5 10 a4  a3   6    a3   5 11 a4  a1   5    a2

  • AWKの配列内データの処理について

    AWKを使用して入力ファイルの1行内の単語に対して条件チェックするには for( i=1 ; i<= NF i++ ){    if( $I == chek_word )       処理 } とすればできるのはわかるのですが、 一旦、配列の中に格納した文字列に対して上記の処理と同様の処理をするにはどのようにすればいいのでしょうか? 例えば data_line[$1] = $0; として配列data_lineに格納した1行そのままのデータに対して1番上の行全体にわたる単語の条件チェック をおこないたいのですが、どのようにすればいいのかよくわかりません。 どなたかご存知の方アドバイスをお願いします。

  • 【Excel】条件を満たすデータを全て取り出す

    Excel2003を使用しています。 ある書類を作成するための下準備として、条件を満たすデータを全て取り出したいのですが、うまくいかないので、教えてください。 例えば、G7に入力されているデータがC列に入力されているデータと一致したら(必ず1個以上あります)、一致するD列とE列のデータをそれぞれ別セルに全て取り出したいのですが、どのようにすればいいでしょうか? よろしくお願いします。

  • 【Excel関数】複数条件に対し、最初に一致したセルの行番号を返す方法

    【Excel関数】複数条件に対し、最初に一致したセルの行番号を返す方法  今晩は,いつも勉強させていただいております. 質問させていただきます.どうぞよろしくお願いいたします. (VBA以外でお願いいたします m(_ _)m )  たとえばA列にランダムな数字が並んでいる場合、  |  A  |  B  |    18    22    17    30     :     : 上から順に、「16.5より大きく21より小さい数」の条件に対し 一番最初にひっかかったものの行番号を知りたい場合、 どのようにするのがよいでございましょうか??? (今回の場合、「3」行目の17がそれにあたります。)  ファイル数と行数が多く、全部をVBAで計算すると時間がかかるため、 VBAで  B1あたりにその関数を放り込む →行番号を知る →ファイル閉じる とやりたいのでございますが、よい関数を思いつきません。。。  もしお詳しい方がいらっしゃいましたら, ぜひともアドバイスいただきたくどうぞよろしくお願いいたします。

  • 複数の条件に一致するセルの数値を返すためには

    質問が分かりづらかったら申し訳御座いません。 複数の条件に一致するセルに打ち込まれた文字列を飛ばすにはどうすればよいですか? 下記の写真を参考にさせてもらいますと、 別シートのセルに【日付が3月15日が休の場合に該当者の名前】を自動的に飛ぶようにしたいです。 飛ばすセルも該当者を全て一つのセルに表示させるのではなく、該当者毎にセルを分け、横並びに表示をしたいです。 条件一致するセルの個数等は本で調べて分かったのですが、該当者の名前を飛ばすとなると分かりません。 宜しくお願い致します。

  • Excelの複数条件に一致する場合の関数

    1行に複数のデータセルからがあり、複数条件の中のどれかひとつでも一致した場合は先頭セルA1に”○”を表示したいのですが、どのような関数を使用すればよいのか教えてくださいませ。 例:データセルはB1:Y1   条件セルはA5:J1 OR関数だとかいろいろ考えましたが、複数条件なのでわからなくなりました。 どなたかお分かりの方教えていただけませんか。 何卒宜しくお願いします。

専門家に質問してみよう