別シートにある成績表データの中から最高得点の名前をピックアップしたい
別シートにある成績表データの中から最高得点の名前を求めるには、セル範囲に名前を付ける必要があります。
はじめに
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)
EnterpriseZine関連記事
コメント
※技術的な質問はMicrosoftコミュニティで聞いてください!