SpreadSheetの使い方

【スプレッドシート】arrayformula関数内でのSUM関数の使い方

スプレッドシートの便利な関数ARRAYFOMULA関数。arrayformula関数とSUM関数を使って、複数列の1行ずつの合計を計算したい場合があると思いますが、それはどうやるのでしょうか?

この記事では、SUM関数と、SUM関数ではできないやりたいことの代替案をご紹介します。

ARRAYFOMULA(配列数式)
配列数式
配列を扱った数式を入れます。
使用例ARRAYFOMULA( IF( A:A=TRUE, TRUE, FALSE))

arrayformula関数内でのSUM関数は上手く機能しない

arrayformula関数内でSUM関数を使う場合、次のような表記になります。

「PV(午前)」「PV(午後)」の行ごとの合計が欲しい時に、つい次のような関数を創ってしまいます。しかし、次の関数では、SUM関数内の行列をすべて合算してしまうので、思ったように出力されません。

arrayformula関数内でsumを単純に使った結果

arrayformula関数内でSUM関数でやりたいことをMMULT関数を使って実現する

SUM関数では、やりたいことが実現できないことがわかりました。ただ、もう少し複雑なやりかたで、複数列を行別で合計にする方法があります。それには次のような関数の型を使います。

そして上記を例えば下記の数式にすると、次の画像のような結果が返ってきます。

arrayformula関数内でSUM関数でやりたいことをMMULT関数を使って実現する

解説:ARRAYFORMULA(D2:E2^0)

「^0」はべき乗の中のゼロ乗と言って、「ゼロ乗するとすべての数値が1になる」という数値の性質があります。これを利用することで、「1行2列かつ値が1なだけの行列」を得ることができます。

解説:TRANSPOSE(ARRAYFORMULA(D2:E2^0))

「1行2列かつ値が1なだけの行列」を転置するので、「2行1列かつ値が1なだけの行列」になります。

解説:MMULT(D2:E13,TRANSPOSE(ARRAYFORMULA(D2:E2^0)))

MMULT関数はMMULT(行列1, 行列2)という表記で、2つの行列の行列積を計算します。つまり上記の式は、D2:E13の行列と、「2行1列かつ値が1なだけの行列」の行列積です。

arrayformula関数内でSUM関数でやりたいことをSUMIF関数を使って実現する

「MMULT関数」は少し使うのに難易度が高いように感じます。調べたところ、SUMIF関数を上手に利用すると、MMULT関数を使ったときと同じ結果が得られるようです。ただし、筆者自身もなぜこれで結果が返ってくるのかがわかっていません。

実際に結果が得られる例を紹介します。

sumif関数で実現するarrayformula内sum

この関数の組み合わせの意味がわかる方はぜひご連絡ください。

行列が分からなくても、とりあえず型を使おう

数学を勉強していない方にとっては、上記の説明が何を言っているか伝わりづらかったと思います。ただ、業務上においてはとりあえず次の型を使えば、計算はできるので、参考にして下さい。


次の記事も読むと、未来のユーザーニーズが見えてきます

icon-check-circle Google検索の変遷から見えてくる「Googleがキュレーション化する日」
あなたの課題はなんですか?
【SEO】順位が上がらない。アクセスが集まらない。
SEOで重要なことは、ユーザーが求めている体験は何かを、感覚ではなく理論で落とし込み、どのページでも上位表示を狙える体制をつくることです。順位が上がらない、アクセスが増えないことでお悩みの方はお悩みの方は、立ち上げから1,500万PVにまで成長させた私のSEO経験がお役に立てるかもしれません。お気軽にご相談ください。
【アフィリエイト】成果が発生しない。リンクをクリックされない。
アフィリエイトで重要なことは、「何を伝えるか」ではなく「どういう気持にさせるか」「何を伝えないか」です。アフィリエイトの成果を加速させたい方は加速させたい方は、4年間積んだアフィリエイト経験が役に立つかもしれません。お気軽にご連絡ください。
【サービス登録率】登録まで行かない。登録率が改善しない。
登録率改善で重要なことは、ユーザーの思考回路を順を追って仮説として1つずつ検証していくことです。1%→3%に登録率を改善させた経験をノウハウ化して共有いたします。
【広告運用】CPAが下がらない。毎回数値がブレる。
広告運用で重要なことは、「これが刺さるだろう」と再現性の無い施策をうつのではなく、頻繁にクリエイティブを変更しても、同じ効果が維持できる検証をし続けることです。転職広告のCPA20,000円→8,000円にした経験で、お役に立てることがあるかもしれません。気軽にご連絡ください。
Twitterをフォロー 30分相談 コンサル相談 匿名質問
(2018年3月12日現在、1件コンサルの空きがあります)