Mam pytanie, co mam źle w poniższej formule? - krzyczy excel że: „Wprowadzono za dużą liczbę argumentów dla tej funkcji”:
=JEŻELI($D$1="misiek";(JEŻELI(INDEKS('misiek'!$H:$H;PODAJ.POZYCJĘ(C5;'misiek'!$C:$C;0))=0;"Brak ceny - prośba o ofertę";INDEKS('misiek'!$H:$H;PODAJ.POZYCJĘ(C5;'misiek'!$C:$C;0))));JEŻELI($D$1="kot";(JEŻELI(INDEKS(kot!$H:$H;PODAJ.POZYCJĘ(C5;kot!$C:$C;0))=0;"Brak ceny - prośba o ofertę";INDEKS(kot!$H:$H;PODAJ.POZYCJĘ(C5;kot!$C:$C;0)))));JEŻELI($D$1="pies";(JEŻELI(INDEKS(pies!$H:$H;PODAJ.POZYCJĘ(C5;pies!$C:$C;0))=0;"Brak ceny - prośba o ofertę";INDEKS(pies!$H:$H;PODAJ.POZYCJĘ(C5;pies!$C:$C;0))))))
Zdaje się że pierwsze JEŻELI ma 4 argumenty a ta funkcja przyjmuje maksymalnie 3. Strasznie długa ta formuła. Rozbiłbym ją na kilka mniejszych, np główne JEZELI w jednej komórce a jego parametry w komórkach obok
=JEŻELI($D$1="misiek";
tu wskazanie na komórkę wyliczającą wartość gdy warunek to prawda;
tu wskazanie na komórkę wyliczającą wartość gdy warunek to fałsz
)
obecnie masz coś takiego
=JEŻELI(
$D$1="misiek";
(JEŻELI(INDEKS('misiek'!$H:$H;PODAJ.POZYCJĘ(C5;'misiek'!$C:$C;0))=0;"Brak ceny - prośba o ofertę";INDEKS('misiek'!$H:$H;PODAJ.POZYCJĘ(C5;'misiek'!$C:$C;0))));
JEŻELI($D$1="kot";
(JEŻELI(INDEKS(kot!$H:$H;PODAJ.POZYCJĘ(C5;kot!$C:$C;0))=0;"Brak ceny - prośba o ofertę";INDEKS(kot!$H:$H;PODAJ.POZYCJĘ(C5;kot!$C:$C;0))))
);
JEŻELI($D$1="pies";
(JEŻELI(INDEKS(pies!$H:$H;PODAJ.POZYCJĘ(C5;pies!$C:$C;0))=0;"Brak ceny - prośba o ofertę";INDEKS(pies!$H:$H;PODAJ.POZYCJĘ(C5;pies!$C:$C;0)))))
)
Czyli przekazujesz do pierwszego JEZELI 4 parametry, które składają się z kolejnych formuł.
Podziel to na kilka komórek, będzie łatwiej ogarnąć, albo napisz to w postaci funkcji we wbudnwany w Excel - Visual Basic.
Chyba autor pytania musi przemyśleć co che uzyskać, albo nie do końca dobrze rozumie jak działa funkcja ‘JEZELI’. Dwa ostatnie parametry są inne, więc autor jednak oczekuje innego działania w 3 różnych przypadkach.
Dobrze wiedzieć, zwłaszcza że przyzwyczajenie do ‘JEZELI’ bywa bardzo silne, bo to jedna z pierwszych funkcji jakie się poznaje przy okazji nauki arkuszy.
Z tego co pamiętam, własne funkcje napisane w VBA działają znacznie wolniej od tych natywnych, przynajmniej tak było parę ładnych lat temu, jak trochę pisałem w VBA.
Z drugiej jednak strony, tasiemce w komórkach, nawet jak się je przełamie, trochę zniechęcają no ale może taka uroda Excela.
Taki żart, ale bez drwiny w kierunku kogokolwiek. Excel pozwala zrobić wiele rzeczy, które przed epoką arkuszów i pakietów Office, były dostępne tylko dla programistów ze sporym doświadczeniem,