【テクニック】ARRAYFORMULA関数を好きな行数空けて展開する方法

SPONSORED LINK

こんにちは、スプレッドシート大好きなたぬ(@tanuhack)です!

ARRAYFORMULA関数と言えば、配列数式を用いて自分が指定したセルの範囲内に計算結果を自動挿入する関数として利用されています。

例えば、ARRAYFORMULAの範囲をA1セルからA100セルに指定した場合、A1セルからA100セルまでビッシリ、計算結果が挿入されてしまいます。

A1セルからA100セルまで、行番号を自動挿入する数式
=ArrayFormula((ROW(A1:A100)))
arrayformula-space1

今回は、ARRAYFORMULA関数を好きな数行空けて展開するプチテクニックを紹介します。

1行空けて計算結果を展開する

先程の関数を例に紹介します。

A1セルからA100セルまで、行番号を自動挿入する数式
=ArrayFormula((ROW(A1:A100)))

結論から言うと、数行飛ばしのテクニックは、ARRAYFORMULAとIF関数を組み合わせで実現することができます。

奇数行だけ計算結果を展開する

arrayformula-space2

ISODD関数を使います。

ISODD関数
=ISODD(x)
xが奇数ならTRUEを返す
A1セルからA100セルまで、奇数行なら行番号を自動挿入する数式
=ArrayFormula(IF(ISODD(ROW(A1:A100)),ROW(A1:A100),""))

偶数行だけ計算結果を展開する

arrayformula-space3

ISEVEN関数を使います。

ISEVEN関数
=ISEVEN(x)
xが偶数ならTRUEを返す
A1セルからA100セルまで、偶数行なら行番号を自動挿入する数式
=ArrayFormula(IF(ISEVEN(ROW(A1:A100)),ROW(A1:A100),""))

好きな倍数空けて計算結果を展開する

剰余を計算するMOD関数を使います。

MOD関数
=MOD(x,y)
xをyで割った余りを返す。

つまり、何かの倍数を求めたいなら、x/yの余りが0になれば良いということになりますね。

A1セルからA100セルまで、5の倍数なら行番号を自動挿入する数式
=ArrayFormula(IF(MOD(ROW(A1:A100),5)=0,ROW(A1:A100),""))
arrayformula-space4
A1セルからA100セルまで、5の倍数なら行番号を自動挿入する

逆に、5の倍数以外に計算結果を実行させたい場合は、逆集合の『<>』を使います。

A1セルからA100セルまで、5の倍数以外なら行番号を自動挿入する数式
=ArrayFormula(IF(MOD(ROW(A1:A100),5)<>0,ROW(A1:A100),""))
arrayformula-space5
A1セルからA100セルまで、5の倍数以外なら行番号を自動挿入する

このテクニックの注意点

1つだけ注意すべきことがあります。

今回紹介したテクニックは、IF関数を使って、条件式を満たさないものは空白で表示させているに過ぎません。

つまり、計算の途中に何かしら文字や数字を入力した場合、エラーを返します。

arrayformula-space6

さいごに

今回は、ARRAYFORMULA関数を好きな行数空けて計算結果を展開させる方法を紹介しました。

なかなかクセが強いARRAYFORMULAですが、その分こんな感じのテクニックが数多く存在します。

またどこかでお会いしましょう。

SPONSORED LINK

Time Ticketはじめました

スプレッドシートで、こんなお悩みありませんか?

  • 「シートの読み込みを高速化させたい」
  • 「あるサイトのデータを自動で定期的にスプレッドシートに記入させたい」
  • 「別のスプレッドシートからデータを持ってきたい」
  • 「条件付き書式を使って、自動でシートに色をつけたい」
  • and more …

当講座に対してのレビュー

ABOUTこの記事をかいた人

たぬ

26歳。作業の90%をPythonにやらせているデータサイエンティスト兼ブロガー。 単純作業を自動化させ、クリエイターの生産性を上げるために当ブログを設立。毎月15万人に読まれています。 ストレングスファインダー:戦略性・最上志向・目標志向・未来志向・個別化