• ベストアンサー

エクセル関数(抽出)について(再)

先の質問が悪かったようですので再度質問致します。     A  B  1 219 2  2  13 9  3 824 9  4 118 6  5   6 5  6 333 9   7  19 6  8 461 1  9  83 6 10 177 2  ランダムに配列された上記表からB列の9と6に該当するA列の降順に以下のように抽出したいのです。 9 824 9 333 9  13 6 118 6  83 6  19 ちなみに9と6は自動で抽出できれば一番良いのですが、入力でも構いませんので御回答宜しくお願い致します。

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

  • ベストアンサー
回答No.5

>ちなみに9と6は自動で抽出できれば一番良いのですが 自動抽出という意味が分かりません。式に組み込んで、という意味でしょうか? B列のどの番号を抽出するかをどこかのセルに入力して指定するのではなく、最初から9と6という風に決め打ちしているというコトでしょうか? ともかく、一発で抽出する式を考えましたので、参考にして下さい。 とても、長いです。 =SUMPRODUCT(LARGE(($B$1:$B$10=IF(COUNTIF($B$1:$B$10,9)>=ROW(A1),9,6))*($A$1:$A$10),ROW(A1)-IF(COUNTIF($B$1:$B$10,9)>=ROW(A1),0,COUNTIF($B$1:$B$10,9)))) この式をコピーして、9と6の数の分だけ(あるいはそれ以上)下へコピーして下さい。 ご希望の数字列が出来ると思います。 範囲$B1$1:$B$10は必要に応じて変えてください。

yukai4779
質問者

お礼

本当に一発ですね。素晴らしいです。ありがとうございました。

その他の回答 (6)

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.7

#4の回答の補足です。 =IF(ROW(A1)>COUNTIF($B$1:$B$100,9),"",LARGE(($B$1:$B$100=9)*($A$1:$A$100),ROW(A1))) の数式を入力してCtrl+Shift+Enterで確定して配列数式にして下さい。

回答No.6

こんばんは。 作業列を使う方法でもよろしければ、 以下の方法でできると思います。 作業列はどこでもいいのですが、 ここでは例として K列を使います。 目障りなら数式を入力後、非表示にしてください。 結果を D列とE列 に抽出します。 *** K1 に↓ ------------------------------------------------------ =IF(OR(B1=9,B1=6),RANK(B1,B:B)*10000+RANK(A1,A:A),"") ------------------------------------------------------ A・B列のデータ最終行までコピーしてください。 ◆B列の 9 と 6 は固定のようですので、K1 の数式で指定しています。 今後、抽出条件に変更がある場合は 他の数字に変更して 再度コピーしてください。 D1 に↓ ------------------------------------------------------- =IF(COUNT($K:$K)<ROW(A1),"",INDEX($A:$B,MATCH(SMALL($K:$K,ROW(A1)),$K:$K,0),3-COLUMN(A1))) ------------------------------------------------------- ↑の数式を右の E1にコピーして、 D1 と E1 の数式をともに、A・B列のデータ最終行までコピー ◆作業列に K列以外を使用する場合は、K をその列記号に変更してください。 *** D列に B列の、E列に A列の抽出結果が表示されると思います。

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.4

検索条件が良く分からないのですが、例えば9を抽出したい場合は、以下の式をどこかに入力して下方向にオートフィル(コピー)します。 =IF(ROW(A1)>COUNTIF($B$1:$B$100,9),"",LARGE(($B$1:$B$100=9)*($A$1:$A$100),ROW(A1))) 必要に応じて9の部分をセル参照にして下さい。

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.3

>先の質問が悪かったようですので再度質問致します。 yukai4779さんの質問が無いようですが、どの質問の続きでしょうか? >ちなみに9と6は自動で抽出できれば一番良いのですが、入力でも構いませんので御回答宜しくお願い致します ご希望の操作は関数だけでできそうなのですが、9とか6の数字はどのような基準で抽出するのでしょうか?(先の質問がわからないので具体的に回答のしようがありません)。

yukai4779
質問者

補足

No.1329344の質問です。 9と6はいわゆるコードNo.のようなものです。

回答No.2

並び替え結果で、A列とB列が反対になっているのが気になりますが、普通の並び替えでできないでしょうか。 【手順】 (1)データをふくむセルを選択(A1:B10) (2)メニューから、データ/並び替えで、最優先キーに列B、降順 選択 (3)2番目の優先キーに列A 降順で選択しOKボタンクリック B列の1~5は残りますが、下の行にきますのであとは消去すればよいでしょう。

yukai4779
質問者

補足

B列の任意の値に該当するA列全ての値を降順で抽出したいのです。

  • 3612masa
  • ベストアンサー率48% (742/1533)
回答No.1

こんばんは、 マニュアルです。 数値を入力している状態で、A列1行目にカーソルをあわせて、マウス左ボタンクック (1)データ→オートフィルター (2)オプションを選択 (3)1行目、左欄「6」右欄「と等しい」 (4)2行目、左欄「9」右欄「と等しい」 (5)データ→並び替え (6)優先されるキー→A列、降順 これでどうですか?

yukai4779
質問者

補足

すみません、関数でお願いします。

関連するQ&A