Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Excel] sortowanie kolumny/ usuwanie duplikatów/ wrzucenie wyniku do 1 komórki

Wolvek 05 Jul 2019 16:14 606 6
  • #1
    Wolvek
    Level 10  
    Hej,

    Mam problem z sortowaniem i usuwaniem duplikatów w czasie rzeczywistym. W załączniku znajduje się lista przykładowych detali, z podobnych lub takich samych materiałów. Chciałbym aby excel automatycznie generował mi listę potrzebnych materiałów, bez duplikatów i prezentował to w miarę czytelnej formie. W załączniku jest to bardziej czytelnie wyjaśnione.
    Znajdzie się jakiś spec który rzuciłby na to okiem i chociaż podpowiedział jak ten temat ugryźć ? Od razu podpytam czy jest konieczność używania makr, gdyż na różnych komputerach i wersjach excel'a mamy z nimi małe problemy, stąd w miarę możliwości wolałbym ich unikać.

    Wielkie dzięki za każdą odpowiedz !
  • Helpful post
    #2
    adamas_nt
    Moderator of Programming
    Hmm, bez makra...
    Pewnie da się kilkoma tablicowymi, ale aż takim orłem w funkcjach nie jestem ;)
    W załączniku wynik kombinacji z arkuszem pomocniczym. Trochę tam jeszcze nieporządek z funkcjami. No i listy zepsułem - myślałem, że ta tabelka to wynikowa ma być.
    Listę grubości wpisałem "na sztywno", a materiał... może tak właśnie będzie dobrze (można wybrać z listy, albo wpisać "z palca").

    Zerknij, może coś z tego wykorzystasz.

    P.S. sortowanie najlepiej zastosować na tabelce źródłowej (wg obu kolumn) i z głowy.
  • #4
    Wolvek
    Level 10  
    adamas_nt wrote:
    Hmm, bez makra...
    Pewnie da się kilkoma tablicowymi, ale aż takim orłem w funkcjach nie jestem ;)
    W załączniku wynik kombinacji z arkuszem pomocniczym. Trochę tam jeszcze nieporządek z funkcjami. No i listy zepsułem - myślałem, że ta tabelka to wynikowa ma być.
    Listę grubości wpisałem "na sztywno", a materiał... może tak właśnie będzie dobrze (można wybrać z listy, albo wpisać "z palca").

    Zerknij, może coś z tego wykorzystasz.

    P.S. sortowanie najlepiej zastosować na tabelce źródłowej (wg obu kolumn) i z głowy.


    Głowie się nad tym już którąś godzinę, któryś dzień, ale jestem na to zdecydowanie za głupi.
    Idea była taka, że przy każdym nowym zamówieniu kopiuje taki arkusz, na którym mam właśnie między innymi spis potrzebnych materiałów, wypełniam go od początku a później na osobnym arkuszu mam gotową formatkę do druku.
    Twoje rozwiązanie działałoby super, tylko że przy 1-2 wypełnionych wierszach z materiałem, nie działa jak powinna. Poprawiłbym to, gdybym miał chociaż minimalne pojęcie jak to działa, ale formuły których użyłeś to dla mnie czarna magia x)
    Już sortowania grubości formułami i resztę pierdół bym sobie ogarnął, ale głównej części "kodu" nie ogarnę za cholerę.
    Zdaje sobie sprawę, że można rozwiązać to sortowaniem + usunięciem duplikatów, ale chciałem mieć tak "ładnie" zautomatyzowane, żeby nie trzeba było nic dodatkowo klikać/przekopiowywać.
    Wiem że są podobne rozwiązania z VBA, tylko że mam kilka różnych rodzajów Excela na kilku komputerach i w praktyce się to nie sprawdza, bo wiecznie się coś wykrzacza.
    Jest jeszcze nadzieja, żebyś rzucił na to okiem ;)?
  • #5
    adamas_nt
    Moderator of Programming
    Ale to jest naprawdę dość proste. No, może za bardzo rozmiksowane, ale byłem pewien, że ktoś "załatwi" to jedną formułą tablicową. Chodziło o to, żeby było "widać jak to idzie".

    Kolejne kroki masz w ramkach arkusza pomocniczego. Ze spokojem przeanalizuj. Pożyteczne MAX()+1 z LICZ.JEŻELI przyda Ci się przy okazji tworzenia rożnych list, zestawień itp

    P.S. Ucinanie ostatniego ";" przeniosłem do arkusza pomocniczego.

    Zadanie domowe: spróbuj rozbudować to o jeszcze kilka pozycji ;)
  • #6
    Wolvek
    Level 10  
    Hej,

    Twój arkusz działa idealnie, a mimo że przekopiowałem go 1:1, z wyjątkiem zakresów danych no i nazw poszczególnych arkuszy, to mój nie działa jak powinien. Problem robi najprawdopodobniej formuła :

    =JEŻELI.BŁĄD(INDEKS(Arkusz1!$C$3:$C$35;PODAJ.POZYCJĘ(NR.KOLUMNY()-4;$C$3:$C$35;0));"")

    Która u mnie wygląda w ten sposób
    =JEŻELI.BŁĄD(INDEKS(Wycena!$J$2:$J$140;PODAJ.POZYCJĘ(NR.KOLUMNY()-4;$F$3:$F$141;0));"")


    Jak widać różni się to tylko odnośnikiem do arkusza no i zakresem z którego ma zbierać nazwy materiału. A przy wpisaniu 1 czy 2 pozycji, formułą nic nie wyświetla. Dopiero jak dojdę do komórki J9 na arkuszu "Wycena", to ta formuła wyświetla mi 1 pozycje, zamiast 8 wcześniejszych. Jeśli zmieniam wartość w formule przy "NR.KOLUMNY()" z "-4" np na "-6" to formuła wyświetla wszystkie materiały, ale znowu miesza mi grubości. Nie rozumiem dlaczego w Twojej formule jest właśnie to "-4", do czego się to odnosi?
    Nie wydaje mi się abym coś pominął, tabele czy sprawdzanie poprawności danych nie powinny mieć przecież wpływu na efekt końcowy, bo wszystkie formuły przez Ciebie stworzone pobierają jedynie wartości z komórek, nie ma żadnych ukrytych odnośników.