ARRAYFORMULA
範囲に対して数式を適用できる、GoogleSpreadsheetsのキラー関数の一つ。
=ARRAYFORMULA(A:A*B:B) でA列とB列の乗算結果を配列展開できる(A,B列に適当なデータをいれて空のシートのC1列に書いてみ)
式内には四則演算、文字列演算だけでなく、関数式も含めることができる
便利関数だが、他の関数との食い合わせは微妙で、内部で使えない関数も多い
内部で使えない関数
IMPORTXML
そもそも範囲を指定する関数とは食い合わせが悪い、SUMIFSとか
(求ム追加情報)
ベストプラクティス
ARRAYFORMULAは多くのケースで列単位の演算に使う。A:A*B:Bのように列全体を演算対象として指定すると、見出し列を規定しづらい、最終行以降が無駄な処理になる、等々の問題が発生する。このベストプラクティスはムダムラなくARRAYFORMULAを使うためのもの(同時に行列追加に対する頑健性も実現する)。
=ARRAYFORMULA(LEFT(INDIRECT(CELL("address",A2)&":"&ADDRESS(COUNTA(A:A),COLUMN(A2))),5))
サンプルは素朴にLEFTで行頭5文字を範囲で切り出すものだが、A列の行数が可変すること、列の追加で演算対象がA列でなくなることも加味してある。
外部記事
使ったことある人
minemuracoffee.iconakix.iconkatsu.icon
ARRAYFORMULA使った方が軽くなるみたいなのをどこかで見かけて以来、たまに使ってますakix.icon
頭の計算式に気づかない人が値をそのまま変更して、式が壊れたりしましたkatsu.icon
INDEX+MATCHを軽量化目的で、ARRAYFORMULA+VLOOKUPにしましたが、メンバーから重く感じるとコメントもらって、戻しました。。何かパフォーマンスを図る良い方法があれば知りたいですkatsu.icon
=で式を入れたあと、Ctrl+Shift+Enterのショートカットキーで自動入力されます。最近知ったkatsu.icon