Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 70201 Skopiuj do schowka Sumowanie wartości w kolumnie dla symbolu
Autor Wiadomość
Adamus25
Fan Excela


Pomógł: 5 razy
Posty: 64
Wysłany: 20-02-2021, 23:23   Sumowanie wartości w kolumnie dla symbolu

Witam,

Otrzymuję dane w nietypowej tabeli. W kolumnie znajdują się symbole a wiersz poniżej wartości.
Jak zsumować wartości z danej kolumny dla konkretnego symbolu. Ilość wierszy tabeli zmienna - nie przekracza 150. Ilość symboli stała od 1 do 34.

Czy istnieje możliwość przebudowy tabeli w Power Query tak żeby można wykorzystać sumę warunków ?
Szczegóły w pliku.

Z góry dziękuję za pomoc
Pozdrawiam.

Dane_test.xlsx
Pobierz Plik ściągnięto 8 raz(y) 20.78 KB

ID posta: 400775 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 2033 razy
Posty: 6431
Wysłany: 21-02-2021, 01:25   

Propozycja formuł w dwóch wariantach. Pierwszy tablicowe z funkcjami SUMA(JEŻELI, drugi zwykłe z SUMĄ.ILOCZYNÓW.
Sprawdź, który wariant bardziej Ci odpowiada.
Kod:
=SUMA(JEŻELI((PRZESUNIĘCIE(tbl_1;;B$21;;1)=$A23)*(MOD(WIERSZ(tbl_1);2)=0);PRZESUNIĘCIE(tbl_1;1;B$21;;1);0))

Kod:
=SUMA.ILOCZYNÓW((PRZESUNIĘCIE(tbl_1;;B$60;;1)=$A62)*(MOD(WIERSZ(tbl_1);2)=0)*PRZESUNIĘCIE(tbl_1;1;B$60;;1))

Wartości zerowe (i ujemne) zamaskowane formatowaniem.

Dane_test_MG.xlsx
Pobierz Plik ściągnięto 6 raz(y) 53.66 KB

ID posta: 400777 Skopiuj do schowka
 
 
DwaNiedźwiedzie 
Excel Expert



Wersja: Win Office 2016
Pomógł: 279 razy
Posty: 686
Wysłany: 21-02-2021, 11:33   

Rozwiązanie z użyciem PQ.
Kod:
let
    Źródło = Table.Buffer(Excel.CurrentWorkbook(){[Name="tbl_1"]}[Content]),
    #"Dodano indeks" = Table.AddIndexColumn(Źródło, "Indeks", 1, 1),
    pierwsza = Table.ColumnNames(Źródło){0},
    kolumny = List.Skip(Table.ColumnNames(Źródło), 1),
    wiersze = List.FirstN(Table.ToList(Table.SelectColumns(Źródło, pierwsza)), 2),
    grupowanie = List.Transform(kolumny, each {_, (tbl) => List.Sum(Table.Column(tbl, _))}),
   
    funkcja = (nazwa) =>
        let
            #"Usunięto inne kolumny" = Table.SelectColumns(#"Dodano indeks", {"Indeks", pierwsza, nazwa}),
            #"Dodano kolumnę wartość" = Table.AddColumn(#"Usunięto inne kolumny", "wartość", each Record.Field(#"Usunięto inne kolumny"{[Indeks]}, nazwa)),
            #"Zmieniono nazwy kolumn" = Table.RenameColumns(#"Dodano kolumnę wartość",{{nazwa, "symbol"}, {"wartość", nazwa}}),
            #"Przefiltrowano wiersze" = Table.SelectRows(#"Zmieniono nazwy kolumn", each [Dane] = "Symbol" and not List.Contains({null, 0}, [symbol])),
            #"Usunięto inne kolumny1" = Table.SelectColumns(#"Przefiltrowano wiersze",{"symbol", nazwa})
        in #"Usunięto inne kolumny1",

    #"Dołączone zapytanie" = List.Accumulate(kolumny, #table({"symbol"},{}), (st, cur) => Table.Combine({st, funkcja(cur)})),
    #"Pogrupowano wiersze" = Table.Group(#"Dołączone zapytanie", {"symbol"}, grupowanie),
    #"Posortowano wiersze" = Table.Sort(#"Pogrupowano wiersze",{{"symbol", Order.Ascending}})
in
    #"Posortowano wiersze"
ID posta: 400792 Skopiuj do schowka
 
 
Adamus25
Fan Excela


Pomógł: 5 razy
Posty: 64
Wysłany: 21-02-2021, 19:36   

Witam,

Panie Macieju - formuły extra. Dziękuję bardzo.

DwaNiedźwiedzie - kod oczywiście działa.
Dane do tbl_1 pobieram z plików również za pomocą PQ. Spróbuję połączyć obydwa kody. Jeżeli polegnę to poproszę o pomoc.

Punkty dodałem.

Panowie jeszcze raz dziękuję.
ID posta: 400808 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe