logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zsumować kwoty dla unikalnych nazw w Excelu i zwrócić wynik w Arkuszu2?

aurora23 07 Cze 2013 09:16 3246 8
REKLAMA
  • #1 12391564
    aurora23
    Poziom 10  
    Posty: 61
    Ocena: 7
    Witam, w Arkuszu1 mam dwie kolumny : "kwota" i "nazwa".
    Próbuję napisać pętlę, która będzie w kolumnie "nazwa" porównywać wartości. Mianowicie po znalezieniu wszystkich wystąpień danej nazwy - zsumuje kwoty jej odpowiadające i w Arkuszu2 zwróci w komórce A1 nazwę, a w B1 sumę.

    Ogólnie to fajnie, żeby to dało się powyższą funkcje uogólnić dla innych arkuszy.
    Będę wdzięczna za wszelką pomoc :)
  • REKLAMA
  • #2 12391658
    cbrman
    Poziom 27  
    Posty: 441
    Pomógł: 177
    Ocena: 61
    A po co wywarzać otwarte drzwi skoro Excel ma wbudowane formuły spełniające to zadanie:
    - suma.jeżeli
    - suma.warunków (dla Excela >=2007)
    - suma.iloczynów
    - bd.suma
    - suma jako formuła tablicowa

    Chyba, że dla samego poćwiczenia VBA, to może być coś takiego:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 12391718
    aurora23
    Poziom 10  
    Posty: 61
    Ocena: 7
    cbrman napisał:
    A po co wywarzać otwarte drzwi skoro Excel ma wbudowane formuły spełniające to zadanie:
    - suma.jeżeli
    - suma.warunków (dla Excela >=2007)
    - suma.iloczynów
    - bd.suma
    - suma jako formuła tablicowa


    Okej, ale np. dla formuły suma.jeżeli będę musiała za każdym razem wpisywać nazwę, którą chcę znaleźć w kolumnie, a u mnie jest to 36cyfrowy numer konta - bez sensu. Chodzi mi o automatyzację większą :)

    Dzięki za pomoc :)
  • #4 12391812
    cbrman
    Poziom 27  
    Posty: 441
    Pomógł: 177
    Ocena: 61
    aurora23 napisał:
    Chodzi mi o automatyzację większą :)


    Może tabela przestawna albo sumy częściowe?
    Najlepiej byłoby gdybyś załączyła plik z fragmentem danych (dane mogą być wymyślone byleby ich układ był zgodny z Twoim) oraz konkretny opis jak mają one wyglądać na wyjściu to można coś konkretnego doradzić.
  • REKLAMA
  • Pomocny post
    #5 12391864
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Dzień dobry,
    To jest typowe zadanie do konsolidacji. Było to już wiele razy na forum, można też przeczytać w pomocy Excela. Deklaruje Pani obszar do konsolidacji, miejsce na wynik (może być w tym samym arkuszu, albo w innym) i dostaje gotowe podsumowanie. Tyle, że jest to jednorazowe, po zmianie danych trzeba wykonać ponownie, ewentualnie skorzystać z VBA i podpiąć konsolidację pod obsługę zdarzenia, wtedy będzie powtarzana automatycznie np. po otwarciu arkusza.
  • #6 12401076
    aurora23
    Poziom 10  
    Posty: 61
    Ocena: 7
    Załączam przykładowy arkusz.
    Tak jak napisałam wcześniej - interesuje mnie, aby kod/makro działał(o) w ten sposób, że znajduje wszystkie konta o tej samej nazwie, następnie przepisuje do pierwszej kolumny nowego arkusza pojedyncze konta (już bez powtórzeń), a w drugiej kolumnie znajdują się kwoty będące sumami kwot z arkusza 1, które wystąpiły pod tą samą nazwą konta.

    Pozdrawiam
    Załączniki:
    • przykład.xls (40 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #7 12401347
    cbrman
    Poziom 27  
    Posty: 441
    Pomógł: 177
    Ocena: 61
    Przetestuj poniższe makro mając otwarty arkusz z tabelą wejściową
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #8 12401357
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Dzień dobry,
    Tak jak napisałem najprościej, moim zdaniem, zrobić to przez konsolidację. Nie pisze Pani tylko, której wersji Excela Pani używa, ale konsolidacja jest dostępna we wszystkich wersjach, tylko w różnych miejscach. W Excelu 2010 na karcie Dane, grupa Narzędzia danych, polecenie Konsoliduj. Dalej jest już we wszystkich wersjach podobnie. Przed rozpoczęciem procedury należy umieścić kursor (komórkę aktywną) w lewym górnym rogu miejsca, gdzie ma być wynik. Po wywołaniu polecenia wyświetlane jest okienko, w którym należy kolejno: w polu Funkcja pozostawić Suma (domyślne), w polu odwołanie zaznaczyć obszar do konsolidacji, jego lewa kolumna powinna zawierać etykiety (u Pani są to numery kont), a prawa (może być więcej kolumn) dane liczbowe, które mają być podsumowane. Jeśli takich obszarów jest więcej należy je zaznaczać kolejno, naciskając za każdym razem Dodaj. Po ostatnim obszarze naciskać Dodaj nie trzeba, tylko później OK. Jeśli jest kilka obszarów muszą mieć taką samą strukturę (tzn. tyle samo kolumn i etykiety w pierwszej kolumnie). U Pani jest w tej chwili tylko jeden obszar, więc wystarczy go zaznaczyć. Dalej w polu Użyj etykiet w: zaznaczyć Lewa kolumna i na koniec nacisnąć OK. Wynik będzie w postaci stałych, a nie odwołań. Dla nowych danych procedurę należy powtórzyć w analogiczny sposób. Dopasować szerokość komórek i ewentualne sformatować i wstawić nagłówki kolumn należy ręcznie. Pani przykład załączam.
    Załączniki:
    • przykład (2)_konsol.xls (33.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #9 12401881
    aurora23
    Poziom 10  
    Posty: 61
    Ocena: 7
    Obie metody działają rewelacyjnie.

    Dziękuję serdecznie!

Podsumowanie tematu

✨ Użytkownik poszukiwał sposobu na zsumowanie kwot dla unikalnych nazw w Excelu, gdzie dane znajdowały się w Arkuszu1. Proponowane rozwiązania obejmowały wykorzystanie wbudowanych formuł, takich jak suma.jeżeli oraz suma.warunków, a także VBA do automatyzacji procesu. Użytkownik preferował automatyzację, aby uniknąć ręcznego wprowadzania nazw. Zasugerowano również użycie tabel przestawnych oraz konsolidacji danych. Ostatecznie, użytkownik otrzymał makro, które umożliwia filtrowanie unikalnych nazw kont oraz sumowanie odpowiadających im kwot, co spełniło jego oczekiwania.
Wygenerowane przez model językowy.
REKLAMA