ARRAY FORMULA関数
この記事は2018/09/25 に更新されました。
どうもYnek0です。
Googleスプレッドシートの関数についてです。
ARRAY FORMULAについての使い方です。

 

ARRAY FORMULA関数がGoogleスプレッドシートを
代表する関数といっても過言ではないです。

 

ARRAY FORMULA関数に関してはGoogle様より
独自にショートカットキーもご用意されているご身分です。
なんかスゴイって事だけが伝わってきましたよね。
そんなARRAY FORMULA関数のご紹介です。

 

では以下目次です。
スポンサーリンク

聞いたこと無いARRAY FORMULA関数って何?

 

最初なんと読むのか迷いますよね。

読み方は『アレイフォーミュラ』と言うらしいです。

 

ARRAYは配列

FORMULAは式

 

統合すると配列式と言うこととなります。
つまりはひとつの結果しか出さなかった関数を
複数列対応の関数に変化させる関数
それがARRAY FORMULAです。
うん、よくわからない!
よくわからないですよね、では分るように
基本構文から順に説明していきますね!
スポンサーリンク

基本構文

まずは基礎からやっていきましょう
ARRAYFORMULA(配列数式)

 

いや分かんないし、配列数式って何よ?

 

ですよねー。

 

ちょっと言葉で説明すると非常に長くなるので

一度スプレッドシートを見せますねっ!ドン!

なーんだ、どっちも結果同じじゃないか。
それだったらよく分からないARRAY FORMULAを使うよりIFを使った方がマシじゃないか。

 

そう思うじゃないですか。

 

では数式を見せましょう。

 

こちらですドン!

※数式表示させながらスプレッドシートの表示が出来なかったので画像で処理しました。
おっ?なんかARRAY FORMULA関数は式が1つだけだ。下の値は何?手入力?
ARRAYFORMULA関数の下にある○と×は自動的に入力されます。
つまりは1つの式のみでIF単体を1セル1セルで書いたかのような処理をしてくれます。

 

おっ、そういうこと!FILTER関数とかUNIQUE関数とかと
似たようなことを自分がやりたい関数で出来るって事?

 

まずはそんな感じで理解して頂けたらと思います。

 

ARRAY FORMULA関数は単体では特定の何かの結果を出すと言う事はせず、
出力する結果を決める式を使用するユーザーが考えるようになっています。

 

関数の記述が変わります

今回例であげたARRAY FORMULA関数のIF文の記述は下記の通りです。
ARRAYFORMULA(IF(C2:C10 >=20,"○","×"))

 

ん?いつものIF文と変わってない?

 

良い目の付け所です。
ARRAY FORMULA関数は関数を単一では無く範囲で指定する事が出来ます。

 

今まで値1つだけ入れてね!って言われていた関数が数多くあると思います。
それらのほとんどはこのARRAY FORMULA関数で範囲指定する事が可能です。
へぇー、便利なんだね。だんだんすごさが分かってきた。
それはとても嬉しいです。
それ以外にもメリットはあるんですよ。

メンテナンスの省略化と重さ軽減

 

Googleスプレッドシートとはいえ、関数を多く使っていたら

それは表示が重くなります。

 

それを軽減させるのがARRAY FORMULA関数を初めとする

独自関数の数々なのかなと考えます。

 

メンテナンス作業1つにおいても全然作業量、時間共に
断然に違いますので非常に有用です。
確かに数万行のネストされたIF文を全てちまちまと変えていない作業をするより
はるかに効率的だし精神的にも負担が無いよねw
そうそう、そう言った作業を一瞬で終わらせる事が出来て次のタスクに早く取り組める
そして、常時定時ダッシュが出来るというわけなのです。

応用

基礎は単体の関数をARRAY FORMULA関数を使用しての
出力させると言う事でした。
それでは次は応用編です。

例題

簡単な分別システムを作ってみましょう。
例えば、仕事で使うとして、
二つのシステムからCSVが出力して
CSV1は営業員情報が羅列されている営業員マスター
CSV2は営業員の売上データが入った売上マスター
条件として売上マスターも営業員マスターもCSVの値を貼り付けただけで
売上が25万以上の営業だけを抽出したデータが分別され
別シートに自動出力するようにして欲しいと
お願いされたことにします。
その際にはどういったことをするかというと
こちらです。
※タブのCSV1とCSV2をご参照ください。

解説

 

CSV1には営業データ

CSV2には売上データ

 

応用ARRAY FORMULAには売上が25万以上の営業が

ARRAY FORMULAの応用で出力されています。

では、どのように出力されたか式を見て見ましょう

UNIQUE(
 FILTER('CSV1'!A:B,
  ARRAYFORMULA(
   MATCH('CSV1'!A:A,'CSV2'!A:A,0)
  ),
 'CSV2'!B:B >=25)
)

ネストの嵐じゃねーかよwもはや理解不能w

 

そうですよね。

 

でも思考停止をしていてはダメですよ。

 

しっかりと説明しますね。

 

ネストは基本、分解してから見た方がわかりやすいです。

  1. ARRAY FORMULA関数を適用したMATCH関数を使用して営業の照合を行う。
  2. MATCH関数にてCSV1とCSV2に存在する営業を抽出し、FILTER関数で条件に合った人の絞込を行う。
  3. UNIQUE関数でFILTER関数で出た結果からの重複列を削除する。
  4. 出力

 

と言った感じです。

 

UNIQUE関数とFILTER関数に関しましては

別記事にてご案内しております。

応用の例文も載せていますので良ければこちらも併せて読んでもらえると

嬉しいです。

 

この例だとMATCH関数いらなくね?

ってなったりなんでUNIQUE関数使う意味は?

ってなるんですが、

CSV1とCSV2のデータ量が多ければ多いほどに

効果が増していきます。

 

あとFILTER関数にCSV2にある売上月を6月に設定したら

実際はいらないかもしれないですね。

 

分解していったらしっかりと分かってくるから諦めない事!

 

ショートカットキー

 

冒頭でお伝えしましたGoogle様が独自のショートカットキーを

設定しているとお話しましたね。

 

一応WindowsとMacでちがっているので両方掲載しておきます。

 

セルに=を入力した状態で

Windows:Ctrl+Shift+Enter

Mac  :Command+Shift+Enter

 

ぜひ使ってみて下さいね。

 

最後に

ARRAY FORMULA関数については以上となります。

 

応用はいくつかあるのでまた随時追加していこうと思います。

 

たしか結構面白い使い方があったはずなので探してみます。

 

やっぱりこの関数は説明が長くなりますね。

 

しかし覚えたら確かに素晴らしい関数である事は間違いないので

是非是非チャレンジしてみて下さい。

 

では今日はこの辺で、またご贔屓に。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事