ExcelとGoogleスプレッドシートで関数が違って式が動かない
関数名を書き出し、移した先の公式関数リストに同じ名前があるかを確かめます。
名前が無ければ相手側の関数で書き直し、引数の意味が違う関数(FILTERの3つ目など)は引数を組み替えます。
- 動かないセルの数式から関数名を書き出す
- 移した先の公式関数リストで名前を探す
- 名前が無い相手側の似た関数で書き直す(SPLITとTEXTSPLITなど)
- 名前はある引数の並びと既定値を両方のヘルプで見比べる
- 書き直した式を1セルで試してから下へコピーする
- 元のファイルと同じ結果なら完了
SUMやVLOOKUPは共通なので、式もそのまま動きそうです。ところが片方にしか無い関数や引数の意味が違う関数が混ざると、エラーや結果のずれが起きます。
対象はWindows版Excel(Microsoft 365)とパソコンのブラウザ版スプレッドシートです。※2026年10月時点の各社公式ヘルプと関数リストに基づきます。

1動かない式の関数名を書き出す
エラーのセルや結果が違うセルの数式から、= やかっこの直前にある英字の関数名を、入れ子の内側まで書き出します。Excelで #NAME? と出るのは、関数名の入力ミスや、Excelに無い関数名が主な原因です(定義されていない名前や引用符の抜けでも出ます)。それ以外のエラーは#REF! や #N/A が出る意味と直し方を見てください。
出典: #NAME? エラーの修正方法
2移した先の公式関数リストで探す
- Googleの「関数リスト」を開く
- 「複数のキーワードで絞り込む...」欄に関数名を入れる
- Microsoftの「Excel 関数 (アルファベット順)」を開く
- Ctrl+F で関数名を探す
- 名前の後ろの(2021)などは、その版で追加されたしるし。それより前の版では使えない
- スプレッドシートで型が「Google」の関数(QUERYなど)の多くは無い。IMAGEのようにある関数も
出典: Google スプレッドシートの関数リスト / Excel 関数 (アルファベット順)
3名前が無い関数を書き直す
文字を区切り文字で分ける関数は、スプレッドシートが SPLIT、Excelが TEXTSPLIT で、互いの関数リストには載っていません。
空欄の扱いの既定値が逆なので、Excel側は4つ目をTRUEにしてそろえる
SPLITは連続する区切り文字の間の空欄を既定で取り除き、TEXTSPLITは空のセルを残します。区切りが2文字以上だと、SPLITは既定で1文字ずつ区切ります(3つ目をFALSEで文字列ごと)。TEXTSPLITはExcel 2024・Microsoft 365の関数で、それより前の版では「区切り位置指定ウィザード」で列に分けます。
Excelに無い関数の移し方(この記事の提案)です。
- IMPORTRANGE: スプレッドシート上で範囲をコピーし、同じ場所に「値のみ貼り付け」(Ctrl+Shift+V)で値にしてから移す
- QUERY: 抜き出す条件をFILTERで組み直す(手順4)
- ARRAYFORMULA: 外して中の式だけ入れる。Microsoft 365のExcelでは結果が自動で広がる(スピル)
4名前はあっても引数の意味が違う関数(FILTER)
FILTERは両方にありますが、3つ目の引数がスプレッドシートでは「条件2」、Excelでは if_empty(フィルターが何も返さない場合に返す値)です。
- 移す前: =FILTER(A2:C20,B2:B20="東",C2:C20>100)
- Excelでは3つ目が「if_empty」として読まれる
- 書き直し: =FILTER(A2:C20,(B2:B20="東")*(C2:C20>100),"")
- 移す前: =FILTER(A2:C20,B2:B20="東","該当なし")
- スプレッドシートでは3つ目が条件として読まれる
- 書き直し: =IFNA(FILTER(A2:C20,B2:B20="東"),"該当なし")
合う行が無いとき、Excelは3つ目を省くと #CALC!、スプレッドシートは #N/A を返すため、IFNA で包みます。
出典: SPLIT / 区切り位置指定ウィザードを使用して、テキストをさまざまな列に分割する / スプレッドシートのキーボード ショートカット / 動的配列数式とスピル配列の動作 / TEXTSPLIT 関数 / FILTER 関数(Google) / FILTER 関数(Microsoft)
書き直しても結果が合わない時のチェックリスト
この記事で扱った原因は、関数名が相手側に無いか、同じ名前で引数の意味が違うかの2つです。