[[20210221120615]] 『「RANK関数で条件をつけて、いくつか除外したい」』(ペガサス) ページの最後に飛ぶ

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

 

『「RANK関数で条件をつけて、いくつか除外したい」[ケーピー] について』(ペガサス)

投稿
[[20100501151125]] 『RANK関数で条件をつけて、いくつか除外したい』(ケーピー) 
について...

初めて質問させていただきます。

掲題の件、SUMPRODUCT関数を利用する式を参考にして順位付けが出来ましたが、ご回答に記載の「※仮に、B列に重複がある場合には、計算式に調節が必要になってきます」の通り、重複データが複数ある場合、その重複データについては上手くいきませんでした。
この場合の計算式における調整方法をご教示ください。
宜しくお願いします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 数式1行で澄まそうとせずに作業列を使えば良いんじゃないですかね。
https://www.moug.net/learning/exkan/exkan004-1.html
 上記以外でも探せば、色々あると思いますよ。
 最近は、もっと便利な関数が用意されているようですが、
 私のオフィスは2007なので使えません。

(BJ) 2021/02/21(日) 13:25


 >重複データが複数ある場合、その重複データについては上手くいきませんでした。

 どう旨くいかなかったのですか?(私には特に問題があるとも思えませんでしたが・・)

(半平太) 2021/02/21(日) 13:57


ご回答有難うございます。

具体例をご説明せずに申し訳ありませんでした。

現在作成した式は以下の通り、C列が「○」のものだけ順位を返すという前提のもと、B列の数値から「0」とエラーを除外して順位付けしたいというのが希望です。
RANKやCOUNTIFを使うとC列が「○」ではない場合、ブランク表記にはなりますが順位を取ってしまう為、SUMPRODUCT関数を使っていますが、SUMPRODUCT関数を利用した式でもB列に数値「0」の重複が続くと、以下の通り「0」のデータを除外せずに順位を取ってしまいます。

=IF(OR($C2<>"○",ISERROR(0/B2)),"",SUMPRODUCT(($C$2:$C$14<>"")*($B$2:$B$14>B2))+1)

56 ○ 3
89
85 ○ 1
78 ○ 2
30 ○ 4
30
30 ○ 4
21 ○ 6
0 ○
0 ○
0 ○
0 ○

作業列は増やさないで解決する方法を模索していますが、数値「0」のデータ重複の場合に順位を取らない方法ありますでしょうか。
条件を満たしていれば、現在使用している式には拘りません。

以上、どうぞ宜しくお願い致します。

(ペガサス) 2021/02/21(日) 15:21


すみません、最後の「・89 ○ 11」は正しくは

「‐ 89(=マイナス89) ○ 11(順位) 」です。

宜しくお願いします。
(ペガサス) 2021/02/21(日) 15:31


 >B列の数値から「0」とエラーを除外して順位付け

 0を除外したいと言うことであって、重複が悪さをする話とは別ですよね。

 D2セル =IF(OR(B2=0,C2=""),"",MATCH(B2,INDEX(AGGREGATE(14,6,B$2:B$14/((B$2:B$14<>0)*(C$2:C$14="○")),ROW(B$1:B$100)),0),0))

 下にコピー

(半平太) 2021/02/21(日) 16:17


半平太様

ご回答有難うございます。
希望条件通りにできました。
知識不足で質問が的確でなくすみませんでした。

大変助かりました。
有難うございました。
(ペガサス) 2021/02/21(日) 16:24


追加で質問致します。

こちらで教えていただいた式

 D2セル =IF(OR(B2=0,C2=""),"",MATCH(B2,INDEX(AGGREGATE(14,6,B$2:B$14/((B$2:B$14<>0)*(C$2:C$14="○")),ROW(B$1:B$100)),0),0))
で作業が可能になりましたが、データによりB列で「0」を除外しないパターンが出てきました。
エクセル初心者にて応用ができずにいます。
この場合にどのように式を変えればよいか教えていただけると幸いです。

宜しくお願い申し上げます。

(ペガサス) 2021/02/23(火) 20:09


 D2セル =IF(OR(B2="",C2=""),"",MATCH(B2,INDEX(AGGREGATE(14,6,B$2:B$14/((B$2:B$14<>"")*(C$2:C$14="○")),ROW(B$1:B$100)),0),0))

(半平太) 2021/02/23(火) 20:59


早々にご回答有難うございます。

作業が完了致しました。
煩雑な工程が一度でできるようになりました。

ご教示いただき深謝申し上げます。

(ペガサス) 2021/02/23(火) 21:39


コメント返信:

[ 一覧(最新更新順) ]


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