配列関数のエラー対処法まとめ|草野球成績管理表でARRAYFORMULAのエラーを直す例で解説

フォーム・シート作成

ARRAYFORMULAやSUMPRODUCTなど、範囲をまとめて処理する「配列関数」は便利な反面、慣れないうちは#REF!#VALUE!といったエラーに戸惑いがちです。草野球の成績管理表でよく出会うエラーのパターンと、その直し方を初心者向けに解説します。

配列関数のエラーとは

📝 配列関数のエラーの正体(一言でいうと)

配列関数は「1つのセルの計算」ではなく「複数セル分の計算結果をまとめて出力する」動きをします。そのため、出力先に別のデータがすでに入っていたり、扱う範囲の行数・列数が揃っていなかったりすると、通常の関数では起きないタイプのエラーが発生します。

特に成績管理表でよく出るのは、次の2つです。

#REF! … 出力先の範囲がふさがっているときに出る
#VALUE! … 計算に使う範囲同士のサイズ(行数)が合っていないときに出る

成績管理表での実例:ARRAYFORMULAで#REF!が出るケース

個人成績シートで、F列に「打率」をARRAYFORMULAで一括計算しようとした場面を例にします。C列に打数、D列に安打が入っているとします。

試合日 打数(C) 安打(D) 打率(F)
4/6 4 2 #REF!
4/13 3 1 (手入力の値が残っている)
4/20 4 0

F2セルに以下の式を入力しても、F3以降にすでに手入力の値が残っていると、F2に#REF!が表示されてしまいます。

✅ F2セルに入れる式(F3以降は空にしておく)
=ARRAYFORMULA(D2:D30/C2:C30)

この1つの式だけでF2からF30まで打率が一括で表示されます。F3以降には何も入力しないのがポイントです。

STEP 1
#REF!が出たセルの下方向を確認する

エラーが出たセルから、式が本来出力するはずの範囲(この例ではF3〜F30)に何か値が入っていないか確認します。

STEP 2
出力範囲のデータを削除する

F3からF30までを選択し、Deleteキーで中身を空にします。ARRAYFORMULAの式が入っているF2セルは削除しないよう注意してください。

STEP 3
F2セルを選び直してEnterキーで再計算させる

出力範囲が空になれば、F2の式が自動的にF3以降まで結果を展開し、エラーが解消されます。

しくみを理解する:なぜサイズ不一致でエラーになるのか

📝 配列関数は「範囲まるごと」を1回で処理している

ARRAYFORMULAは、D2/C2、D3/C3…という計算を1行ずつ行っているように見えて、実際には範囲全体をひとまとまりの「配列」として一括処理し、その結果を出力先の範囲にまとめて書き込んでいます。

このとき、出力先のどこか1セルでもすでに別の値が入っていると、スプレッドシートは「書き込み先が確保できない」と判断し、範囲全体の出力を取りやめて#REF!を返します。一部だけ計算されて一部だけエラー、ということは起きません。

SUMPRODUCTの#VALUE!も考え方は同じです。かけ合わせる範囲同士(例:投球回の配列と登板数の配列)の行数が一致していないと、「どの行とどの行を掛け合わせればよいか」が確定できず、計算そのものが成立しなくなります。

よくあるミス

⚠️ 原因1:出力範囲に古い手入力データが残っている

以前は1行ずつ関数を入れて計算していたシートを、あとからARRAYFORMULAに変更したときに起きやすいミスです。古い式や値を消し忘れたまま新しい式を上のセルに入れると、出力先がふさがった状態になり#REF!が出ます。

⚠️ 原因2:SUMPRODUCTで参照範囲の行数がずれている

「C2:C30」と「D2:D31」のように、片方だけ範囲の終わりの行がずれていると#VALUE!になります。複数の範囲を扱う式では、すべての範囲の開始行・終了行を揃えることが大切です。

✅ この記事のまとめ
  • 配列関数は範囲全体をまとめて計算し、出力先の範囲にひとまとめで書き込む仕組み
  • #REF!は出力先の範囲が別データでふさがっているサイン
  • #VALUE!は掛け合わせる範囲同士の行数が揃っていないサイン。複数範囲の開始行・終了行は必ず揃える

次回予告

次回のテーマは「打率計算の複合式」です。ここまで解説してきたIFERRORやSUM、COUNTを組み合わせて、実際に成績管理表で使う打率の計算式を1つずつ組み立てながら解説していきます。

コメント

タイトルとURLをコピーしました