- ベストアンサー
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行に範囲内の値を引っ張ってくる事は出来たのですが、関数ではない為、他の表に応用が効かず、毎回フィルターをかけなくてはいけなかったです…そのため出来れば関数を使いたいのですが、何か方法は無いものでしょうか…
- みんなの回答 (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以上の数値を表示させるのですから誤りですよね。
その他の回答 (1)
お示しの「理想的な結果」は果たして“理想的”ですか? なぜなら、『[A]行の「60以上、180以下の数値」のみをC列に引っ張ってきて』いないから。58 も「引っ張ってきて」います。 何れにしても「オートフィルタ」でなく、「フィルタオプションの設定」ならできます、関数を知らなくても。
お礼
失礼致しました。 おっしゃるとおり58は間違えです。 フィルタオプションの設定試してみました。 数個ならこれで出来そうです。 ありがとうございます!
お礼
出来ました。 ありがとうございます! 非常に難しい関数で内容はチンプンカンプンですが、これで重要なデータが出来上がりましたので、非常に助かりました。