• ベストアンサー

excel関数を用いてある行の範囲内の数値のみを違う行に抽出し、同じ列に対応する値も引っ張ってくることは可能ですか?

    A   B   C   D 1   33   180 2   58   300 3   89   310 4   152   240 5   205   74 上のような表になっている時に、EXCEL関数を用いて、[A]行の「60以上、180以下の数値」のみをC列に引っ張ってきて、なおかつ[A]行のそれぞれの値に対応する[B]行の値をD行に引っ張ってくることは可能でしょうか? 理想的な結果として   A     B      C      D 1   33  180     58    300 2   58   300    89    310 3   89   310    152    240 4   152   240 5  205  74 というようになってほしいのです。 オートフィルターの範囲指定を用いると、C行に範囲内の値を引っ張ってくる事は出来たのですが、関数ではない為、他の表に応用が効かず、毎回フィルターをかけなくてはいけなかったです…そのため出来れば関数を使いたいのですが、何か方法は無いものでしょうか…

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

作業列を作って対応することでしょう。 作業列をC列としてC1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AND(A1>=60,A1<=180),ROW(A1),"") ご質問のC列をD列に、D列をE列に表示させます。 D1セルには次の式を入力して横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(ROW(A1)>COUNT($C:$C),COLUMN(A1)>2),"",INDEX($A:$B,SMALL($C:$C,ROW(A1)),COLUMN(A1))) なお、ご質問の例でC1セルに58とあるのは60以上の数値を表示させるのですから誤りですよね。

KVNKVN
質問者

お礼

出来ました。 ありがとうございます! 非常に難しい関数で内容はチンプンカンプンですが、これで重要なデータが出来上がりましたので、非常に助かりました。

その他の回答 (1)

noname#204879
noname#204879
回答No.1

お示しの「理想的な結果」は果たして“理想的”ですか? なぜなら、『[A]行の「60以上、180以下の数値」のみをC列に引っ張ってきて』いないから。58 も「引っ張ってきて」います。 何れにしても「オートフィルタ」でなく、「フィルタオプションの設定」ならできます、関数を知らなくても。

KVNKVN
質問者

お礼

失礼致しました。 おっしゃるとおり58は間違えです。 フィルタオプションの設定試してみました。 数個ならこれで出来そうです。 ありがとうございます!

関連するQ&A