- 締切済み
エクセル2010 範囲の中から数値を探し、並べ換え
エクセル2010を使っています。 AO3からAO150~AX3からAX150までにランダムな数字が並んでいます。 その数字を若い順に抜き出しAZ3セルの行方向に表示させたいと思います。 また、BAセルにはAZセルに抜き出したものから、0と1を除いたものを表示させたいと思います。 これを関数で教えて頂けませんか? 詳しい方、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
-1の様な負の数値や、1.5の様な小数点以下の桁数がある数値(特に0よりも大きく1よりは小さい数値)もあるものとします。 その場合、まず、AZ3セルには次の関数を入力して下さい。 =IF(ROWS($3:3)>COUNT($AO$3:$AX$150),"",SMALL($AO$3:$AX$150,ROWS($3:3))) 次に、BA3セルには次の関数を入力して下さい。 =IF(ROWS($3:3)>COUNT($AO$3:$AX$150)-COUNTIF($AO$3:$AX$150,0)-COUNTIF($AO$3:$AX$150,1),"",SMALL($AO$3:$AX$150,ROWS($3:3)+COUNTIF($AO$3:$AX$150,0)*(ROWS($3:3)>COUNTIF($AO$3:$AX$150,"<0"))+COUNTIF($AO$3:$AX$150,1)*(ROWS($3:3)>COUNTIF($AO$3:$AX$150,"<1")-COUNTIF($AO$3:$AX$150,0)))) 次に、AZ3~BAの範囲をまとめてコピーして、AZ4~BA1482の範囲にコピーして下さい。 以上です。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 AZ3セルに =IFERROR(SMALL(AO$3:AX$150,ROW(A1)),"") BA3セルに =IFERROR(INDEX(AZ$1:AZ$2000,SMALL(IF((AZ$1:AZ$2000<>0)*(AZ$1:AZ$2000<>1),ROW(AZ$1:AZ$2000)),ROW(A1))),"") BA3セルは配列数式になりますので、Shift+Ctrl+Enterで確定! この画面からコピー&ペーストする場合は上記数式をドラッグ&コピー → BA3セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 両セルをオートフィルで下へコピーしてみてください。m(_ _)m