dポイントプレゼントキャンペーン実施中!

いつもお世話になっています。
特定のデータから上位3位を抽出する方法で試行錯誤をしています。
良い関数の組み合わせなど,お分かりになる方 ご意見お願いします。
Win:10 Office:2016

[全データ]
  A列(ミス型番) B列(ミス数)  C列(作業者)
1 A1234      3      大阪
2 B1234      8      東京
3 C1234      4      大阪
4 A1234      3      京都
5 A1234      1      奈良
6 D1234      11      滋賀
7 D1234      88      AMERICA
6 E1234      1       滋賀

上記のようなデータが200行ほどあります。
そのデータの中から【ミス数】が最も多い作業者,上位3名を抽出したいです。
結果は下記のように出そうと考えています。

[抽出データ]
  A列(ミス型番/Total)  B列(ミス数/Total)  C列(作業者)
1  2           12         滋賀
2  1           8          東京
3  2           7          大阪

A列はミスをした型番の合計です。
B列はミスをした個数の合計です。
C列は作業さやの名前です。
除外したい名前もあります(7行目)。可能であれば複数指定したいです。
複雑すぎて素人には難しいです。ピボットも考えましたが苦手です。

お時間ありましたらご協力お願いします。

質問者からの補足コメント

  • C列は作業さやの名前です。
    >C列は作業者の名前です。

      補足日時:2020/03/20 17:44

A 回答 (2件)

複雑な数式を考えるとか、マクロで解決するとかではなくて、素人?でも比較的簡単にやろうとする場合は、エクセルの機能をあれこれ組み合わせて、作業を繰り返すのが良いと思っています。



例えば、もとのデータがそのままでは扱いにくい場合には、作業者順で型番順にデータを一度並べ替えてしまえば、あとが考えやすいです。
データの並び順が(作業者順で型番順)ならば、行の上と下が違うかどうかで、扱いを決められます。
それをIF関数を使って、どの場合にどうするかを決めます。
同じ区分になる数値データを集計するのはSUMIF関数を使う。
集計範囲を何行分にするかを計算する方法を考える。
集計範囲を数式にいれるのにOFFSET関数を使う。
同じ区分になるデータ個数をカウントするのはCOUNTIF関数を使う。
データ個数をカウントすると同じ個数のデータがいくつもできてしまい、後で扱いにくくなってしまう場合には、(個数と行番号の数千文の1との和)で個数を決めるようにすれば、必ずユニークな数になります。
大きい順で何番目の値を取り出すにはLARGE関数を使う。
ある値のあるセルの位置を出すにはMATCH関数を使う。
セル位置が分かれば、INDEX関数で、ある範囲にあるセルの値を取り出すことができる。

そういうのを組み合わせます。  例は、画像でみてください。
「【Excel/関数/Count関連】特定」の回答画像2
    • good
    • 1
この回答へのお礼

参考になりました。ありがとう御座います。
仰って頂いた通り,必要なデータをしっかり抽出し
組み合わせる事でファイルの作成ができました。
ありがとう御座います。

お礼日時:2020/04/03 14:17

とりあえず COUNTIF関数 で作業者毎の数を数えて、


その後 LARGE関数 で順位を付けた値を VLOOKUP関数 や XLOOKUP関数 で抽出すれば良いと思います。

・・・
ミスの合計数が同じ場合があると厄介ですので、
行番号をCOUNTIF関数で返る値に加えてしまいましょう。
行番号を1/10,000した数値を足すのです。(ROW関数で ”ROW()” とするだけで行番号を得られます)
そうすれば、整数部は同じでも小数点以下の数値が異なるため
同じ「数値」は存在しなくなります。

・・・
これらを試行錯誤してみましょう。
答えを教えられて分かったつもりにならないためには必要なことです。
どうにもならなかったら、それまで試した数式を「補足」に書くと改善するてんを教えてもらえると思います。
    • good
    • 1
この回答へのお礼

参考になりました。ありがとうございます。

お礼日時:2020/04/03 14:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!