エクセルにて、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と関連する良く見られている質問

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

QEXCEL: 日付のセルに1/2/3と入れると、2001/2/3と解釈されるが、2003/1/2と解釈させるには?

タイトルのとおりです。アメリカでは、1/2/3と書くと普通は2003年1月2日と解釈されます。
EXCELにて、 日付のセルに1/2/3と入れると、2001/2/3と解釈されますが、表示形式は2/3/01と指定できるにもかかわらず、入力形式は年/月/日と固定されていますよね。これは何とかならないでしょうか?
入力→解釈→表示が全て「月/日/年」と一貫していると、いちいち翻訳せずに済むのですが・・・。

Aベストアンサー

コントロールパネルの「地域と言語のオプション」で設定できます。

【手順(WinXPの場合)】
1.[スタートメニュー]-[設定]-[コントロールパネル]を選択
2.コントロールパネルの「地域と言語のオプション」を開く
3.「地域オプション」タブの「標準と形式」で「英語(米国)」を選択
4.[適用]ボタンを押す
5.[OK]ボタンで画面を閉じる
⇒Excelで「1/2/3」と入力すると「2003/1/2」と認識される

※Windows全体が手順3で選択した表示形式に変わります。

Qsheet1(1月)からsheet12(12月)をsheet13(H17年度)に集計したい

sheet1(1月)
A   B  C
1 得意先  銀行  金額
2 aa社 xx 50
3 cc店 yy 30
4 ee社 xx 20

sheet2(2月)
  A B C
1 bb zz 50
2 ee xx 30
3 cc yy 50
4 dd ww 30

目的のsheet
sheet13(H17年度)
A     B    C    D
1 得意先  1月   2月   3月
2 aa社   50  
3 bb社 50
4 cc社 30 50
5 dd社 30
6 ee社 20 30

Aベストアンサー

元ファイルをシート分けせずに、月フィールドを作って整理し
ピポットテーブルを使えば一発です。

得意先銀行金額月
aaxx501月
ccyy301月
eexx201月
bbzz502月
eexx302月
ccyy502月
ddww302月

としておき、ピポットテーブルで
行:得意先、列:月、データ:合計/金額とすればよいでしょう

Q【Excelの不思議な日付処理の初期値の疑問】日付データの基準日が1900/01/00 0:00なの

【Excelの不思議な日付処理の初期値の疑問】日付データの基準日が1900/01/00 0:00なのは何故ですか?

1900/01/01 0:00が基準日だと思っていましたが、

=now()-now()

にすると1900年1月0日0秒という存在日付の0日が基準日になっていることが分かりました。

日付データの基準日が存在しない日にちなのに計算は正しく表示されます。

どういう仕組みで整合性が取れるのか教えてください。

Aベストアンサー

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13171705193
こっちに有効な回答が最初の最初に入っているのに何故マルチポストをするのやら……

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。


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

人気Q&Aランキング

おすすめ情報