EXCEL複数グループ内で欠損値を除いて順位を振る
- EXCELで複数のグループ内で順位を表示させるようにしたいのですが、欠損値を除く方法が分かりません。
- 現在は一度並べ替えをして、順位を振っていますが、順位を振るのは複数回必要で手間がかかっています。
- マクロ対応でなければ、関数で並び替えをせずに順位を振ることはできないでしょうか。Excelのバージョンは2003です。
- ベストアンサー
EXCEL複数グループ内で欠損値を除いて順位を振る
EXCELで複数のグループ内で順位を表示させるようにしたいのですが、 間に欠損値「-」があります。 SUMPRODUCT関数を用いて、グループ内順位を振る方法はわかったのですが 欠損値を除く方法が分かりません。 欠損値の場合は順位ではなく「-」を入力したいです。 A列 B列 C列 D列 E列 グループ1 グループ2 スコア グループ1での順位 グループ2での順位 関東 東京 40 1 1 関東 東京 30 3 2 関東 東京 20 5 3 関東 埼玉 35 2 1 関東 埼玉 25 4 2 関東 埼玉 - - - ・ ・ ・ ・ いまは一度並べ替えをして、順位を降っています。 ですが、順位を振るのはひとつではないため、何度も並べ替えが必要に なっています。 関数で並び替えをせずに順位を振ることはできませんでしょうか。 マクロ対応でなければ無理でしょうか。 (Excelのバージョンは2003です) よろしくお願いします。
- akibell
- お礼率100% (4/4)
- その他MS Office製品
- 回答数3
- ありがとう数5
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
【作成例】 D2: =IF(C2="","",IF(C2="-","-",SUMPRODUCT(($A$2:$A$20=A2)*($C$2:$C$20<>"-")*($C$2:$C$20>C2))+1)) E2:バリエーション =IF(C2="","",IF(C2="-","-",SUMPRODUCT(($B$2:$B$20=B2)*ISNUMBER($C$2:$C$20)*($C$2:$C$20>C2))+1)) あなたのSUMPRODUCTの式の,単なるバリエーションじゃないかな?と思いますが。 ご自分では一体どんな式を書いたのか,ご相談で最初から情報提供してみるともっと話が早かったようには思います。
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
並び替えがA列とB列で行われている限りにおいては次のようにすればよいでしょう。 1行目は項目名としてD2セルには次の式を入力してE2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 配列数式などではありませんのでデータ数が多くなっても計算速度が遅くなるなどのことは起こりません。勿論C列にデータが無いあるいは-の記号が有っても対応できます。 =IF(COUNT($C2)=0,"",RANK($C2,INDEX($C:$C,MATCH(A2,A:A,0)):INDEX($C:$C,MATCH(A2,A:A,0)+COUNTIF(A:A,A2)-1)))
お礼
SUMPRODUCT関数を使用しなくても、グループ毎の順位をつけることができるのですね。 計算速度も遅くなく対応できました。 No2さんの方が先に回答していただいたためベストアンサーとしましたが、 こちらも私的にはベストアンサーです。 ありがとうございました。
- aokii
- ベストアンサー率23% (5210/22062)
スコアの-を0で置き換えしては。
お礼
早速のご回答、ありがとうございました。 スコアが0のものもあるため、0への置換えはできないのですが、-1などに 置き換えることは可能ですね。 やはり発想が足りないと痛感しています。 ありがとうございました。
関連するQ&A
- EXCELで複数のグループ内での順位を表示させたい。
EXCELで複数のグループ内で順位を表示させるようにしたいのですが、 どうすれば良いかわからず困っています。 たとえば、こんなデータがあるとします。 (A列)(B列) 名前 スコア あああ 10 あああ 20 あああ 30 あああ 40 いいい 5 いいい 20 いいい 60 いいい 65 いいい 70 いいい 80 いいい 90 ・ ・ ・ ・ ・ ・ こようなデータを名前別でスコアの降順で順位をつけたいのです。 (A列)(B列) (C列) 名前 スコア 順位 あああ 10 4 あああ 20 3 あああ 30 2 あああ 40 1 いいい 5 7 いいい 20 6 いいい 60 5 いいい 65 4 いいい 70 3 いいい 80 2 いいい 90 1 ・ ・ ・ ・ ・ ・ 名前の種類の数もかなりあります。 このようにグループ内で順位を表示させるにはどのようにしたらいいでしょうか? EXCELは初心者なため、どなたかお詳しい方、どうか宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- EXCEL2007でグループ別の順位を昇順で
こんばんは 下記のD列の順位を関数で計算する方法を教えてください。 C列の点数をもとにA列のグループ別の順位を昇順でつけたいのです。 宜しくお願い致します。 Aグループ B氏名 C点数 D順位 1 あ 10 1 1 い 20 2 1 う 30 3 1 え 40 4 1 お 50 5 2 か 50 4 2 き 40 3 2 く 30 2 2 え 20 1 2 お 80 5 3 え 20 2 3 い 90 5 3 う 10 1 3 あ 50 3 3 お 60 4
- ベストアンサー
- その他MS Office製品
- グループに順位をつけ、降順に並べ替えたい
セルA1からE5までを1つのグループとして、D1に当該月の売り上げ総額があります。これが40グループあって(2グループ目はA6からE10、D6に売上総額という形)、これをグループ内の項目・数字を固定したまま売上総額の順位による並べ替えをしたいのです。何かいい方法はあるでしょうか?
- 締切済み
- Excel(エクセル)
- sumproductを使った順位計算について
sumproductを使った順位計算について質問です。 こういう感じのExcel表があります↓ A B C D 1 日付 名前 点数 順位 2 3 5月1日 あああ 11 3 4 5月1日 あああ 31 1 5 5月1日 あああ 20 2 6 7 5月1日 いいい 20 2 8 5月1日 いいい 22 1 9 5月1日 いいい 15 3 10 11 5月2日 ううう 無効 1 12 5月2日 ううう 15 3 13 5月2日 ううう 50 2 名前ごとの順位を自動で計算したいため、色々調べて =IF(A3="","",SUMPRODUCT(($B$3:$B$13=B3)*($C$3:$C$13>C3))+1) という関数を使いました。(上記はD3セルの値) 「あああ」と「いいい」は、それで正確な順位が出ますが、「ううう」のように C列に文字列が入ると文字列が1位になってしまいます。 isnontextなど使って自分でイロイロやってみましたが、上手くいきません。 そもそもsumproductを使ったのが間違いなのかもしれません。 どなたか良い解決方法をご存じでしたら教えて頂ければ嬉しいです。m(_ _)m ちなみにExcel2010で、C列には「無効」以外の文字や、「-」などの記号が入ることもあります。
- ベストアンサー
- その他MS Office製品
- エクセル グループ化したまま並べ替えがしたい
エクセルで行の商品リスト 行1 2 3 4 5 6並べ替えで 1 2グループ 3 4 グループ 5 6グループ で並べ替えをしました。 グループ化は行12を選択してではなく1のみを選択して下の行2とグループ化しました。 12を選択してグループ化をすると3が含まれてしまうので上記のようにグループ化しました。 すでにまちがいでしょうか? 列には商品名 コード 納期 等々 グループをとじて(+)全列行を選択して並べ替え(納期列を優先)をしたところ 各行で納期順にはなったのですが 123456がばらばらにグループ化されていました。 商品順 コード順 納期順 いづれの並び替えでもグループ化が固定されるようにしたいです。 どうすればよいでしょうか? 数が多いのでできるだけリストの内容をいらわない方向で(1と2を同じ行にまとめてしまうとかはしたくないです)
- 締切済み
- オフィス系ソフト
- ゴルフコンペの順位の件
Excel2007で、ゴルフコンペの順位のつけ方で教えてください。 F列にグロススコア、G列にハンデ、H列にネットスコアがあって、I列に =IF(H2="","",RANK(H2,$H$2:$H$100,1)) を入れて順位をつけますが、このH列のネットスコアが同順位の場合は、 G列のハンデ上位者を順位の上に持ってきたいのですが、どのような関数を使えば良いか 教えて頂きたいと思います。 私、初心者レベルですのよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 順位を1,2,3位を赤字にするには!
いつもお世話になっております。 下記のようなスコア結果での順位を自動的に”1”、”2”、”3”、”4”と付与(表示)出来る関数を教えて頂き大変助かりました。 A 列 B C D E F E 1行 田中 鈴木 山本 管 佐藤 木下 2行 12月10日 40 45 33 48 休み 38 3行 12月12日 33 休み 40 休み 33 35 4行 12月14日 31 休み 55 休み 24 35 5行 12月16日 24 38 40 休み 57 22 6行 参加日数 4 2 4 1 3 4 7行 平均スコア 32.0 41.5 42.0 48.0 38.0 32.5 8行 参加率 100% 50% 100% 25% 75% 100% 9行 順位 1 -- 4 -- 3 2 =IF(B8<0.6,"--",SUMPRODUCT(($B$8:$G$8>0.59)*($B$7:$G$7<B7))+1) 上記の関数式で順位は自動的に表示されましたが、そこで強欲にも さらに1,2,3位を同時に赤字にする関数は有りませんか?又は1,2,3位の セルを赤色にする関数はないでしょうか?誠に強欲な質問で申し訳ありません。よろしくお願いいたします。 ー 以上 -
- 締切済み
- Excel(エクセル)
- 順位を自動的に表示する方法を教えてください。
いつもお世話になっております。 下記のようなスコア結果の表で順位欄に順位を自動的に”1”、”2”、”3”、”4”と付与(表示)出来る関数を教えてください。 但し、条件として参加率60%以上(59%以下を除く) の中で平均スコアの低い順から”1”、”2”、”3”、”4”と表示し 参加率59%以下はすべて”0”又は”-”と表示する関数を教えてください。よろしくお願いいたします。 申し訳ありませんエクセルの表がうまく添付されませんので 下記の表示で許してください。因みにエクセルの表を添付する方法も 教えていただければ有難いです。よろしくお願いいたします。 田中 鈴木 山本 管 佐藤 木下 12月10日 40 45 33 48 休み 38 12月12日 33 休み 40 休み 33 35 12月14日 31 休み 55 休み 24 35 12月16日 24 38 40 休み 57 22 参加日数 4 2 4 1 3 4 平均スコア 32.0 41.5 42.0 48.0 38.0 32.5 参加率 100% 50% 100% 25% 75% 100% 順位 ?? ?? ?? ?? ?? ?? ー 以上 ー
- ベストアンサー
- Excel(エクセル)
- EXCEL関数での順位のつけ方について
今度レースの集計をすることになりました。 定められた時間の耐久レースで、タイムはありません。 A B C D 1 チーム名 周回数 ゴール順 順位 2 ●● 30 1 3 ○○ 31 4 4 △△ 31 3 5 ■■ 29 5 6 ★★ 30 2 順位を決める条件は、 (1)周回数が多い順 (2)同一周回数の場合はゴール順 です。 周回数が違えばRANK関数で簡単にできるのですが、 同一周回数の時にゴール順を参照する方法がわかりません。 できれば、D列に関数を入れて順位を表示したいと考えています。 関数で解決できない場合はあきらめて手作業で行いますので、 VBAでの解決方法は結構です。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 【EXCEL】こんなことはできるでしょうか?
エクセルで次のようなデータがあるとします。 勝星 3 5 26 8 9 これを大きい順に順位付けすると 勝星 順位 3 5 5 4 26 1 8 3 9 2 となりますが、ここで質問です 簡単な関数などを使って、順位の列の結果を 簡単に作ることはできるでしょうか。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
こちらの式を提示せず、すみませんでした。 SUMPRODUCTを使いこなせていなかったのが原因ですね。 IF文も挑戦してみたのですが、「($C$2:$C$20<>"-")」を間に入れるという 発想がありませんでした。 こちらの関数ですっきり解決です。 ありがとうございました。