[[20100501151125]] 『RANK関数で条件をつけて、いくつか除外したい』(ケーピー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『RANK関数で条件をつけて、いくつか除外したい』(ケーピー)Excel2003使用しています。

   A    B

   _____
 1|  2   35
 2|       45
 3|  3     7
 4|  3     5 
 5|       37

C1=RANK(B1,B1:B5)=3 となるのですが、

A列が空欄のB2とB5をランキングから除外したいのです。

C1=1 となるようにしたいのですが、

良い方法を教えてください。


 C1:=IF($A1="","",SUMPRODUCT(($A$1:$A$100<>"")*($B$1:$B$100>B1))+1)

 素晴らしいアイデアです。名前をお聞かせください。
(おいちゃん)

コメント遅れて、すみませんでした。

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

助かります。

(ケーピー)


確かに出来ました。
再度ありがとうございます。

しかし、どうして出来るのかが、
私の頭では、さっぱり解りません。

さっぱり、、、、、。

解説でもいただければ、今後のために勉強になるのですが、
できれば、お願いします。
(ケーピー)


 お邪魔しますb
 名無しさんが戻られないので、こんな感じかな?って事を書き込んで見ます。
 
 上記の数式の範囲は「1〜100」までの計算式となっていますので、解かり易く例題に合わせて考えてみましょう〜
 
 =IF($A1="","",SUMPRODUCT(($A$1:$A$5<>"")*($B$1:$B$5>B1))+1)
 ~~~~~~~~~1~~2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3~4
 
 1.IF関数です。
 2.「真の場合」には、空欄を返しなさい。
 3.「偽の場合」には、SUMPRODUCT関数を計算しなさい。
 4.「3」で計算したものに、1を足しなさい。
 こんな感じですね?
 
 では、SUMPRODUCT関数を紐解いてみましょうb
 
 SUMPRODUCT(($A$1:$A$5<>"")*($B$1:$B$5>B1))
 ~~~~~~~~~~1 ~~~~~~~~~~~~~2~4~~~~~~~~~~~~3
 
 1.SUMPRODUCT関数
 ヘルプより抜粋
 引数として指定した配列の対応する要素間の積をまず計算し、さらにその和を返します。
 要するに、「配列間を掛け算して、最後に足す」ってイメージです。
 今回の場合は、配列での計算をさせたいために、SUMPRODUCT関数を使用していますので
 配列間の積は計算せずに、足すことを目的としているようです。
 
 2.$A$1:$A$5<>""
 「A1〜A5」の範囲の中に「""(空欄)」以外のものを求める
 結果 → {TRUE;FALSE;TRUE;TRUE;FALSE}
 3.$B$1:$B$5>B1
 「B1〜B5」の範囲の中に「B1」より大きいものを求める
 結果 → {FALSE;TRUE;FALSE;FALSE;TRUE}
 4.上記の「2」と「3」を掛ける
 {TRUE;FALSE;TRUE;TRUE;FALSE}
  ×  ×  ×  ×  ×
 {FALSE;TRUE;FALSE;FALSE;TRUE}
  ↓  ↓  ↓  ↓  ↓
 { 0 ; 0 ; 0 ; 0 ; 0 }
 ※エクセル君は、【FALSE】を「0」・【TRUE】を「1」と認識してくれます。
 
 ここで戻って
 1.SUMPRODUCT関数で「和」を求めています。
 { 0 + 0 + 0 + 0 + 0 } → 0
 最後に「+1」をしているので、C1 に返るのは「1」となります。
 
 少し整理をしてみましょうb
  2.$A$1:$A$5<>""
 「A1〜A5」の範囲の中に「""(空欄)」以外のものを求める
 3.$B$1:$B$5>B1
 「B1〜B5」の範囲の中に「B1」より大きいものを求める
 このような計算だったと思いますが、上記で何を行っているかというと、、、
 
 A列の空欄以外で、B列のその行にあるものより大きいものの数を求める
 こんな感じになると思います。
 
 「+1」は、順位を調節するために必要な調整役ですねb
 
 ※仮に、B列に重複がある場合には、計算式に調節が必要になってきます。
 
 (キリキ)(〃⌒o⌒)b 


(キリキ様)

本当にありがとうございます。

本当に勉強になります。

ありがとうございます。

感謝感謝です。
(ケーピー)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.