配列定数ワークシート関数での配列定数の応用 2019.03.21
配列定数とは、値を予め配列的データ構造に収めるもので、ワークシートの数式内で直接用いる。配列は「{ }」で表し、「,」が列、「;」が行の区切りとなる。
例:{1,2;3,4}
これは次のようなイメージ。
データが文字列である場合は、「""」で囲む。
例:{"Excel","Tips";"for","Teachers"}
次のようなイメージ。
配列定数を用いると、数式を簡潔に表現できる場合がある。
応用する関数
・OR関数
・INDEX関数
・COUNTIF関数
OR関数での応用
Excelヘルプより
「OR 関数は、いずれかの引数が TRUE と評価された場合は TRUE を返し、すべての引数が FALSE と評価された場合は FALSE を返します。」
セル[A1]の値が1か3か5の場合に「○」を表示
●配列定数不使用
=IF(OR(A1=1,A1=3,A1=5),"○","")
●配列定数使用
=IF(OR(A1={1,3,5}),"○","")
INDEX関数での応用
INDEX関数はセル範囲や配列から、任意の位置の値やセル参照を返す。
配列定数からランダムに値を取り出す例
=INDEX({"グー","チョキ","パー"},,RAND()*3+1)
数式が計算されるたびに、「グー/チョキ/パー」のいずれかがセルに表示される。
配列(列)と配列(行)を掛け合わせた2次元配列から値を取り出す
=INDEX({2,4,6}*{3;5;7},2,2)
{2,4,6}が列、{3,5,7}が行として、それぞれの要素が掛け合わさる。次のようなイメージ。
上記数式では、2行目と2列目を指定しているので、その交点である「20」が結果となる。
配列定数でなく、上の図を基にセル範囲として数式で表すと次になる。
=INDEX(B1:D1*A2:A4,2,2)
COUNTIF関数での応用
Excelヘルプより
「COUNTIF 関数 (統計関数の 1 つ) は、1 つの検索条件に一致するセルの個数を返します。」
下図セル[A1:A10]の中で値が「3」のセル個数を求める場合
=COUNTIF(A1:A10,3)
同じくセル[A1:A10]の中で値が「7より大きい」セル個数を求める場合
=COUNTIF(A1:A10,">7")
配列定数を用い複数条件でのセル個数を求める
先の図で、値が「3」または「7より大きい」セル個数を求める場合
●配列定数不使用
=COUNTIF(A1:A10,3)+COUNTIF(A1:A10,">7")
●配列定数使用
=SUM(COUNTIF(A1:A10,{3,">7"}))
COUNTIF関数の第2引数「検索条件」に配列定数を指定した場合、COUNTIF関数単体だと、セルに表示される値は、最も左の定数の検索結果となる。
SUM関数を用いると、COUNTIF関数で指定した配列それぞれの結果を合計し返す。
配列定数を用いた一括入力
配列定数を用い、セルに一括で九九を入力する例です。
●参考動画(32秒)