Problem z zastąpieniem zera/błędu ukrycie-neutralizacja ?

Użytkowanie arkusza kalkulacyjnego
werat
Posty: 2
Rejestracja: ndz paź 05, 2014 10:35 pm

Problem z zastąpieniem zera/błędu ukrycie-neutralizacja ?

Post autor: werat »

Witam

Mam wiele wyników w komórkach w jednym wierszu z których muszę wskazać najmniejszy. Część komórek w różnych miejscach tego wiersza może wykazać błąd w zależności od zmiennych danych wejściowych. Błąd zastąpiłem zerem. Mam problem jak "zneutralizować zero" by

=min( ) nie pokazało zera albo błędu.

Próbowałem (przykładowo):

=JEŻELI(a1=0;"10000";"b1")

Potem 10000 ewentualnie przemnażam aby to była cyfra, czy jest możliwość aby b1 to było odniesienie do komórki a nie sam "tekst" ?

Gdy komórka nie daje błędu wystarczyłoby =INDEKS(B1;PODAJ.POZYCJĘ("1";A1;0);1) ale może dać i indesk pokaże wtedy błąd.

Jak to można rozwiązać ? Podwójne użycie indeks dla dwóch wykluczających się możliwości ?


=========


Sprawdzam opcję: dodanie czegoś(na pewno większego od właściwych wyników) do zera i wtedy "zero" będzie brało udział w szukaniu min(), ....

====

Do wszystkich komórek z wiersza z wynikami odejmuje "coś" aby tylko zera były ujemne reszta jest dodatnia, Czy da się nakazać aby min() sprawdzała tylko te większe od zera ?

====
chyba znalazłem tutaj rozwiązanie http://www.coderscity.pl/ftopic27268.htm tylko obliczenia muszę przestawić w pion aby w kolumnie mieć wyniki (nie zmieniając kodu z przykładu) wskazanie wiersza dawało błąd arg .
Libre Office 4.0.2.2
Minio
Posty: 323
Rejestracja: śr sie 01, 2012 1:48 am
Lokalizacja: (Poznań|Dziwnów), Polska

Re: Problem z zastąpieniem zera/błędu ukrycie-neutralizacja

Post autor: Minio »

Gdybyś nie zastępował błędu zerem, to teraz nie miałbyś problemu ;) .

W każdym razie najprostszym rozwiązaniem wydaje mi się połączenie MIN.K z LICZ.JEŻELI:
=MIN.K(A1:G1;LICZ.JEŻELI(A1:G1;0)+1)

Po znalezieniu najmniejszej wartości możesz ją przetłumaczyć na adres komórki za pomocą standardowych funkcji: ADRES, WYSZUKAJ, PODAJ.POZYCJĘ, INDEKS, PRZESUNIĘCIE, WIERSZ, KOLUMNA czy co tam jeszcze.
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
werat
Posty: 2
Rejestracja: ndz paź 05, 2014 10:35 pm

Re: Problem z zastąpieniem zera/błędu ukrycie-neutralizacja

Post autor: werat »

Dziękuje za zainteresowanie.

=MIN.K(A1:G1;LICZ.JEŻELI(A1:G1;0)+1)
Licz minimum zakresu, gdy zero dodaj do niego jeden, dobrze interpretuję ?



Ostatecznie przedwczoraj nie użyłem makra, zorientowałem się że

=JEŻELI(a1=0;"10000";"b1")
tak pokazuje zawsze "tekst" ale gdy usunę " " to będą liczby i odwołania do komórek. :ouch:

I z pomocą kolegi powróciłem do sumowania
=JEŻELI(a1=0;5000;a1) ~ gdy to nie zero pokaż dobry wynik.

Obliczenia zamieniłem w kolumnę z pomysłu na makra, aby wyciągnięte na bok wyniki były w tych samych kolumnach, do tego miałem dwa wiersze zapełnione a w kolumnie kilka razy więcej i tylko jedno "przeciągnięcie" poprawki po kilkuset "blokach obliczeniowych".

Potem oznaczenie minimum przez 1 w kolumnie obok
=Jeżeli(x1=min(kolumny gdzie x);1;0)

dalej indeks podaj pozycję z wykorzystaniem "znacznika" 1 i pobranie wybranych wyników z tego bloku.
Libre Office 4.0.2.2
Minio
Posty: 323
Rejestracja: śr sie 01, 2012 1:48 am
Lokalizacja: (Poznań|Dziwnów), Polska

Re: Problem z zastąpieniem zera/błędu ukrycie-neutralizacja

Post autor: Minio »

werat pisze:=MIN.K(A1:G1;LICZ.JEŻELI(A1:G1;0)+1)
Licz minimum zakresu, gdy zero dodaj do niego jeden, dobrze interpretuję ?
MIN.K zwraca k-tą najmniejszą liczbę w zakresie.
LICZ.JEŻELI zwraca liczbę komórek w zakresie spełniających dane kryteria.
Ta formuła liczy liczbę zer w zakresie i przekazuje ją jako argument do MIN.K. Ponieważ k-ta najmniejsza liczba (gdzie k = liczba zer) to zero, musimy k zwiększyć o 1.

Teraz gdy o tym myślę, to zauważam, że formuła ta nie zadziała, gdy dopuszczalne są liczby ujemne. Można ten problem obejść przy pomocy funkcji JEŻELI. Ale to przypomina używanie wiadra do wylewania wody, gdy statek tonie — za chwilę natkniesz się na jakąś inną sytuację, w której te obejścia nie zadziałają i będziesz musiał wymyślić nowe.
Źródłem problemu jest to, że na jednym z wcześniejszych etapów zastępujesz błąd zerem. Przemyśl, czy nie da się tego zaprojektować w jakiś inny sposób.
Już lepiej zamiast zera użyć tekstu, bo przynajmniej wszystkie funkcje matematyczne go zignorują.
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
ODPOWIEDZ