• ベストアンサー

エクセル2003 RANK関数

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

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 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,"")

uramesenryou
質問者

お礼

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

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

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))

uramesenryou
質問者

お礼

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

回答No.4

A列のデータをコピー メモ帳に貼り付け メモ帳のデータをコピー ExcelのA列に貼り付け 順位を付ける関数は =RANK(数値,範囲,順序) 最小値が1なら =RANK(A1,$A$1:$A$100,1)

uramesenryou
質問者

お礼

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

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

どういう順にランクを振りたいのか質問にかけてないので質問にならない。 絶対値にでも基づいて振りたいのか(余り意味のある場面を想像しにくいが)。 自分の質問をよく読んで公にすること。自分でそのことで頭はいっぱいでも、重要なことで文章に表現できてないことが多々あるよ。

uramesenryou
質問者

お礼

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

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

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

uramesenryou
質問者

お礼

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

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

どのような書式設定でマイナスをつけているのか不明ですが 実際のデータそのもにマイナスをつけるしかないと思われます。

uramesenryou
質問者

お礼

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

関連するQ&A

専門家に質問してみよう