コンピュータサービス技能評価試験
表計算2級 課題2 関数式による 表の完成

 

設問3

 順序(10) 対象範囲 M23:O25

   「金額」が 高額な 上位3位 の 「タイトル名」と

その 「会員区分」 及び 「金額」 を 求める

   

問題文を検討する

① 「上位3位」とあるので、使用するのは、LARGE 関数

  引数としては LARGE(配列, 順位)

  配列は、「金額」のセル範囲 I8:I32

  順位は、「◆金額上位3位」表の「順位」列を利用する L23

=LARGE(I8:I32,L23)

これで、求めることが出来るのは、その順位の「金額」です

② 求めるもの まず「タイトル名

  一覧から 求める

  分かっているのは、「金額」

  「タイトル名」の列から 「金額」と同じ行の「タイトル名」を求める

 LOOKUP 関数 でも 求めることが出来ますが

 出来れば、同じ表で、関数を再利用したい

この場合 INDEX 関数 を 使う 

 

書 式
  INDEX(配列, 行番号, [列番号])

 

INDEX 関数と言えば、MATCH 関数 セットで覚えましょう

MATCH 関数は、

範囲 のセルの範囲で、指定した項目を 検索

その範囲内の項目の相対的な位置を返します

その範囲で何番目にあるか求める

INDEX 関数

配列

 一覧表の「データ部分

  ※ 「データ部分」というのも一つのポイント

  列見出しなどは含めない データ部分だけ の セル範囲 C8:I32 

  

行番号

 LARGE 関数で、求めた「金額」が 一覧表のデータ部分で 何番目なのか求める

 これを MATCH 関数で、求める

  MATCH(検査値, 検査範囲, [照合の型])

検査値」欄

 ここに、LARGE 関数 を 設定する

  =LARGE(I8:I32,L23)

検査範囲」欄

 「金額(円)」列 = セル範囲 I8:I32

照合の型」欄

 完全一致を求めるので、「0」

 

列番号

 行番号 と 同じように考える

 「◆金額上位3位」表の「列見出し」を利用する

 同じように、MATCH 関数 を 使う

 MATCH(検査値, 検査範囲, [照合の型])

検査値」欄

  「列見出し」の M22 (=タイトル名)

検査範囲」欄

  一覧表の 7行目 C7:I7

では、実際に作成してみる

1.セル M23 を クリック・選択

2.fx (関数の挿入)

  [関数の挿入]で、INDEX を 選択する

  INDEX の場合 下のような画面が表示されます

  

 今回の場合

上の「配列、行番号、列番号」が 選択された状態で、[ OK ]クリック

3.[関数の引数INDEX が、表示されたら

  「配列」欄

  最初に 検討したように、一覧のデータ範囲を ドラッグ・選択する

  

4.この関数は、右や下で、利用するので それを考慮して 絶対参照にする

  セル範囲を選択したら、すぐに[F4]キー を 押す

   $C$8:$I$32

  

5.「行番号」欄に、カーソルを 移動

  「名前ボックス」欄の を クリック

   表示される関数に「MATCH」があれば、クリック

無い場合は、一番下の「その他の関数」をクリック  

6.MATCH 関数

  「検査値」欄に、カーソルがある状態で

  「名前ボックス」欄の を クリック

   表示される関数に「LARGE」があれば、クリック

無い場合は、一番下の「その他の関数」をクリック 

  

7.LARGE 関数

  「配列」欄 「金額(円)」のデータ範囲のセル範囲 I8:I32

   同じように、他の位置でも利用するので、絶対参照 に する

  「順位」欄 「◆金額上位3位」の「順位」列のセル L23 を クリック・選択  

  こちらは、絶対参照 ではなく

  行が移動したら 行参照 は、移動して欲しい

なので、相対参照(列固定)にする

   セル L23 を クリック選択したら [F4]キーを 3回押し $L23 にする

 数式バー内の MATCH 文字列内を クリックする

  

8.[関数の引数]が、MATCH に戻る

  「検査範囲」欄には

  「金額(円)」のデータ範囲 I8:I32 を ドラッグ・選択

   絶対参照 にする

  「照合の種類」欄には、完全一致を求めるので、「0」

  

9.数式バー内の INDEX 文字列内を クリックする

  

10.INDEX の 関数の引数になったら

  「列番号」欄

  「行番号」と 同じように MATCH 関数

  

11.今度は、列を決める

  基準 = 検査値は、

  「◆金額上位3位」表の「列見出し」= M22

  このセル参照は、常に 同じ 22行を 参照したいので、相対参照(列固定)

  [F4]キーを 2回押し M$22

  「検査範囲」欄 一覧表の7行目 C7:I7

  こちらは、絶対参照 $I$7:$I$7

  「照合の種類」欄は、完全一致 なので、0

  

 

これで、「数式の結果」に ジャバダンの野心 とあるので、[ OK ] クリック

 

=INDEX($C$8:$I$32,MATCH(LARGE($I$8:$I$32,$L23),$I$8:$I$31,0),MATCH(M$22,$C$7:$I$7,0))

 

まずは、下へ オートフィルしてみる

 

 

次は、右へ フィルする

 

残念ながら、「金額(円)」の列は、#N/A に、なってしまう

エラー値 #N/A は、数式で 参照の対象が 見つからないことを示しています

 

実は、こうなることは、分かっていました

何故ならば

INDEX 関数 の「列番号」欄の MATCH 関数

検査範囲」欄に、設定したセル範囲 $C$7:$I$7

このセル範囲のデータは

最後の I列 ですが、セル I7 のデータは、(円)だけなのです

 

ところが、

「◆金額上位3位」の列見出しでは、「金額(円)」なので

エラー#N/A に なるのです

つまり O23・O24・O25 の数式は、変更する必要がある

O23 の 数式

 =INDEX($C$8:$I$32,MATCH(LARGE($I$8:$I$32,$L23),$I$8:$I$31,0),MATCH(O$22,$C$7:$I$7,0))

修正するのは、INDEX 関数の「列番号」欄内の MATCH 関数

 MATCH(O$22,$C$7:$I$7,0)

このように、既に 設定されている数式(=関数)を 修正する場合

修正する関数がわかっている場合

数式バーで、その関数名内を クリックし カーソルが入ったら

fx を クリックする

 

すると その関数(MATCH)の [関数の引数]が、表示されます

  

検査値」欄内を Delete し

名前ボックス」の ▼ を クリック

「RIGHT」を 選択し 「RIGHT」の「関数の引数」を表示する

文字列」欄には、「◆金額上位3位」の列見出し O22

セル参照は、行固定の「複合参照」 O$22

文字数」欄には、3 にして 

一覧表の7行目にある「(円)」と 同じ文字列に変更する

  

もう この[関数の引数]の 左下 「数式の結果」に、値が表示されている

エラーでは、なくなっているので、[ OK ] クリックする

 

下へ、オートフィルする

  

=INDEX($C$8:$I$32,MATCH(LARGE($I$8:$I$32,$L23),$I$8:$I$31,0),MATCH(RIGHT(O$22,3),$C$7:$I$7,0))

ここまでやって 

令和4年度 コンピュータサービス技能評価試験 (表計算部門)
2級 試験問題 概要 PDF 

 19ページを 確認してみたら

 

 

 

なんと

INDEX 関数の「列番号」欄は、

自分で数えた、数値で 入力していました

 

 

でも 今回書いたことも 2級を受けるようならば 理解できると思います