www.wanichan.com
ワニchanのぱそこんわーるど〜Microsoft Office 総合情報&Tips〜

関数

HOME > Microsoft Office FAQ > Microsoft Excel FAQ

はてなブックマーク | Yahoo!ブックマークYahoo!ブックマークでこのサイトを登録している人数 人が登録

別シートにある成績表データの中から最高得点の名前をピックアップしたい

Sheet 2に以下のようにデータがあり、

  A B
1 名前 点数
2 wanichan 80
3 ちゃん 90
4 のみちゃん 70

Sheet 1のA1に優勝者の名前を表示させたい場合、どうすればいいでしょうか?

  A B
1   さん、おめでとうございます!
2    

1. Sheet2の成績表に名前の定義を作成します。

別シートを参照するとエラーになります。これを回避させるためには、参照させたい範囲に名前をつけると解決します。

表全体を範囲選択して、[挿入]→[名前]→[作成]をクリックします。

名前の作成ダイアログボックスで「上端行」のみチェックを入れた状態でOKボタンをクリックします。

これで、自動的に名前の範囲、点数範囲にそれぞれ「名前」「点数」と名前を付けることができました。

2. Sheet1のA1に数式を作成します。

セルを参照する→INDEX関数
最高得点を割り出す→MAX関数
検索範囲内に検索値と同じ相対的な位置を表す数値を返す→MATCH関数

以上、3つの関数を組み合わせて使います。
INDEX関数を選びましょう。

引数の選択で「配列,行番号,列番号」を選んでOKボタンをクリックします。

INDEX関数の中で、1列目なので、列番地は1ですね。しかし、行番号は最大値にマッチした番地を求めなければいけません。
配列は名前です。配列のところに「名前」と入力、または[挿入]→[名前]→[貼り付け]で、「名前」を選びます。

列番号は1なので、1と入力しておきます。

問題は行番号です。行番号にカーソルを移動させて、名前ボックス右横の▼印をクリックして、「その他の関数」を選んで・・・

MATCH関数を選んでOKボタンをクリックします。

さらに、MATCH関数の「検索値」にカーソルがある状態で同様にMAX関数を選びます。

点数の最大値を求めるので、点数と入力します。

MATCH関数に戻るには、数式バーのMATCHの文字列をクリックします。

検索範囲は点数と入力し、照合の型は0と入力して、OKボタンをクリックします。

結果はこのようになります。「青ちゃん」になりましたか?

=INDEX(名前,MATCH(MAX(点数),点数,0),1)

HOME

Contents

Microsoft MVP

Most Valuable Professional
Microsoft MVP for Expression
(Apr 2008 - Mar 2009)
/ FrontPage
(Apr 2005 - Mar 2008)