Jacek Lewandowski

Jacek Lewandowski Analityk, Polska
Telefonia Cyfrowa

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

witam,

zetknąłem się z taki oto przypadkiem:

funkcja =SUMA.JEŻELI(A1:A6;"wawa";B1:B2) zwraca wartość 13

Przykład

wawa 4
poz 6
wawa 2
kra 1
poz 4
wawa 7

Jak na mój gust powinno dać 4

czy spotkaliscie się z tym?
W wersji 2003 takiego czegoś chyba nie było

Pozdrawiam
JacekJacek Lewandowski edytował(a) ten post dnia 20.11.10 o godzinie 13:21

konto usunięte

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Tylko jaki jest sens różnicowania zakresów w tej funkcji?
Jacek Lewandowski

Jacek Lewandowski Analityk, Polska
Telefonia Cyfrowa

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

nie ma sensu, ale kolega błędnie wpisał inny zakres, a wynik wyszedł dobry jak dla całości...
Zgadzam się, że zakresy powinny być spójne, ale Excel 2003 chyba liczył tak jak mu się ostatni parametr podało.
Może twórcy 2010 doszli do wniosku, że zakresy powinny być identyczne i zmienili funkcję

konto usunięte

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Nie ma jednak wątpliwości, że wygląda to raczej na niedociągnięcie niż na przemyślane działanie :)
Artur K.

Artur K. sam sobie sterem,
żeglarzem i okrętem
:-)

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Jacek Lewandowski:
ale Excel 2003 chyba liczył tak jak mu się ostatni parametr podało.
Chyba na pewno ;-) liczy tak samo jak jego potomek (czyli XL 2K10).

Jak jeszcze mogę zrozumieć, że w przypadku podania zakresu B1:B2, czy nawet tylko B1 (albo B1:C1), funkcja zlicza cały zakres - czyli B1:B6, to nie mogę pojąć dlaczego zachowuje całkiem irracjonalnie dla zakresu np. B2:B6 lub B5:B6 (badania robiłem na innych danych niż podane w wątku). Wychodzi sieczka nie mająca nic wspólnego z danymi zakresu B1:B6.

Znaczy się, niedociągnięcie, jak delikatnie ujął to Darek.

Artik
Janusz K.

Janusz K. Ekspert rozwoju i
przyszłości firm,
struktur, systemów
or...

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Nie pamiętam, jak było w Excelu 2003, a nie chce mi się instalować..
Ale - podany przykład zakłada, że dla Excela wawa z wiersza 1. to to samo, co "wawa" z wiersza 6 - a tak być nie musi. Warto zauważyć, że oknie funkcji, po wpisaniu zakresu (wg podanego przykładu), jako wartości nie występują {"wawa", "poz", "kra"} - a {"wawa", "poz", "wawa", "kra", "poz", "wawa"}.

Z opisu funkcji (dla E2010): Suma.Jeżeli(zakres;kryteria;suma_zakres) Funkcja dodaje komórki spełniające podane warunki lub kryteria.

Zakres (obowiązkowe - dodaje komórki spełniające podane warunki lub kryteria.
kryteria (obowiązkowe - warunek lub kryteria określające, które komórki zostaną dodane, podane w postaci liczby, tekstu lub wyrażenia)
suma_zakres (fakultatywne - faktycznie sumowane komórki. Jeśli pominięte, używane są komórki w zakresie)*

Kiedy jako argument funkcji (zakres) poda się (w E2010) "A1:A2", a jako suma_zakres - "B1:B6", to wynik jest 4. Po zmianie argumentu zakres na "A1:A5" wynik jest 6 - jak należałoby oczekiwać.

Różne inne cuda wychodzą przy manipulacjach zakresami ("zakres", "suma_zakres"). Microsoft powinien przyjrzeć się tej funkcji - jej działanie nie odpowiada opisowi.

* to jest nieprawda, bo nie można pominąć tego argumentu - pominięcie daje w wyniku "0"
Dariusz C.

Dariusz C. zawodowo analityk, a
z zamiłowania
informatyk :)

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Jacek,

Sprawdzałem w Excelu 2003 i też nie działa to tak jak zakładałeś. Przygotowałem kopię w VBA funkcji suma.jeżeli i wygląda ona następująco:

Option Explicit

Function sum_if(zakres As Range, kryteria As String, suma_zakres As Range) As Double

Dim result As Double
Dim i As Integer

For i = 1 To zakres.Rows.Count
If zakres.Cells(i, 1).Value = kryteria Then
result = result + suma_zakres.Cells(i, 1).Value
End If
Next i

sum_if = result

End Function

Z testów wyszło mi, że nie działa poprawnie odwołanie do suma_zakres w sytuacji, kiedy odwołujemy się do wierszy poza zakresem. Z założenia więc dla tej funkcji zakres oraz suma_zakres powinny mieć tyle samo wierszy i powinny się zaczynać w tym samym wierszu. Aby ominąć to ograniczenie należało by trochę pogrzebać w kodzie tej funkcji i dodać warunki (np. if i <= suma_zakres.rows.count)

Pozdrawiam serdecznie,
Darek
Jacek Lewandowski

Jacek Lewandowski Analityk, Polska
Telefonia Cyfrowa

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Sprawdzałem w 2007 i też działa tak jak w 2010. Skoro Darek pisze, że w 2003 także, to by znaczyło, że tak jest od dawna....
Można zadać sobie pytanie, czy omyłkowo wpisana funkcja (rożny zakres pierwszego i trzeciego parametru) powinna dać mimo wszystko wynik dobry, czy raczej zły?
Tak jak napisał Artur, w momencie kiedy wybierzemy w trzecim parametrze inny fragment, ale nie zaczynający się od tego wiersza, co pierwszy parametr, to liczy zgodnie z zakresem trzeciego parametru.
Zatem dla wychwycenia błędu, jeśli się mylić to źle wpisując początek w trzecim parametrze, tylko weź bądź mądry i zaprogramuj się w którym miejscu się pomylić ;)
Grzegorz R.

Grzegorz R. Doświadczony manager
ds. rozwoju
sprzedaży i
marketingu

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...


A B C D
wawa kra 4 1
poz poz 6 2
wawa poz 2 3
kra kra 1 4
poz wawa 4 5
wawa poz 7 6

=SUMA.JEŻELI(A1:B6;"wawa";C1:D2)

dla tej formuły wynik także jest 18

.....ciekawe (?)

no chyba pozostanie się przyzwyczaićGrzegorz R. edytował(a) ten post dnia 24.11.10 o godzinie 20:35
Radosław Dziedzic

Radosław Dziedzic Kontroler Finansowy

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Cześć
Nie rozumiem, dlaczego podajecie dwa zakresy danych - raz od 1 do 6 (A1:A6) a później od 1 do 2 (B1:B2). Czemu to ma służyc?
P.S.
Przy tych samych zakresach obliczenia sa prawidłowe.

Pozdrawiam
Sławomir Broda

Sławomir Broda VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...

Temat: Suma.jeżeli w Excelu 2010 - sumowanie spoza...

Help z 2010:

Argument suma_zakres nie musi mieć takiego samego rozmiaru i kształtu jak argument zakres. Podczas określania rzeczywistych komórek do zsumowania lewa górna komórka argumentu suma_zakres jest traktowana jako początek zakresu, do którego są następnie dołączane komórki odpowiadające rozmiarem i kształtem argumentowi zakres. Przykład:

Zakres Argument suma_zakres Rzeczywiste komórki
A1:A5 B1:B5 B1:B5
A1:A5 B1:B3 B1:B5
A1:B4 C1:D4 C1:D4
A1:B4 C1:C2 C1:D4



Wyślij zaproszenie do