壊れた数式のエラーを回避する方法

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

数式で意図しない結果やエラーが表示されると、次にどうしたらよいか分からない場合は特に苛立ちを感じるものです。

複数の項目が間違っている可能性があります。 たとえば、かっこの不一致、入力ミス、存在しない範囲のデータへの参照などが考えられます。 次のベスト プラクティスに従うと、数式の作成や修正時の一般的なミスを防止または解決することができます。

ベスト プラクティス:

一般的なミスを回避するには:

関数の先頭には必ず等号 (=) を入力する

最初に等号を入力しないと数式にはならないため、計算は実行されません。これはよくあるミスです。

たとえば Excel Online で「SUM(A1:A10)」のように入力すると、数式の結果ではなく、"SUM(A1:A10)" という文字列が表示されます。 「11/2」と入力すると、11 を 2 で割る計算は実行されず、代わりに "11 月 2 日"、"2009/11/02" などの日付が表示されます。

このような意図しない結果を回避するには、必ず最初に等号を入力してください。 たとえば、「=SUM(A1:A10)」や「=11/2」などのように入力します。

対応するかっこを確認する

すべてのかっこに、対応するかっこが存在することを確認します。 関数を使用する数式で関数を正しく計算するには、すべての右かっこと左かっこが対応している必要があります。

たとえば、数式 =IF(B5<0),"無効",B5*1.05) は、右かっこが 2 つあり、左かっこが 1 つしかないため機能しません。

正しい数式は、=IF(B5<0,"無効",B5*1.05) のようになります。

必要な引数をすべて入力する

ほとんどの関数では引数 (関数が機能するために提供しなければならない値) が必要です。 引数を必要としない関数 (PITODAY など) は、ごくわずかです。 最初に等号を入力してから関数を入力すると表示される数式の構文をチェックして、必要な引数をすべて入力します。引数は多すぎても少なすぎてもいけません。

たとえば、UPPER 関数には次のように引数として 1 つの文字列またはセル参照のみを指定します。=UPPER("こんにちは") または =UPPER(C2)

また SUM のように引数として数値を必要とする関数もあれば、REPLACE のように、少なくとも 1 つの引数でテキスト値を必要とする関数もあります。 間違ったデータ型を使うと、意図しない結果や #VALUE! エラーを返す場合もあります。

数式では書式が設定されていない数値を使う

数式ではドル記号 ($) は絶対参照を意味し、カンマ (,) は引数の区切りを意味するため、ドル記号やカンマが書式に設定された数値を入力しないでください。 数式の計算では、書式が設定された数値は使いません。 数式では $1,000 と入力するのではなく、1000 と入力します。

引数に書式が設定された数値を使用すると、意図しない結果が得られまますが、#NUM! エラーを返す場合もあります。 たとえば、Excel Online で -2134 の絶対値を取得するために =ABS(-2,134) という数式を入力した場合、#NUM! エラーが表示されます。これは ABS 関数が引数を 1 つしか受け付けないためです。

数字書式を適用し、書式が設定されていない数値を使って数式を入力したであれば、桁区切り記号や通貨記号を使って、数式の結果の書式設定をすることができます。

正しいセルのデータ型を使う

計算で正しいセルのデータ型が使用できない場合、数式で意図した結果が返されないことがあります。

たとえば、テキストと書式設定されたセルに「=2+3」というシンプルな数式を入力した場合、Excel Online では入力したデータを計算できません。 セルに "=2+3" と表示されるだけです。

これを解決するには、次のようにセルのデータ型を [テキスト] から [標準] に変更します。

  1. セルを選びます。

  2. [ホーム]、[表示形式] の矢印の順にクリックし、[標準] を選びます。

  3. F2 キーを押してセルを編集モードに切り替えて、Enter キーを押して数式を確定します。

数値データ型のセルに日付を入力すると、日付ではなく数値として表示されることがあります。 この数値を日付として表示するには、[表示形式] ギャラリーで [日付] を選びます。

複数の数値には * 記号を使用する

数式では乗算演算子として x を使いたくなるところですが、そうではなくアスタリスク (*) を使う必要があります。

数式で x を使うと、Excel Online では結果を計算することができません。数式に誤りがあることを知らせるため、セルに数式が表示され、セルが赤い点線の枠線で表示されます。

数式内の文字列を二重引用符で囲む

文字列を含む数式を作成する際には、文字列を二重引用符で囲みます。

たとえば、="今日は " & TEXT(TODAY(),"m 月 dd 日 aaaa") という数式の TEXT 関数と TODAY 関数の結果を、"今日は" というテキストと組み合わせると、セルに「今日は 5 月 30 日月曜日」という結果が返されます。

この数式では、"今日は" の右側の二重引用符の前にスペースがありますが、これは、"今日は" と "5 月 30 日月曜日" の間にスペースが必要だからです。 テキストを二重引用符で囲まなければ、数式が #NAME? エラーを返す場合もあります。

1 つの数式で 64 を超える関数をネストしない

数式内には、64 レベルまでの関数を組み合わせることや、ネストすることができます。

たとえば、数式 =IF(SQRT(PI())<2,"2 未満!","2 以上!") には 3 つのレベルの関数が含まれています。PI 関数SQRT 関数内にネストされ、SQRT 関数は IF 関数内にネストされています。

ゼロで数値を除算しないようにする

値がゼロ (0) または値のない別のセルでセルを除算すると、#DIV/0! エラーを返す場合もあります。

このエラーを回避するには、IFERROR 関数内で除算演算をネストします。 たとえば、ワークシートのセルに、次の 2 つの数式を入力します。

=IFERROR(3/0,0)

=IFERROR(3/7,0)

最初の数式では、IFERROR 関数で 0 による除算がエラーになることが認識されるため、0 が返されます。 2 番目の数式では 0 による除算が発生せず、エラーがないため、3/7 の値が返されます。

数式を簡単に作成するには、「数式に関するヒントとテクニック」も参照してください。

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×