• ベストアンサー

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
質問者

お礼

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