• ベストアンサー
  • 困ってます

EXCELの関数でおしえてください。

例えば下記のような表があったとします。 実績を総数で割って割合を出し、順位をつけています。 名称  実績  総数  割合  順位 AAA  13   16    81%   1 BBB  22   80    28%   5 CCC  15   33    45%   3 DDD  120  180    67%   2 EEE  39   90    43%   4 割合が100%になったら順位から除外して 2位を1位にしたいのですが、方法ありますか? もしAAAが100%になったら現在2位のDDDが1位になるようにしたいのです。 今、AAAの順位の欄には =IF(D2=1,"除外",RANK(D2,$D$2:$D$6)) と入れてみたのですが、そうするとAAAの順位は「除外」と出ますが 1位がなくなってしまってます。 この場合、どうすればいいでしょうか。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数34
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1
  • FEX2053
  • ベストアンサー率37% (7919/21121)

こういうときは一発で何とかしようと考えずに、計算用の列を作ること を考えるといいです。 要は100%になったら除外すればいいんですが、RANK関数は「値の除外」 が出来ませんので、100%になったら「最終順位」にする、という発想 で行くしかないと思います。 100%になったら「最終順位」に回す=100%になったら"0"にする、です から、計算用の列を作り「=IF(A1=1,0,A1)」という感じで強制的にゼロ にしてしまえばいいんです。そうすれば100%になれば、例えば10位とか の「一番後ろの順位」になります。 あとは、計算用の列で=RANK関数を適用すればオッケーです。気になる なら「書式」「列」「非表示」で計算用の列を隠せばオッケーです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

なるほど!そうですよね。 あっさりできました(*^-^*) ありがとうございました☆

関連するQ&A

  • Excelの関数に詳しい方、お願いします。

    わかりづらい説明かもしれませんが、よろしくお願いします。 例として、 AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF ・ ・ ・ といった文字列がエクセルの先頭列A1~A100までずらりと並んでいるとします。 各アルファベットには任意の数字(日付など)が入るとして、この並んだ百件のデータからCCCの部分の最大値を表示するための適切な関数があれば教えていただけないでしょうか? 現在少々急いでいるため言葉足らずで申し訳ありませんが、よろしくお願いいたします.

  • エクセルで関数を組みたい。

    エクセルでA列に以下のようなデータがあるとします。 (1)この中で何種類のデータがあるのかを出し、   この場合は、AAA,BBB,CCC,DDD,EEEの5種類なので5と出し、 (2) その5種類の中で、1回だけのものが●件、2回のものが●件  (・・・大体15回くらいが多い回数になります。) という数字を出したいのです。 印刷を前提としてるためソートなどはできません。 (1)については、何とか解決いたしました。下記を使用します。 =COUNT(INDEX(1/(MATCH(A1:A1000,A1:A1000,)=ROW(A1:A1000)),)) (2)が全く分かりません。 皆様のお知恵をお貸しくださいませ。 宜しくお願い致します。 AAA AAA BBB CCC AAA DDD DDD BBB DDD DDD EEE EEE

  • EXCELのVBAで空白列を削除して左づめにできますか?

    いつも参考にしています。まだ、マクロの記録にチョット手を加えて自動化?している程度の腕前ですが? 仕事の都合で下記の問題を解決しなくてはならなくなり、皆様のお知恵をお借りしたいと思い質問させて頂きます。 エクセルのワークシートに空白のセルがランダムに入っているデータがあります。これを、ある列まで(例ではD列までの左の空白セルをなくして左づめのデータとしたいのです。 (例)  | A | B | C | D | E | 1|AAA|BBB|CCC|DDD|EEE| 2|   |BBB|CCC|DDD|EEE| 3|AAA|   |CCC|DDD|EEE| 4|AAA|   |CCC|   |EEE| 5|   |   |   |DDD|EEE|     ↓  | A | B | C | D | E | 1|AAA|BBB|CCC|DDD|EEE| 2|BBB|CCC|DDD|   |EEE| 3|AAA|CCC|DDD|   |EEE| 4|AAA|CCC|   |   |EEE| 5|DDD|   |   |   |EEE| ここで、E列以降は詰めないでほしいのです。 できれば、VBAで実現したいのですが、どのような考えで、どのようなコード?を書けばよいのか教えてください。 質問の仕方も用途を得ないで、失礼な質問になっていると思いますが、よろしくお願いします。

その他の回答 (1)

  • 回答No.2

単純に、E列に =IF(D2=1,"除外",D2) と入れて列を非表示にし、 F列に =IF(E2<>"除外",RANK(E2,$E$2:$E$6),"") とやっちゃうのが最も簡単かと思いますが‥‥

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます!できました☆ やっぱり一発でやろうとするからダメなんですね。

関連するQ&A

  • Excelシートの統合するマクロなどがありましたらお教えください。

    各支店(約200)からExcelシートで送信されてくる報告内容を別のシートに一気にまとめるマクロ等はないでしょうか?ご存知の方よろしくお願いします。 (例) A支店  項目  aaa    bbb    ccc    ddd    eee        10    20     30    0     0         8    8      0     0      0               以下約300件 B支店  項目  aaa    bbb    ccc    ddd    eee        11    22     33    0     0         9    9      0     0      0               以下約300件      別シートに 項目  aaa    bbb    ccc    ddd    eee        10    20     30    0     0         8    8      0     0      0        11    22     33    0     0         9    9      0     0      0                   以下省略           よろしくお願いします       

  • 正規表現で一つ目の区切り文字で区切りたいのですが・・・

    aaa/bbb/ccc/ddd aaa/bbb/ccc/ddd/eee aaa/ccc/ddd $a=~/(.*)\/(.*)/; $1はそれぞれ aaa/bbb/ccc aaa/bbb/ccc/ddd aaa/ccc と成ってしまいます。 このように 「最後の/」で分けられてしまいます。 一つ目の/で分けるにはどうしたらよいでしょうか。

    • ベストアンサー
    • Perl
  • エクセルのマクロについて教えて下さい。

    エクセルのマクロについて教えて下さい。 Sub Ref() Dim ax As String Dim num As Integer, i As Integer Dim arr As Variant Dim tex As String Range("A1").Select ax = ActiveCell.Formula arr = Split(ax, ",") For i = 0 To UBound(arr) num = i + 1 Cells(num, 1).Value = arr(i) Next i For i = 1 To 10 ActiveCell.Offset(, 1).Select tex = ActiveCell.Formula Selection.Resize(num, 1).Select Selection.Formula = tex Selection.Resize(1, 1).Select Next i End Sub このマクロを10行ほどまで対応させたいです。 例として2行の表ですが、           A         B   C  D   E  F 1 C100,C101,C102,C103 aaa bbb ccc ddd eee 2 C104,C105,C106,C107 とうい表を、     A B  C  D   E   F 1 C100 aaa bbb ccc ddd eee 2 C101 aaa bbb ccc ddd eee 3 C102 aaa bbb ccc ddd eee 4 C103 aaa bbb ccc ddd eee 5 C104 aaa bbb ccc ddd eee 6 C105 aaa bbb ccc ddd eee 7 C106 aaa bbb ccc ddd eee 8 C107 aaa bbb ccc ddd eee という表にしたいです。 結合してから展開しようと考えたのですが 1列目の文字列の最後にカンマが無い場合、ある場合がありまして、 対応する事が出来ませんでした。 マクロ初心者なので教えてください。 よろしくお願いします。

  • Excelで同一のデータを抽出して横並びに

    A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  ccc     4 bbb      12  ddd     6 ccc     10  aaa     22 ddd     6   eee     10 eee     5   bbb     7 fff       8 kkk 9 kkk 7 lll 4 上記のようなデータを 以下のように同じ商品コードを横並びに表示させたいのですが どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか? A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  aaa     22 bbb      12  bbb     7 ccc     10  ccc     4 ddd     6   ddd     6 eee     5   eee     10 fff       8 kkk 7 kkk 9 lll 4 宜しくお願い致します。

  • エクセルで列にあるユニークなデータの個数が知りたい

    おはようございます。 エクセルでA列に以下のようなデータがあるとします。 この中で何種類のデータがあるのかを知りたいのです。 この場合は、AAA,BBB,CCC,DDD,EEEの5種類なので5という答えが欲しいのです。 ただし、A列に入るデータは非常に多岐(800種類以上)に渡ります。 また、印刷を前提としてるためソートなどはできません。 さらに1枚のシートにこのようなデータがいくつかあるので、その決まった範囲内で個数を抽出する必要があります。 なにとぞ皆様のお知恵をお貸しくださいませ。 よろしくお願いします。 AAA AAA BBB CCC AAA DDD DDD BBB DDD DDD EEE EEE

  • SQLについて

    aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 111 111 111 111 111 111 111 112 112 112 112 112 112 111 112 113 113 113 113 113 111 114 114 114 114 114 114 111 114 114 114 114 114 114 112 114 115 115 114 114 115 111 114 115 115 114 114 115 112 116 116 116 116 116 116 111 116 116 116 116 116 116 112 116 116 116 116 116 117 111 116 116 116 116 116 117 112 118 118 118 118 118 118 118 上記のようなデータより、SQLのSELECTを使用して、以下のように抽出したいです。 抽出条件は以下が全て満たしているものとなります。 ・aaa,ccc,ddd,eee,gggが重複、hhhが小さいもの ・bbbが異なるもの aaa bbb ccc ddd eee ggg hhh ---------------------------------------------- 112 112 112 112 112 112 111 ・・・(1) 112 113 113 113 113 113 111 ・・・(1) 114 114 114 114 114 114 111 ・・・(2) 114 115 114 114 114 115 111 ・・・(2) (1)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象 (2)はaaa,ccc,ddd,eee,gggが重複、bbbが異なるため抽出対象  また、hhhが小さいもの 以上、よろしくお願いします。

  • エクセルのリスト表からマトリクス表に丸いを付けたい

    初めて質問させていただきます。 Excel2016を使用しています。 リスト表(A列は重複なし、B列は重複あり) | A | B | 1 | AAA | 111 | 2 | BBB | 222 | 3 | BBB | 444 | 4 | CCC | 222 | 5 | CCC | 333 | 6 | DDD | 333 | 7 | EEE | 333 | 8 | EEE | 444 | マトリクス表(1行目とA列の値は、既に埋め込まれているものです) | A | B | C | D | E | 1 | | 111 | 222 | 333 | 444 | 2 | AAA | ○ | | | | 3 | BBB | | ○ | | ○ | 4 | CCC | | ○ | ○ | | 5 | DDD | | | ○ | | 6 | EEE | | | ○ | ○ | VLOOKUP、INDEX、MATCHなどの関数で考えてみましたが、 正解が見えてきませんでした。 何かよい方法はありますでしょうか。 ぜひよろしくお願いします。

  • CSVに外部テキストファイルを列として追加する方法

    こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE

  • EXCELで複数行の検索

    初心者です。 Aファイルのaaa、bbbなどをキーに Bファイルを検索してできるだけ簡単にマクロ等使わずに 下記のような抽出をする方法があれば教えてください。 よろしくお願いします。 Aファイル aaa bbb ccc Bファイル(例えば「ddd」と「あ」は別セルです) ddd あ eee い aaa う fff え bbb お ggg か ccc き 結果 Aファイル aaa う bbb お ccc き

  • awkやsed等で特定の文字間を抜き出す

    cat text aaaa bbbb <AAA> ccc ddd <BBB> eee とあるときに <AAA> ccc ddd <BBB> だけ抜き出したいです。 どのようにすればよいでしょうか?