電子書籍の厳選無料作品が豊富!

A列に0を含め、正の数、負の数(セルの書式設定で「-」を付けた)が混在したデータがあり
B列にLANK関数を使って昇順で順位を付けたいのですが、マイナス表示のデータがあるため
うまくいきません。この問題を解決する方法があれば教えてください。

A 回答 (6件)

 LANK関数という関数は存じませんが、もしかすると、RANK関数の間違いではないでしょうか。


 Excel2003では、どうなっているのかは分かりませんが、少なくともExcel2002では、マイナスの数値が含まれていても、RANK関数を使用して、普通に順位を付ける事が出来ます。
 昇順で(即ち値が小さいものから)順位を付ける場合には、B1セルに次の数式を入力してから、B1セルをコピーして、B2以下に貼り付けると良いと思います。

=RANK($A1,$A:$A,1)

 尚、A列にが空欄のセルが含まれている場合には、次の様な数式に修正して下さい。

=IF(ISNUMBER($A1),RANK($A1,$A:$A,1),"")

 又、昇順で順位を付けるのではなく、0に近い順に順位を付ける場合には、次の様な数式となります。
 A列の数値データーがA2~A99の範囲に存在する場合のA2の数式

=IF(ISNUMBER($A2),SUMPRODUCT((ABS($A$2:$A$99)<ABS($A2))*1)+1,"")

 A列の数値データーがA2から始まるが、最後のデーターが存在する行が不明の場合の数式

=IF(ISNUMBER($A2),SUMPRODUCT((ABS($A$2:INDEX($A:$A,MATCH(99^9,$A:$A)))<ABS($A2))*1)+1,"")
    • good
    • 0
この回答へのお礼

タイトルにはRANKとしているのに、本文ではLANKとなっていました。
ご推察していただいたように空白のセルが問題だったようです。
ご丁寧な回答をありがとうございました。

お礼日時:2011/03/26 14:29

A1セルから下方にデータがあるとしてA列を選択して昇順で並べ替えをします。


その上でB1セルには次の式を入力して下方にオートフィルドラッグします。

=IF(OR(A1<0,A1=""),"",IF(AND(A1>0,ROW(A1)=1),1,MAX(D$1:OFFSET(D1,-1,0))+1))

または

=IF(OR(A1<0,A1=""),"",RANK(A1,A:A,1)-RANK(INDEX(A:A,MATCH(0,A:A,1)),A:A,-1))
    • good
    • 0
この回答へのお礼

なるほど。こんなやり方もあるのですね。
今後の参考にさせていただきます。
ありがとうございました。

お礼日時:2011/03/26 14:31

A列のデータをコピー


メモ帳に貼り付け
メモ帳のデータをコピー
ExcelのA列に貼り付け

順位を付ける関数は
=RANK(数値,範囲,順序)

最小値が1なら
=RANK(A1,$A$1:$A$100,1)
    • good
    • 0
この回答へのお礼

参考にさせていただきます。ありがとうございました。

お礼日時:2011/03/26 14:24

どういう順にランクを振りたいのか質問にかけてないので質問にならない。


絶対値にでも基づいて振りたいのか(余り意味のある場面を想像しにくいが)。
自分の質問をよく読んで公にすること。自分でそのことで頭はいっぱいでも、重要なことで文章に表現できてないことが多々あるよ。
    • good
    • 0
この回答へのお礼

ご指摘のように説明不足でした。大変失礼いたしました。

お礼日時:2011/03/26 14:23

A列例えば100,50、0、-50、-100のデータがあるときに昇順でしたら-100の行が1、-50の行が2になりますが、そうはな

らないということでしょうか?
    • good
    • 0
この回答へのお礼

A列に空白があることが問題だったようです。説明不足で申し訳ありませんでした。

お礼日時:2011/03/26 14:19

どのような書式設定でマイナスをつけているのか不明ですが


実際のデータそのもにマイナスをつけるしかないと思われます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/03/26 14:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!