0

私はExcelの数式ORでExcelの数式を使用していますが、その動作には少し驚いています。

私は次のExcel式を使用しています:

=IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", funct(A1,A5))

私の理解では、もしそうならISERROR(funct(A1:A5)) True(or False)、OR演算の結果はTrue(またはFalse)になるでしょう。

私の実験では、の結果として「ERROR」という答えを期待していました。ISERROR(funct(A1:A5))true

しかし、#VALUE!エラーが発生しています。何が間違っている可能性があるかについてのアイデア。または、数式を言い換えて機能させることができれば。

ありがとう

4

4 に答える 4

5
=IF(ISERROR(funct(A1:A5)),"ERROR",IF(funct(A1:A5)=0,"ERROR",funct(A1:A5)))
于 2013-01-14T06:29:52.947 に答える
1

ティムの答えをお勧めfunc()しますが、あなたが言うように、が大きな関数である場合は、使用回数を最小限に抑えることをお勧めします。式全体で同じ関数を呼び出す必要があると想定しています。つまり、func(A1:A5)

Excel 2007以降では、IFERROR関数を使用できます。

=IFERROR(IF(func(A1:A5)=0,"ERROR",func(A1:A5)),"ERROR")

または、以前のバージョンでは、1をfunc(A1:A5)で除算することにより、func(A1:A5)がゼロに等しいときにエラーを発生させることができました。

=IF(ISERROR(1/func(A1:A5)),"ERROR",func(A1:A5))

編集:さらに一歩進んで、Excel 2007以降でこれらのアプローチの両方を組み合わせて、funcを1回だけ呼び出す必要があるようにすることができます。

=IFERROR(1/(1/func(A1:A5)),"ERROR")

于 2013-01-14T12:32:53.470 に答える
0

かっこが欠けていると思います。

これを試して:

=IF(OR(ISERROR(funct(A1:A5)), func(A1,A5)=0), "ERROR", func(A1,A5))
于 2013-01-14T04:17:23.560 に答える
0

=IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", func(A1,A5))- 数式をよく見ると、提案が得られました:funct(A1,A5)=0func(A1,A5)は実際には異なる関数ですか、それとも数式のタイプミスですか? おそらくそうです。

于 2013-01-14T07:01:20.220 に答える