Walka z łączeniem funkcji if

0

Cel: Praca nad arkuszem kalkulacyjnym budżetu i próba użycia dwóch formuł w jednej komórce w celu ustalenia salda z wydatków wydatkowanych lub uzyskanych.

Zastosowane formuły:

=IF(OR(F17="", H16-F17),E17="",0,H16+E17))
=IF(E17="",0,H16+E17, IF(F17="",0,H16-F17))
=IF(E17="",0,H16+E17),IF(F17="",0,H16-F17)

Z każdym przykładem otrzymuję powiadomienie „zbyt wiele argumentów w funkcji”.

użytkownik762102
źródło
Błąd jest poprawny. Każda komórka może mieć tylko jeden argument, więc musisz przemyśleć swoją logikę i przepisać argument za pomocą zagnieżdżonych IF lub podobnych.
music2myear

Odpowiedzi:

1

Patrząc tylko na pierwszą formułę, jest zbyt wiele argumentów:

=IF(OR(F17="",H16-F17),E17="",0,H16+E17))

Instrukcja IF () składa się tylko z trzech części: testu logicznego, wartości, jeśli true, i wartości, jeśli false.

Jeśli na przykład próbujesz sprawdzić, czy F17 lub E17 jest puste, a następnie wykonać dodawanie lub odejmowanie na podstawie tego testu, należy napisać w następujący sposób:

=IF(OR(F17="",E17=""),H16-F17,H16+E17))

Tutaj funkcja OR () ma dwa argumenty i służy jako test logiczny. Jeśli F17 lub E17 jest puste, wynik to H16-F17. Jeśli żadne nie jest puste, wynikiem jest H16 + E17.

Może to pomóc, jeśli wyjaśnisz, co próbujesz zrobić słowami, tak jak zrobiłem powyżej dla instrukcji IF ().

EDYCJA: Ponownie czytając tytuł pytania, wygląda na to, że próbujesz skonstruować zagnieżdżoną instrukcję IF (). W takim przypadku albo wartość-jeśli-prawda, albo wartość-jeśli-fałsz (lub oba) może być inną instrukcją IF (). Oto przykład:

=IF(LogicalTest1,IF(LogicalTest2,ValueA,ValueB),ValueC)

Tutaj, jeśli LogicalTest1 i 2 są PRAWDA, wynikiem jest ValueA. Jeśli LogicalTest1 ma wartość PRAWDA, a 2 ma wartość FAŁSZ, wynikiem jest Wartość B. Jeśli LogicalTest1 ma wartość FAŁSZ (niezależnie od LogicslTest2), wynikiem jest Wartość3.

Coś w tym stylu może dać ci to, czego szukasz.

Bandersnatch
źródło