男女別の最高点と最低点、平均点などを知りたいとき

処理対象の表を男女を基にして並べておく必要がありますが、下のような方法は、いかがでしょうか?
MATCH関数の検索タイプの特徴をうまく使うと処理できます。

送信者 OpenOffice
このサンプルファイルは、SKYDRIVEからcalc143.odsをダウンロードしてください。

関数名:MATCH関数
書式:=MATCH(検索値;検索範囲;検索タイプ)
何ができる:検索範囲の中から、検索する値が何番目のセルにあるかを返す
平たく書くと:=MATCH(E2;$B$1:$B$71;0) で、$B$1:$B$71の範囲でE2セルの値が上から何番目にあるかを返します。
ここで、検索タイプが0(ゼロ)の場合、E2と完全に一致するセルを対象にします。もしも複数あれば、一番最初に現れるセルを戻り値にします。
ここで、検索タイプが1の場合、E2以下の最大値を対象にします。もしも複数あれば、一番最後に現れるセルを戻り値にします。

この特性を使って、F2セルでは、性別がFの最初のセルが範囲内で何番目かを探しています。G2セルでは、性別がFの最後のセルが、範囲内で何番目かを探しています。

  1. ここで返されるそれぞれの値をADDRESS関数に当てはめてアドレスを生成
  2. INDIRECT関数をかぶせてADDRESS関数で得られた値を計算できる形に加工
  3. MIN関数、MAX関数、AVERAGE関数に当てはめる



送信者 OpenOffice

=MIN(INDIRECT(ADDRESS(F2;3)):INDIRECT(ADDRESS(G2;3)))
F列とG列を作りたくない場合は、
=MIN(INDIRECT(ADDRESS(MATCH(E2;$B$1:$B$71;0);3)):INDIRECT(ADDRESS(MATCH(E2;$B$1:$B$71;1);3)))
他、最大値を求めるときは、MAX関数、平均を求めるときはAVERAGE関数などに換えれば良いだけです。



ADDRESS関数とINDIRECT関数の使い方

関数名:INDIRECT関数
書式:=INDIRECT(参照範囲)
何ができる:文字列として入力されたセル番号や範囲を計算式で利用できるようにする
平たく書くと:=INDIRECT(A3)でA3セルを参照範囲として計算式の中で利用できるようにします。

関数名:ADDRESS関数
書式:=ADDRESS(行番号;列番号;種類;A1;シート名)
何ができる:範囲の中で行番号と列番号が交差するセルのアドレスを文字列として返す
平たく書くと:=ADDRESS(3;1)で$A$3セルが返されます。
●ADDRESS関数で指定する種類と返される値:
種類を省略すると絶対参照・・・$A$3
種類を1に設定すると絶対参照・・・$A$3
種類を2に設定すると相対参照・・・A$3(行を固定)
種類を3に設定すると相対参照・・・$A3(列を固定)
種類を4に設定すると参照なし・・・A3
上の例では、省略して問題ありません。
●ADDRESS関数で指定するA1と返される値:
0を指定するとRC方式でのADDRESSが返されます。通常のA1方式でADDRESSを得たいときは省略して問題無しです。
●シート名:ADDRESS関数を入力しているsheetのほかのsheetを参照したい場合は、sheet名を入力します。上の例の場合は不要です。
この記事をクリップ!