エクセルにて、sheet1に、横に日付、縦に担当者の売上表があります。
sheet2で、日付を指定すると、その日付の売上上位者を表示させたいのですが、どのようにすればよいでしょうか?良い方法を何卒教えてください。INDEX? MATCH?


<sheet1>
     1/1  1/2  1/3  1/4  1/5  1/6 ・・・
佐々木   2   5   1   3   7   0 
田中    5   1   0   0   2   1
鈴木    3   2   5   2   1   0
斉藤    3   3   3   1   4   2

<sheet2>

B1セルに日付を入力すると、その日の上位3名がB2~B4に表示される。

    1/2 ←入力
1位 佐々木 ←数式により表示
2位 斉藤  ←数式により表示
3位 鈴木  ←数式により表示

※同数による順位の重複は考慮しなくてよいです。

A 回答 (3件)

こんばんは!



LARGE関数で一気に!とやりかけたのですが、
1/1のように同数がある場合、2位と3位が「鈴木」となってしまうので、別の方法にしてみました。

↓の画像のように作業用の列を2列設けてみました。
作業列1のD2セルに
=OFFSET(Sheet1!A1,1,MATCH(B$1,Sheet1!$1:$1,0)-1)

作業列2のE2セルに
=COUNTIF(D:D,">"&D2)+COUNTIF(D$2:D2,D2)

という数式を入れフィルハンドルでずぃ~~~!っと下へコピーしておきます。

B2セルに
=INDEX(Sheet1!A$2:A$10,MATCH(ROW(A1),E$2:E$10,0))

という数式を入れ下へコピーすると画像のような感じになります。
(エラー処理はしていません)

作業列が目障りであれば遠く離れた列にするか
非表示にしておいてください。m(_ _)m
「エクセル 条件に合うデータの上位をエクセ」の回答画像1
    • good
    • 0
この回答へのお礼

さっそくのご返答ありがとうございます!
OFFSET関数・・・、これも勉強しなきゃいけないですね。。。

作業列がありますが、できれば作業列がなく数式組めないものでしょうか。
というのは、エクセルフォームが決まっているもので、ちょっとスペースに余裕がないもので。

お礼日時:2017/04/20 23:34

こんにちは



横からで、失礼ではありますが・・・

>エクセルフォームが決まっているもので、
>ちょっとスペースに余裕がないもので。
これが理由なら、工夫の余地はいくらでもあると想像しますが…?
決まっているフォーマットはシート全部を使っているのでしょうか?
XAA列とか、空いてそうな気がしますが?

回答者様も予想して
>作業列が目障りであれば遠く離れた列にするか
>非表示にしておいてください。m(_ _)m
と書いてらっしゃいますが・・・

どうしてもダメな場合は、別シートを利用するという方法もあります。
別シートの存在も邪魔になるのであれば、そのシートそのものも非表示にしておけばすみそうな気がしますけど。
    • good
    • 0
この回答へのお礼

ご返信ありがとうございました。
参考にさせていただきます。

お礼日時:2017/04/22 00:26

》 同数による順位の重複は考慮しなくてよいです


これはどういう意味ですか?
極端な例を挙げると4名全員が同点の場合も3位まで?誰を落とす?
    • good
    • 0
この回答へのお礼

ご返信ありがとうございました。
参考にさせていただきます。

お礼日時:2017/04/22 00:26

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報