ここから本文です

エクセル関数に詳しい方、教えてくだささい。 社内売り上げイベントをやるため...

tom********さん

2019/8/1711:06:23

エクセル関数に詳しい方、教えてくだささい。

社内売り上げイベントをやるため、順位付けをします。
契約本数と売り上げ金額の両方で順位を付けます。

同じ売り上げ本数でも、金額が多い方が上位になります。

この計算式を出すのに、どの関数を使えば良いのか?さらに、やり方をご伝授お願いいたします。

閲覧数:
93
回答数:
4
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

mmi********さん

2019/8/1711:49:42

本数が優先で同じ本数の場合は金額順という事ですか。

金額の最大桁数は何桁ですか。
例えば5桁だとしたら、作業列を使って
=A2*100000+B2

としてRANK関数を使えばよいのでは。

D2
=RANK(C2,C:C)

本数が優先で同じ本数の場合は金額順という事ですか。

金額の最大桁数は何桁ですか。...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

tai********さん

2019/8/1713:48:07

同じ本数なら売上金額の多い方が上、ということですね。
本数の最少単位は1ですから本数に金額を小数にして加重、重みを付けます。
1を超えると本数の整数値の値が変わってしまい順番が狂います。


ただ、極端に100本で10万円、10本で100万円という場合はちょっと現実味がなくります。実際はそうことは起こらないとは思いますが、

A列名前、B列本数、C列金額の列、26人として、

D2セルに
=SUMPRODUCT((B$2:B$27+C$2:C$27/10^8>B2+C2/10^8)*1)+1

下にコピーします。


G列から右は並べ替えた表です。

同じ本数なら売上金額の多い方が上、ということですね。...

プロフィール画像

カテゴリマスター

aka********さん

2019/8/1712:35:41

添付参照
各担当者の ポイントを集計し 順位を 付ける
ポイントの計算は D2に =(COUNTIF(B:B,">"&B2)+1)/10+COUNTIF(C:C,">"&C2)+1
といれて 下にオートフィルします。
これで ポイントが集計できます。
この式の意味を下図で 説明します。実際は 下図は不要です。説明のための表です。

まず 売り上げが基準ですから
売上で順位をつけます。
それが COUNTIF(C:C,">"&C2)+1です C列に Cより大きい値が0になら
C2が 最大値で 1位 1個あれば 2番目ですから 2と 計算してくれます。
これが K列です。

契約本数も基本は 一緒で COUNTIF(B:B,">"&B2)+1 で いいのですか
売上が 基本で足して売り上げをうわまっては 行けないので
(COUNTIF(B:B,">"&B2)+1)/10とします。
これが J列です

この時担当者が10人以上いれば 100で割ります。

二つを足して物が D列と L列です
=(COUNTIF(B:B,">"&B2)+1)/10+COUNTIF(C:C,">"&C2)+1

これに順位をつけます。
今度は ポイントが少ない方が1位です。
そこで M列には =COUNTIF(D:D,"<"&D2)+1 と
D列の中で D2より低いものが 幾つあるかで 順位がきまります。
M列が その順位結果です。

これでも いいのですが M2とM7は 同ポイントで 同じ2位です。
3位はありません。
そうすると H列の様に順番に 表示できません。
そこで =(COUNTIF(B:B,">"&B2)+1)/10+COUNTIF(C:C,">"&C2)+1の

+1の代わりに +COUNTIF(D$2:D2,D2) としてやります。
これで その行から上の行までに同じポイントが なければ1
あれば あった数分たしていきますので同率順位をなくせます。
それが これが N列とE列に入っています。

M2、M7が 2位だったものが 2,3と なっています。
これで 同位なしの順番が付きます。
そこで H列に =INDEX(A:A,MATCH(ROW(A1),E:E,0)) といれ オートフィルすれば 名前を 順番に 表示します。

添付参照
各担当者の ポイントを集計し 順位を 付ける
ポイントの計算は D2に...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

non********さん

2019/8/1712:11:30

作業列を使えばより簡単かと思います。

添付図:
H2に、
=(RANK(B2,B$2:B$8)&"."&RANK(C2,C$2:C$8))*1
これを下へオートフィルします。

単純順位はD2に、
=RANK(H2,$H$2:$H$8,1)

ついでに、上位順に氏名を表示するとしたら、
G2に、
=INDEX($A$2:$A$8,MATCH(SMALL($D$2:$D$8,ROW(A1)),$D$2:$D$8,0))

作業列を使えばより簡単かと思います。

添付図:
H2に、...

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる