スプレッドシート スプレッドシートで日を飛び飛びに Nozomu.Kon 2020年4月24日 / 2020年4月25日 昨日「ARRAYFORMULA関数を使って、7日毎の日付を並べたい」といったご相談がありました。 ARRAYFORMULA関数って? 聞きなれない関数名ですが、ARRAY(配列)FORMULA(計算)する関数で、記述の仕方によってはセルごとに関数をコピペしていた作業が0になります。 0calではありませんよ? 簡単な例 元々のC2セルの計算式が「=A2+B2」の式があったとき C3セル以降も「=A3+B3」と式を展開する必要があります。 ARRAYFORMULA関数を使うと C2セルに「ARRAYFORMULA(A2:A9+B2:B9)」と入力するだけで配列計算(範囲計算)をやってくれます。 便利&楽でしょう? ARRAYFORMULAの注意点 配列を一気に処理してくれるARRAYFORMULAはとても便利なのですが、注意すべき点があります。それは「ARRAYFORMULA関数で展開したデータは自身を参照してはいけない」という点です。 基準セルをA1にしてA2セルの関数を「=ARRAYFORMULA(A1:A9+7)」と書けば展開されそうですが、A2セル以降はARRAYFORMULA関数自身によって書換&参照されるため循環参照エラーが発生します。 本題の飛び飛び日付 参照が重複しないこと飛び飛びを別の表現をすること これがクリアできればいいのでこんな関数に仕立てました。 「=ARRAYFORMULA(A1+ (ROW(A2:A9)-1) * 7)」 A1…日付基準セルROW(A2:A9)…行番号を返す関数ROW()を使用、上記式では2~9を返す。ここでARRAYFORMULAが生きてきます。-1…ROW(A2:A9)では2~9を返すため1~8への補正用*7…7日飛び この結果がこちらです。 A1セルに基準日、A2セルに関数を入力しただけで7日おきの日付が展開されました。 事例に使ったスプレッドシートは下記リンク先にあります。コピーは自由です。ご自身の責任の範囲内でご利用ください。 https://docs.google.com/spreadsheets/d/1ZiL-L72-oocpYQgzGr5JzNQjm-YOOSefquNbZcZQQrY/edit#gid=669179293 1週間 7日 ARRAYFORMULA スプレッドシート 自動化 配列関数 ABOUT ME Nozomu.Kon 集客導線、SNS導線、広告数値自動取得、LP/HP/CSS、ファネルツールなどなど個人・法人のスモールビジネスをIT/AIのチカラでフルサポートしています。 BLOG:https://embedded-property.net