Używam formuły Excel OR
w formule Excela i jestem trochę zaskoczony, jak się zachowuje.
Korzystam z następującej formuły programu Excel:
=IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", funct(A1,A5))
Moje zrozumienie było, jeśli ISERROR(funct(A1:A5))
True(or False)
, wynikiem operacji OR byłaby prawda (lub fałsz).
W moim eksperymencie oczekiwałem, że odpowiedź będzie "BŁĄD" jako ISERROR(funct(A1:A5))
prowadzi do true
.
Ale dostaję #VALUE!
błąd. Każdy pomysł, co może być nie tak. Lub jeśli mogę zmienić formułę, aby działała.
Dzięki
Odpowiedzi:
0 dla odpowiedzi № 1Myślę, że brakuje ci bliskiego wspornika.
Spróbuj tego:
=IF(OR(ISERROR(funct(A1:A5)), func(A1,A5)=0), "ERROR", func(A1,A5))
5 dla odpowiedzi nr 2
=IF(ISERROR(funct(A1:A5)),"ERROR",IF(funct(A1:A5)=0,"ERROR",funct(A1:A5)))
1 dla odpowiedzi nr 3
Polecam odpowiedź Tima, ale jeśli func()
jest duża funkcja, jak możesz powiedzieć, wtedy możesz chcieć zminimalizować liczbę razy, kiedy to jest używane. Zakładam, że ta sama funkcja powinna być wywoływana w całej formule, np. func (A1: A5)
W programie Excel 2007 lub nowszym można użyć funkcji IFERROR:
=IFERROR(IF(func(A1:A5)=0,"ERROR",func(A1:A5)),"ERROR")
lub we wcześniejszych wersjach można wymusić func (A1: A5), aby dać błąd, gdy jest równa zero, dzieląc 1 przez func (A1: A5):
=IF(ISERROR(1/func(A1:A5)),"ERROR",func(A1:A5))
Edycja: Robiąc krok dalej, możesz połączyć oba te podejścia w programie Excel 2007 lub nowszym, tak że musisz tylko raz wywołać func:
=IFERROR(1/(1/func(A1:A5)),"ERROR")
0 dla odpowiedzi nr 4
=IF(OR(ISERROR(funct(A1:A5)), funct(A1,A5)=0), "ERROR", func(A1,A5))
- bliskie spojrzenie na Twoją formułę zaowocowało sugestią: funct(A1,A5)=0
i func(A1,A5)
są naprawdę różne funkcje, lub to jest literówka w twojej formule? Być może tak jest.