• ベストアンサー

Excel 関数で上から順に数字を整列させる

Excelで、下記表(例)に入力された数字を上から順に関数を用いて隣のB列に整列させたいです。 ・例 A1:A60の表があります。 ※以下A列に入力された数字とします 1 空白 2 20 3 空白 4 15 5 25 ・(省略、この間空白と考えて下さい) ・ ・ 59 10 60 空白 上記表(例)は、A2に20,A4に15,A5に25,A59に10それ以外は空白を表します。 上記表のセル内数字は全て手入力とします。 全てのセルが空白の場合もあります。 B列はB1:B5の5行です。 この入力された数字を関数を用いて、B列に上から順にB1に20,B2に15,B3に25,B4に10,B5は空白となるように整列させたいです。 B列セル結果は他シートに参照されますのでセルはロックを掛けています。 上記のことからデータの並べ替えも使えませんし昇降順でもありません。 上から順に整列させた数字を、B1:B5の5行内で上位5まで表示させます。 A列の行数が多いのでif関数も使えません。 なお、上記質問内に不明な点がありましたら補足させて頂きます。 以上、宜しくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 B1に以下の関数を入力、入力完了時にshift+ctrl+enterキーを同時押下し、B1セルをB5セルまでコピーして下さい。 =IF(COUNTIF($A$1:$A$60,"<>")>=ROW(A1),INDEX($A$1:$A$60,SMALL(IF($A$1:$A$60<>"",ROW($A$1:$A$60),999),ROW(A1))),"")

DIYsitumon
質問者

お礼

回答有難うございます。 早速試させて頂いたところ、上手く使用することが出来ました。 今回は有難うございます。 ◎なお、今回は全て良回答ですので、回答順に評価を付けさせて頂きます。

その他の回答 (2)

noname#204879
noname#204879
回答No.3

》 A列の行数が多いのでif関数も使えません その理屈が理解できません。説明してください。   A  B  C D 1    20 2  20 15   2 3    25 4  15 10   4 5  25     5 … …     … 59 10     59 60 D1: =IF(A1="","",ROW())   此れをズズーッと下方にセル D60 までドラッグ&ペースト B1: =IF(ISERROR(SMALL(D$1:D$60,ROW(A1))),"",INDEX(A$1:A$60,SMALL(D$1:D$60,ROW(A1))))   此れをズズーッと下方にセル B5 までドラッグ&ペースト

DIYsitumon
質問者

お礼

早速の回答有難うございます。 ROW()関数の使い方も解らず、if関数と組み合わせる事が思い付かなかったもので、「使えません」という表現になってしまいました。 mike_gさまのをそのまま貼り付けることで、目的の値を得ることが出来ました。 今回は有難うございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 横からお邪魔します。 結果としてNo.1さんと重複してしまいますが・・・ こちらも配列数式になりますので この画面から数式をコピー&ペーストしただけではエラーになると思います。 B1セルに↓の数式を貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定してみてください。 数式の前後に{ }マークが入り配列数式になります。 B2セルは =IF(COUNTA($A$1:$A$60)<ROW(A1),"",INDEX($A$1:$A$60,SMALL(IF($A$1:$A$60<>"",ROW($1:$60)),ROW(A1)))) として、Shift+Ctrl+Enterキーで確定です。 これをB5セルまでオートフィルでコピーします。 今回はA列が文字列・数値どちらでも対応できるようにしましたが、 もし数値のみなら =IF(COUNT($A$1:$A$60)<ROW(A1),"",INDEX($A$1:$A$60,SMALL(IF($A$1:$A$60<>"",ROW($1:$60)),ROW(A1)))) でもOKだと思います。 以上、長々と失礼しました。m(__)m

DIYsitumon
質問者

お礼

回答有難うございます。 配列式は以前試したことがありましたが、上手く出来なかったので諦めておりました。 上記をそのまま使用させて頂こうと思います。 有難うございました。

関連するQ&A