Excel - sumowanie odpowiednich komórek
ThomasGP - 01 Kwi 2009 12:40
Witam,
wybaczcie ze od razu z grubej rury Was atakuje problemem ale mam jak to mowia noż na gardle
Chodzi o to, zeby w excelu majac podane komorki:
ID numer nr_ewidencyjny kwota1 kwota2
2 764 1 3 143,87 0,00
3 311 1 0,00 3 242,49
4 749 1 4 757,28 0,00
6 343 1 5 261,07 0,00
6 762 1 3 304,39 0,00
7 182 1 3 614,87 142,11
7 413 1 4 224,21 0,00
2 759 3 4 483,69 0,00
3 305 3 3 041,58 0,00
4 743 3 2 976,76 0,00
6 338 3 5 636,73 0,00
6 756 3 3 934,66 0,00
7 176 3 4 148,04 169,09
7 407 3 4 697,72 948,80
2 761 5 3 251,25 0,00
3 307 5 1 978,29 2 027,70
4 745 5 4 191,82 230,97
6 340 5 5 942,45 273,46
6 758 5 3 354,93 0,00
7 178 5 3 531,87 0,00
7 409 5 5 016,87 0,00
1 861 6 3 039,72 2 825,74
2 403 6 6 190,79 129,07
2 758 6 5 478,85 0,00
3 304 6 5 345,64 0,00
3 817 6 3 925,75 0,00
4 014 6 4 135,14 0,00
4 742 6 4 095,78 0,00
6 337 6 6 472,54 0,00
6 755 6 3 440,08 2 360,15
7 175 6 3 615,26 2 723,25
7 406 6 5 771,35 0,00
8 578 6 4 877,39 0,00
teraz chcilabym bardzo, zeby formula obliczyla mi dla kazdego nr_ewidencyjnego sume wszystkich kwot1 i kwot2.
I zeby wyswietlilo je mniejwiecej tak:
numer_ewidencyjny suma_kwoty1 suma_kwoty2
1 24 305,69 3 384,60
3 28 919,18 1 117,89
5 27 267,48 2 532,13
6 56 388,29 8 038,21
Zrobilem cos mniejwiecej o co mi chodzilo za pomoca Sumy częściowej, ale wyświetla mi poza sumami wszystkie dane z przed obliczeń. Jest tam taki "-" i klikajac na niego znikaja niepotrzebne pola ale przy kopiowaniu calosci kopiuja sie i one.
Prosilbym o jakakolwiek pomoc
dzieki i pozdrawiam
Aha nie prosilbym o to gdybym mial nieduzo danych bo wystrczylo by przeklikac odpowiednie wieksze i skopiowac, tylko ze mam tych danych bardzo duzo ok. 8 tys wierszy w arkuszu (arkusze sa 3)
marek003 - 01 Kwi 2009 13:06
Suma.jeżeli(zakres,kryteria, sumowany zakres)
Czyli dla 100 wierszy i numeru ewidencyjnego 1 w komórkę g1 wpisz:
=suma.jeżeli(c1:c100;1;d1:d100) a w h1=suma.jeżeli(c1:c100;1;e1:e100)
Dodano po 5 [minuty]:
numer_ewidencyjny suma_kwoty1 suma_kwoty2
1 24 305,69 3 384,60
3 28 919,18 1 117,89
5 27 267,48 2 532,13
6 56 388,29 8 038,21
Aby to ci wyświetliło jak chcesz to w :
f2 wpisz 1
F3 wpisz 3
F4 wpisz 5 itd
w G2 wpisz =suma.jeżeli($c$1:$c$10000;$F2;d$1:d$10000)
przeciągnij (skopiuj) raz w prawo i w dół.
Zakładam że pierwsza tabela jest w tym samym arkuszu i zaczyna się od a1
Masz przykład
ThomasGP - 01 Kwi 2009 13:55
ooo! Dzięki wielkie o coś właśnie takiego mi chodzilo
teraz moze jescze powiesze mi jak wyodrebnic z kilkutysiecy pol, te ktore sie powtarzaja.
Zeby wyznaczyc te numery ewidencyjne (1, 3, 5,6, ...)
pozdrawiam
marek003 - 01 Kwi 2009 15:10
Nie mam za dużo czasu a akurat do tego przydało by sie makro.
Wesz co a może zrób sumy częściowe. TZN
Zaznacz całą tabelę i
W menu dane wybierz sortuj , wciśnij ma wiersz nagłowka i w sortuj wg kolumny: nr ewidencyjny. daj Ok
Następnie
w menu dane wybierz sumy częściowe.
Dla każdej zmiany w: zaznacz numer ewidencyjny
Użyj funkcji wybierz suma
Dodaj sumę pośrednia: zaznacz kwota 1 i kwota2
wciśnij OK
Po lewej stronie (przy nazwie kolumny A) pojawią sie przyciski z numerkmi 1,2,3. wciśnij 2 i będziesz miał sumy wg numeru ewidencyjnego
ThomasGP - 02 Kwi 2009 07:11
Właśnie tak jak mówisz zrobiłem wcześniej, tylko że przy kopiowaniu tych wierszy i wklejeniu na innym arkuszu wklejają się te wszystkie ukryte wiersze (po naciśnieciu na 2 ukrywaja się).
Mógłbym kopiować same wiersze ale to w *** klikania
Bardziej podobał mi się Twój wcześniejszy pomysł, tylko nie wiem jak wybrać sobie do Twojej formuły wszystkie numery ewidencyjne bez powtórzeń, czyli tylko 1, 3, 5 i 6.
Mam takich numerów do 3040 także ręczne wybieranie to istna masakra
mimo co dzieki za pomoc bo i tak juz jestem duzo do przodu dzieki TObie.
adamas_nt - 02 Kwi 2009 08:35
Proponuję użyć sposobu z niedawno omawianego tematu filtrowania. W tej postaci zadziała w załączonym przez kol. marek003 przykładzie. Sub usun_dupl()
Worksheets("Arkusz1").Select
ile = Range("C1").End(xlDown).Row
Range("C1:C" & ile).AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=Columns("AA:AA"), Unique:=True
ile2 = Range("AA1").End(xlDown).Row
Range("AA2:AA" & ile2).Copy Range("I2:I" & ile2)
Range("AA1:AA" & ile2).ClearContents
End Sub
I to też się może przydać With Range("I2")
.Formula = "=SumIf(C:C,I$2,D:D)"
.AutoFill Destination:=Range("I2:I" & ile2 - 1), Type:=xlFillDefault
End With
marek003 - 02 Kwi 2009 09:41
Zrobiłem gotowe makro wykazujący numery ewidencyjne i dla nich sumy kwot.
Sub Sumy_kwot()
Range("I1:k50000").Clear ' Czyszczenie kolumny z numerami ewidencyjnymi
a = 0
ilewierszy = Sheets(1).Range("c1").End(xlDown).Row ' sprawdzenie ilosci wierszy w bazowej tabeli
For Licznik = 1 To ilewierszy
If WorksheetFunction.CountIf(Range("I1:I50000"), Cells(Licznik, 3)) = 0 Then
a = a + 1
Cells(a, 9) = Cells(Licznik, 3)
Cells(a, 10) = WorksheetFunction.SumIf(Range("C1:c50000"), Cells(a, 9), Range("d1:d50000"))
Cells(a, 11) = WorksheetFunction.SumIf(Range("C1:c50000"), Cells(a, 9), Range("e1:e50000"))
End If
Next
End Sub
Tu przykład w excelu (założenie główne dane z głównej tabeli mają być w tych samych kolumnach co w moim przykładzie - inaczej trzeba poprawić trochę makro - odwołania do poszczególnych kolumn w range i w cells).
ThomasGP - 02 Kwi 2009 12:03
Wielkie dzieki raport do GUS zrobiony!