LANG SELRCT

コードを書く場所についてはこちら

2018年12月4日火曜日

ARRAYFORMULA関数を使ってみる


関数の話です

関数の入ったセルを下に引っ張らなくても先頭行に書くだけで使える
ARRAYFORMULA関数についての備忘録


まずやってみる

スプレッドシートのA列にこのように1~5までの数値を入れておいて
AB
1数値判定
213より小さい
323より小さい
433より大きい
543より大きい
653より大きい


B2セルにこのような関数を入れると
=ARRAYFORMULA(IF(A3:A6 >= 3,"3より大きい","3より小さい"))


B3以降は自動で結果が表示される


A列の個数が決まっていない場合

INDIRECTとCOUNTAで指定した列で値が入っている行までという指定もできる

=ARRAYFORMULA(IF(A2:INDIRECT("A"&COUNTA(A2:A)+1) >= 3,"3より大きい","3より小さい"))

COUNTA関数とINDIRECT関数について
  • COUNTA関数は選択範囲に存在する値の個数を返してくれる
  • INDIRECT関数はセル参照を文字列で指定できる


上記のfxの中でやっていること

COUNTA(A2:A)
で2行目からの個数を出すと5という数値を得られる

対象の行数は5行目までなので+1して
COUNTA(A2:A)+1

そしてそれを
INDIRECT("A"&COUNTA(A2:A)+1)
とすると

上記のシートの例では
A7
という結果を得られるので

A2からの範囲を指定するためにこう書いて
A2:INDIRECT("A"&COUNTA(A2:A)+1

その結果
A2:A7
という範囲を得られる



ちなみにこんな書き方でできないか試してみましたができませんでした
=ARRAYFORMULA(IF(A2="","",IF(A2:A >= 3,"3より大きい","3より小さい")))


指定したシートの指定した範囲を別の場所に表示することもできる

IMPORTRANGE関数でもできますが、アクセス許可を求められるので
ARRAYFORMULAの方が手軽にできます

D1セルに
=ARRAYFORMULA(A1:B)
と書くとA1からB列の値をD1を起点に表示できる


関連記事