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

arrayformula-space

SPONSORED LINK

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

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

arrayformula-space

Time Ticketはじめました
実務で即戦力になるためのスプレッドシート講座開講!

記事を読んでも、よく分からなかった人やもっと深く知りたい人はこちらからご連絡ください。

ブログ特典!!

『クーポンコード:9876』とメッセージいただければ、どのレベルのコースでも初級コースと同じ価格で教えます!!

スプレッドシートをより深く学んで、実務で即戦力になりませんか?

ABOUTこの記事を書いてる人

たぬ(谷口健太)

25歳社会人。本職は福岡の通販会社でWebマーケッターやっとります。 プログラミング✕マーケティング=最強説を唱えており、非効率的な世の中に革命を起こそうと本ブログを設立。 ストレングスファインダー:戦略性・最上志向・目標志向・未来志向・個別化

NEW POSTこのブログの最新記事