[[20211125143425]] 『RANK関数について』(小松菜) >>BOT

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『RANK関数について』(小松菜)

 こんにちは。RANK関数についておしえてください

 A列に購入数、B列に購入数に応じた順位(1〜100位)を入れています。
 C列に顧客数、D列に顧客数に応じた順位を入れたいのですが、B列の順位で
 1〜30位は含まずに、順位をつけたいです。
 そもそもRANK関数なのか不明ですが、D1セルに入れるべき関数を具体的に教えていただけますでしょうか。

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


 1行目が見出しでデータは2行目から101行目だとして。
 D2セルに
 =IF(B2>30,SUMPRODUCT((C$2:C$101>C2)*(B$2:B$101>30))+1,"")
 ではどうだろうか?
(ねむねむ) 2021/11/25(木) 15:14

 >B列の順位で1〜30位は含まずに
 B列の1〜30位には、D列に順位をつけないってこと?

 たぶん COUNTIFS でも同じ結果になると思います。

 D1 =IF(B1>30,COUNTIFS(B:B,">30",C:C,">"&C1)+1,"")

 以上
(笑) 2021/11/25(木) 16:00

ねむねむ様、(笑)様、ありがとうございました。
そうです、B列にて1〜30位になった場合、D列では、順位の対象外になるようにしたいのです。
(小松菜) 2021/11/26(金) 09:29

 ねむねむ様、(笑)様、お二人の関数で、課題はクリアできたのですが、もう一つ条件が加わり、
 順位をつける、B列・D列において、同順位だった場合、E列に入っている数値が大きいほうが、上にランキングされるようにしたいのですが可能でしょうか?
(小松菜) 2021/11/26(金) 10:41

 >B列・D列において、同順位だった場合
 というのは、B列の順位=D列の順位ということですか?
 それとも、B列|D列内で同順位が発生した場合ということですか?
(.:*.ゆ ゅ) 2021/11/26(金) 10:47

.:*.ゆ ゅ様 書き方が悪かったですね。B列で同順位があった場合、D列で同順位があった場合。それぞれ別です。
(小松菜) 2021/11/26(金) 10:52

 E列の数値がかぶっているということは無いのだろうか?
(ねむねむ) 2021/11/26(金) 10:55

ねむねむ様 さすが!!無きにしも非ずです・・・
(小松菜) 2021/11/26(金) 11:00

 B列・E列とも同じ数値の場合には順位付けはどうするのだろうか?
(ねむねむ) 2021/11/26(金) 11:04

 ねむねむ様 
 B列とE列?どういうことでしょうか?B列で同順位だった場合、E列の数値が大きいほうで順位付け。D列で同順位だった場合、E列の数値が大きいほうで順位付け。という感じです。
 できないのにリクエストばかりで申し訳ない。
(小松菜) 2021/11/26(金) 11:11

 すまない。
 A列で同じ値でさらにE列も同じ値だった場合、B列の順位をどうするか?
(ねむねむ) 2021/11/26(金) 11:14

ねむねむ様 読解力がなくてすいませんでした。その場合は、同順位でおねがいできますでしょうか。
(小松菜) 2021/11/26(金) 11:17

 B1セル:=COUNTIF(A:A,">"&A1)+COUNTIFS(A:A,A1,E:E,">"&E1)+1
 D1セル:=IF(B1>30,COUNTIFS(B:B,">30",C:C,">"&C1)+COUNTIFS(B:B,">30",C:C,C1,E:E,">"&E1)+1,"")
 ではどうだろうか?
(ねむねむ) 2021/11/26(金) 11:34

ねむねむ様、じつはこの順位表はB列・D列以外にも、複数項目があり、いただいた関数で、別列の順位も集計しましたら完璧に完成できました!ありがとうございました。また追加事項ができてきましたら、お願いしたい次第です。取り急ぎ、御礼申し上げます
(小松菜) 2021/11/26(金) 13:49

 追加です。。。
 条件追加で、F列に、充足・未充足どちらかが入力されています。充足だった場合、
 ねむねむ様の2021/11/26(金) 11:34の構文で順位をつける。未充足だった場合、空白。としたいので、if文 をを作りました。

B1はうまくいったのですが、D1の順位で、順位は集計されるのですが、一部FALSEが出てしまいます。
何か関数が足りないのでしょうか?

 B1セル:=if(f1="充足,COUNTIF(A:A,">"&A1)+COUNTIFS(A:A,A1,E:E,">"&E1)+1,"")
 D1セル:=if(f1="充足,IF(B1>30,COUNTIFS(B:B,">30",C:C,">"&C1)+COUNTIFS(B:B,">30",C:C,C1,E:E,">"&E1)+1,""))

(小松菜) 2021/11/26(金) 15:30


 D1セルの式は元の式を式1で表すと
 =IF(F1="充足",式1)
 となり条件が偽の場合の処理が抜けている。
 また、F1セルが充足の行だけで順位を計算するのであれば
 =IF(F1="充足",COUNTIFS(A:A,">"&A1,F:F,"充足")+COUNTIFS(A:A,A1,E:E,">"&E1,F:F,"充足")+1,"")
 =IF(AND(B1>30,F1="充足"),COUNTIFS(B:B,">30",C:C,">"&C1,F:F,"充足")+COUNTIFS(B:B,">30",C:C,C1,E:E,">"&E1,F:F,"充足")+1,"")
 では?
(ねむねむ) 2021/11/26(金) 15:58

 なお上記ではD列の式はAND関数を使ってB列が30以上でF列が充足というのをまとめている。
(ねむねむ) 2021/11/26(金) 15:59

コメント返信:

[ 一覧(最新更新順) ]


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