Excelで作成したファイルをGoogleスプレッドシートへ移行したところ、「今まで使えていた関数が動かない」「エラーが表示される」「計算結果がExcelと違う」と困った経験はありませんか。
Googleスプレッドシートは多くのExcel関数に対応していますが、すべての関数が同じように動作するわけではありません。関数名は同じでも動作が異なる場合や、Excel専用の関数が利用できない場合もあります。
そのため、Excelで問題なく動いていた数式でも、Googleスプレッドシートへ変換するとエラーになることがあります。
この記事では、GoogleスプレッドシートでExcel関数が動かない主な原因と、確認しておきたいポイントを解説します。
✅ GoogleスプレッドシートでExcel関数が動かないのはなぜ?
「Excelファイルを開けたから関数もそのまま使えるはず」と考えてしまう方は少なくありません。しかし、GoogleスプレッドシートはExcelと互換性があるものの、完全に同じソフトではありません。内部の仕組みや対応している機能には違いがあり、その差が関数のエラーや計算結果の違いとして表れます。エラーだけでなく、見た目は正常でも結果が変わっているケースもあるため注意が必要です。まずは、関数が動かなくなる理由を理解しておきましょう。
・ExcelとGoogleスプレッドシートは対応している関数が異なる
Googleスプレッドシートでは、SUM関数やIF関数、AVERAGE関数など、多くの基本的なExcel関数を利用できます。
しかし、Excel専用の機能や比較的新しい関数は、そのまま利用できない場合があります。
例えば、次のようなケースがあります。
- Excelだけで利用できる関数
- 引数の指定方法が異なる関数
- 計算方法が異なる関数
- Googleスプレッドシート独自の関数
そのため、Excelでは正常だった数式でも、Googleスプレッドシートではエラーになることがあります。
ExcelとGoogleスプレッドシートでは、関数だけでなく利用できる機能や操作性にも違いがあります。全体的な違いを知りたい方は、ExcelとGoogleスプレッドシートの違いを比較した【ExcelとGoogleスプレッドシートの違い】どっちを使うべき?特徴・メリット・デメリットを徹底比較も参考にしてください。
・Excelファイルを変換したときに数式が変わることがある
Google DriveへExcelファイルをアップロードし、Googleスプレッドシート形式へ変換すると、一部の数式が変更されることがあります。
例えば、
- セル参照が変わる
- 一部の関数が削除される
- 関数名は残っていても計算できない
- 配列数式の動作が変わる
といったケースがあります。
特に長年使っている業務ファイルほど、複数の関数が組み合わされていることが多いため、変換後は数式を確認することが重要です。
ExcelファイルをGoogleスプレッドシートへ変換する具体的な手順や、互換性を保つためのポイントについては、【Excel】ファイルをGoogleスプレッドシートで開く方法|変換手順と互換性の注意点で詳しく解説しています。
✅ Googleスプレッドシートで動かないことが多いExcel関数
すべてのExcel関数が使えないわけではありません。実際には、多くの基本関数はそのまま利用できます。一方で、Excel独自の新機能や高度な分析機能を利用した関数は、互換性に注意が必要です。「どの関数が使えないのか」を知っておくことで、移行前の確認がしやすくなります。
・Excel専用の関数
Microsoft 365で追加された新しい関数の一部は、Googleスプレッドシートで正しく動作しないことがあります。
代表例としては、
- LET関数
- LAMBDA関数
- MAP関数
- REDUCE関数
- SCAN関数
などがあります。
これらはExcelの最新機能として提供されているため、Googleスプレッドシートへ変換するとエラーになる可能性があります。
業務で利用している場合は、移行前に使用状況を確認しておきましょう。
・Power Queryやデータモデルと組み合わせた関数
Power QueryやPower Pivotを利用したExcelファイルでは、通常の関数だけでなく、データモデルとの連携も行われています。
しかし、GoogleスプレッドシートにはPower Queryの仕組みがありません。
そのため、
- Power Queryで読み込んだデータ
- Power Pivotの計算
- データモデル参照
などは、そのまま利用できません。
Googleスプレッドシートでは、別の方法でデータを取得し直す必要があります。
・構造化参照を利用した数式
Excelのテーブル機能では、次のような構造化参照が利用できます。
=SUM(売上表[売上金額])
この書き方は非常に分かりやすく、列が増えても数式を書き換える必要が少ないというメリットがあります。
しかし、GoogleスプレッドシートではExcelのテーブル機能を完全には再現できません。
そのため、
- 通常のセル参照へ変換される
- 数式がエラーになる
- 集計範囲が変わる
などのケースがあります。
移行後は、構造化参照がどのように変換されたか確認しましょう。
✅ Excel関数がエラーになる主な原因
「関数そのものが使えない」だけでなく、データの保存方法や参照先の違いによってエラーになることもあります。エラーが表示される原因を一つずつ確認すれば、多くの場合は解決できます。むやみに数式を書き直す前に、どの種類のエラーなのかを確認することが大切です。
・#NAME? エラーになる
最も多いのが、「#NAME?」 エラーです。
これはGoogleスプレッドシートが関数名を認識できない場合に表示されます。
原因としては、
- Excel専用関数を使っている
- 関数名が誤っている
- Googleスプレッドシート未対応
などがあります。
まずは関数名がGoogleスプレッドシートで利用できるか確認しましょう。
・#REF! エラーになる
「#REF!」 は、参照先が存在しない場合に発生します。
例えば、
- 削除したシートを参照している
- 参照範囲が変わった
- 外部ブック参照
などが原因になります。
Googleスプレッドシートへ変換すると、外部Excelファイルへの参照は利用できません。
参照先が存在するか確認することが重要です。
・#VALUE! エラーになる
「#VALUE!」 は、データ型の違いによって発生するケースがあります。
例えば、
- 数値が文字列になっている
- 日付の扱いが異なる
- 引数の順番が違う
などです。
特に日付や時刻を扱う関数では、ExcelとGoogleスプレッドシートで結果が変わることもあります。
「#VALUE!」エラーそのものの原因や解決方法について詳しく知りたい場合は、Excelで発生する#VALUE!エラーの対処法もあわせて確認してみてください。⇒【Excel】数式で出る「#VALUE!」エラーの原因と対処法を徹底解説
✅ GoogleスプレッドシートでExcel関数を動かすための対処法
関数が動かないときに、数式を最初から作り直す必要があるとは限りません。関数名、参照範囲、データ形式を確認するだけで解決する場合もあります。
一方、Excel独自の機能を使った数式は、Googleスプレッドシートに合った形への変更が必要です。エラーが発生したセルだけを場当たり的に修正すると、同じ数式を使っている別の行を見落とす恐れがあります。
まずは問題のある関数を特定し、同じ数式が使われている範囲をまとめて確認しましょう。修正後はエラーが消えたかだけでなく、Excelと同じ計算結果になっているかを検算することが重要です。
・対応している関数か確認する
最初に、問題が発生している関数をGoogleスプレッドシートで利用できるか確認します。
Googleスプレッドシートには関数一覧が用意されており、一般的な計算、検索、文字列処理、日付処理などの関数を確認できます。Excelと同名の関数でも、使用できる引数や動作が完全に同じとは限らないため、関数名だけで判断しないことが大切です。
確認するときは、次の順番で進めます。
- エラーが表示されたセルを選択する
- 数式バーで使用している関数を確認する
- 関数名の入力ミスがないか確認する
- Googleスプレッドシートで使用できる関数か確認する
- 引数の数や指定方法を見直す
関数が対応していても、引数に指定した参照先やデータ形式が原因で動かないことがあります。
・Excel独自の数式を通常のセル参照へ書き換える
Excelのテーブルで使われる構造化参照は、表名や列名を使って数式を記述するExcel独自の仕組みです。Microsoftも、Excelテーブルでは通常のセル番地の代わりにテーブル名や列名を使えると説明しています。
例えば、Excelで次の数式を使用していたとします。
=SUM(売上表[売上金額])
移行後にこの数式が正しく動かない場合は、通常のセル範囲へ書き換えます。
=SUM(D2:D100)
ただし、固定範囲へ変更すると、101行目以降へデータを追加しても集計されません。
データが今後も増える場合は、次のように列全体を参照する方法もあります。
=SUM(D2:D)
列全体を参照すると管理しやすくなりますが、大量の数式で多用すると処理が重くなることがあります。必要な範囲と更新頻度を考えて使い分けましょう。
・Googleスプレッドシートの代替機能へ置き換える
Excel関数をそのまま利用できない場合は、Googleスプレッドシート側の関数や機能で同じ結果を作れないか検討します。
例えば、複数条件でデータを抽出・集計する処理では、Googleスプレッドシート独自のQUERY関数を利用できる場合があります。QUERY関数は、指定したデータ範囲に対して抽出、並べ替え、集計などを行える関数です。
ただし、Excelの数式を機械的にQUERY関数へ置き換えればよいわけではありません。
次の点を整理してから数式を作り直します。
- 元の数式が何を判定しているか
- どの範囲を集計しているか
- 空白やエラーをどのように扱っているか
- データ追加後も自動的に反映されるか
- 並べ替えや行削除で参照がずれないか
関数名の置き換えではなく、元の数式の目的を再現することが大切です。
✅ 関数は動くのに計算結果が違う場合の確認方法
エラーが表示されないからといって、移行が成功しているとは限りません。数式自体は計算されていても、ExcelとGoogleスプレッドシートで結果が異なる場合があります。特に、日付、時刻、数値に見える文字列、空白セルを扱う数式は注意が必要です。業務ファイルでは、数円や1件の違いでも請求や在庫管理へ影響する可能性があります。すべてのセルを目視で比較するのは難しいため、合計値や件数を使って検算しましょう。異なる結果が見つかった場合は、数式だけでなく元データの状態も確認します。
・数値が文字列として保存されていないか確認する
見た目が同じ「100」でも、数値の100と文字列の「100」は異なります。
Excelから変換したときに数値が文字列として扱われると、SUM関数で集計されなかったり、比較式が意図どおりに動かなかったりすることがあります。
次のようなデータは注意が必要です。
- 数字の前後に空白がある
- 数字の先頭にアポストロフィが付いている
- CSVから取り込んだ数値
- 単位を含む文字列
- 全角数字が入力されている
問題のあるセルを選択し、表示形式や数式バーの内容を確認しましょう。
必要に応じてVALUE関数などを使い、文字列を数値へ変換します。
=VALUE(A2)
ただし、「100円」のように文字を含むデータは、そのままでは数値へ変換できません。不要な文字を取り除いてから変換する必要があります。
数式エラーを早く見つけたい場合は、条件付き書式を利用してエラーセルを色分けする方法もおすすめです。⇒【Excel】エラーや異常値を色で目立たせる実務テクニック
・日付や時刻の表示形式を確認する
ExcelとGoogleスプレッドシートでは、日付や時刻を内部的な数値として扱いますが、ファイルの地域設定や表示形式によって解釈が変わることがあります。
例えば、「7/8」が7月8日なのか、8月7日なのかは地域設定によって異なる可能性があります。
移行後は、次の項目を確認します。
- 日付が正しく表示されているか
- 年月日の順番が変わっていないか
- 時刻が文字列になっていないか
- TODAY関数やNOW関数の結果が想定どおりか
- ファイルの地域とタイムゾーンが適切か
表示だけを修正しても、元データが文字列のままでは日付計算が正しく動かないことがあります。セルを選択し、数式バーに保存されている値まで確認しましょう。
日付や時刻が原因で計算できない場合は、Excelで日付計算ができない原因と対処法をまとめた【Excel】日付の引き算ができない時の対処方法【#VALUE!や計算できない原因を解消】も参考になります。
・合計値や件数をExcelと比較する
移行後の確認では、代表的なセルを数個見るだけでは不十分です。
例えば、次の数値をExcel版とGoogleスプレッドシート版で比較します。
- 売上金額の合計
- データの件数
- 条件に一致する件数
- 最大値と最小値
- 月別や担当者別の集計結果
検算用として、次のような数式を一時的に追加する方法もあります。
=SUM(D2:D100)
=COUNTIF(E2:E100,"完了")
元のExcelファイルと結果が一致すれば、移行後の数式が正しく機能しているか判断しやすくなります。
✅ ExcelからGoogleスプレッドシートへ関数を安全に移行する手順
Excelファイルは、Google Drive上で開いたあとにGoogleスプレッドシート形式として保存できます。この操作を行っても、元のExcelファイル自体は変更されないため、元データを残した状態で変換後のファイルを検証できます。
安全に移行する場合は、次の順番で進めます。
- 元のExcelファイルをバックアップする
- Google DriveへExcelファイルをアップロードする
- Googleスプレッドシートで開く
- Googleスプレッドシート形式のコピーを作成する
- エラーが表示されたセルを確認する
- 重要な合計値や件数を比較する
- 少人数でテスト運用する
- 問題がなければ本番運用へ切り替える
変換直後に元のExcelファイルを削除するのは避けましょう。
月次処理や請求計算など、特定のタイミングでしか実行しない数式もあります。日常的な入力だけで問題がないと判断せず、一連の業務を最後までテストすることが大切です。
・Excelのまま残した方がよいケース
次のようなファイルは、Googleスプレッドシートへ完全移行せず、Excelのまま利用した方がよい場合があります。
- Excel独自の機能を多く利用している
- 複雑な構造化参照を使っている
- Power Queryやデータモデルと連携している
- 大量のデータや数式を処理している
- Excel VBAで処理を自動化している
- 印刷帳票としてのレイアウトが重要である
共有や入力だけGoogleスプレッドシートで行い、高度な集計や帳票作成はExcelで続ける方法もあります。
すべてを一つのソフトへ移すのではなく、それぞれの得意分野に合わせて使い分けることが、実務では安全な選択になることもあります。
Googleスプレッドシートへ完全移行するか迷っている場合は、Excelを使い続けるべきケースについても確認してみてください。⇒【Excelを使い続けるべき?】他ソフトへ乗り換える判断基準を徹底解説
「Googleスプレッドシートだけで仕事ができるのか」「Excelを残した方がよいのか」が気になる方は、用途別に比較した【GoogleスプレッドシートはExcelの代わりになる?】違い・できること・向いている人を解説もぜひご覧ください。
✅ まとめ:Excel関数の互換性を確認してから移行しよう
Googleスプレッドシートでは多くのExcel関数を利用できますが、すべての数式が同じように動くとは限りません。
- 関数名や引数の指定方法を確認する
- 構造化参照は通常のセル参照への変更を検討する
- 利用できない関数は代替機能で目的を再現する
- 数値が文字列になっていないか確認する
- 日付や時刻の地域設定を見直す
- エラーがなくても計算結果をExcelと比較する
- 元のExcelファイルを残して段階的に移行する
- 高度な機能やVBAを使うファイルはExcelに残すことも検討する
関数が動かないときは、エラーを消すことだけを目的にせず、元の数式が何を行っていたのかを整理することが重要です。
ExcelとGoogleスプレッドシートでは、利用できる関数や自動化の仕組みに違いがあります。通常の関数で置き換えられない業務処理については、Excel VBAを残す方法や、Google Apps Scriptで作り直す方法も含めて検討しましょう。
移行前後の計算結果を丁寧に比較することで、集計ミスや業務開始後の手戻りを防ぎ、安全にGoogleスプレッドシートへ移行できます。