Strona 1 z 1

suma jeśli trzecie miejsce po przecinku ma wartość

: ndz maja 10, 2020 7:54 pm
autor: dentopolis
w jaki sposób powinna wyglądać formuła suma.jeżeli gdy ma policzyć tylko te kwoty, gdzie trzecie miejsce po przecinku wynosi 1 np.20,001, 18,421

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: ndz maja 10, 2020 9:15 pm
autor: Rafkus
Zakładam, że dane do zsumowania zaczynają się w kolumnie C (od C2) do jakieś nowej kolumny wpisz formułę:

Kod: Zaznacz cały

=JEŻELI.BŁĄD( FRAGMENT.TEKSTU ( C2;   ZNAJDŹ(",";  C2)+3;  1);   "--")
kolumnę z danymi potraktowałem tak jakby był tekst. Powyższa formuła podaje 3 "literę" po przecinku, tą formułę wpisałem do kolumny F (od F2). Formuła suma.jeżeli powinna wyglądać wówczas następująco:

Kod: Zaznacz cały

= SUMA.JEŻELI(F2:F6;   "1";   C2:C6)
Można również zastosować od razu formułę macierzową:

Kod: Zaznacz cały

= SUMA.JEŻELI (JEŻELI.BŁĄD (FRAGMENT.TEKSTU (C2:C6;  ZNAJDŹ(",";  C2:C6)+3;  1);  "--");  "1";  C2:C6)
PS. formułę macierzową zatwierdzamy ją kombinacją klawiszy CTRL + SHIFT + ENTER, lub zaznaczamy pole wyboru Macierz w Kreatorze funkcji

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: pn maja 11, 2020 11:07 am
autor: Jermor
Sądzę, że wykorzystując formułę macierzową nieco prościej można to obliczyć w taki sposób:
=SUMA(zakres sumowania*(MOD(zakres sumowania*1000;10)=1))
czyli w jakimś realnym przykładowym obszarze np tak:

Kod: Zaznacz cały

=SUMA(J1:J4*(MOD(J1:J4*1000;10)=1))

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: pn maja 11, 2020 11:23 am
autor: Jermor
P.S do poprzedniego. Dla pewności uniknięcia błędu, wynikającego z cyfr na pozycjach dalszych niż trzecie miejsce po przecinku, formułę należałoby zapisać tak:
=SUMA(zakres sumowania*(LICZBA.CAŁK(MOD(zakres sumowania*1000;10))=1))
i jej wersja przykładowa.

Kod: Zaznacz cały

=SUMA(J1:J4*(LICZBA.CAŁK(MOD(J1:J4*1000;10))=1))

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: pn maja 11, 2020 1:50 pm
autor: Rafkus
a jak będzie liczba ujemna np: -10,001 ?? znowu trzeba usprawnić formułę

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: pn maja 11, 2020 3:52 pm
autor: Jermor
Jeszcze raz przemyślałem ten temat. Problemem są zaokrąglenia wyników pośrednich. Wyniki @dentopolis są prawdopodobnie rezultatem jakichś obliczeń.
Dlatego jeżeli np. wynikiem jest 20,00082 a w rezultacie formatowania wyświetlane jest 20,001, to pobranie z tego ciągu trzeciej cyfry po przecinku (funkcją FRAGMENT.TEKSTU) zwróci 0. Stąd oba nasze rozwiązania nie są kompletne.
Moja propozycja na dziś to formuła macierzowa o postaci
=SUMA(zakres sumowania*(PRAWY(TEKST(zakres sumowania;"#0,000");1)="1"))

Kod: Zaznacz cały

=SUMA(J1:J4*(PRAWY(TEKST(J1:J4;"#0,000");1)="1"))

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: wt maja 12, 2020 10:03 pm
autor: dentopolis
Panowie dzięki za odpowiedzi, znalazłem jeszcze inny sposób, tzn w kwocie wyświetlanej do 2 miejsc po przecinku np.10,00 dodaję jedynkę jako tysięczną czyli 10,001.
wtedy funkcja sumuje wszystkie liczby gdzie trzecia cyfra to 1:
=JEŻELI(JEŻELI.BŁĄD(FRAGMENT.TEKSTU(F2;ZNAJDŹ(",";F2;1)+3;1);"--")="1";F2;"")

tylko chciałbym żeby taka komórka została sformatowana warunkowo.jaką formułę tam wpisać dla całego zakresu B2:R99?

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: wt maja 12, 2020 11:04 pm
autor: Rafkus
Uważam, że ostatnia formuła @Jermora jest najzgrabniejsza:
=SUMA(J1:J4*(PRAWY(TEKST(J1:J4;"#0,000");1)="1"))
Jeśli zaś chodzi o formatowanie warunkowe to w warunkach wybierz:
Formuła jest, jako formułę wpisz PRAWY(TEKST($F2;"#0,000");1)="1", (w kolumnie F znajduje się kwota na podstawie której jest formatowany wiersz), określ jakiś styl i zakres zastosowania czyli B2:R99

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: wt maja 12, 2020 11:12 pm
autor: dentopolis
PRAWY(TEKST($F2;"#0,000");1)="1" przy zakresie b2:r99 działa tak, że zmienia styl całego wiersza a chciałbym tylko komórki spełniającej warunek

Re: suma jeśli trzecie miejsce po przecinku ma wartość

: wt maja 12, 2020 11:16 pm
autor: Rafkus
To zamień zakres zastosowania na F2:F99