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

[Rozwiązano] Funkcja Filtruj zdublowane nazwy części i różne ceny z dwóch cenników naprzemienne wyświetlanie

piotrpeter3 13 Lip 2023 20:20 633 14
REKLAMA
  • #1 20653267
    piotrpeter3
    Poziom 3  
    Posty: 50
    Cytat:
    Mam zestaw części w arkuszu o nazwie „samochód części”, gdzie występują części o takich samych nazwach np. sprężarka i różnych cenach w dwóch kolumnach o nazwach Cena bazowa program i Cena bazowa program XYZ
    Użyłem funkcji filtruj w arkuszu o nazwie „samochód” ale wówczas jak mam 3 ceny części to pokazuje się jako

    Cena program XYZ 1, Cena program XYZ2, Cena program XYZ3

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Oraz Cena bazowa program 1, Cena bazowa program 2, Cena bazowa program 3

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod



    Próbowałem funkcji Wyszukaj.Pionowo, ale ona wyszukuje tylko np. cenę 1 sprężarki na liście i pokazuje pierwszą w kolejności jaka występuje, a pozostałe pomija.

    Niestety używając funkcji Filtruj (TRANSPONUJ) pokazują się wszystkie ceny poziomo i nie wiem jakiej formuły użyć żeby oczywiście była możliwość skopiowania ceny i wyświetlało się w następujący sposób obok siebie, ale naprzemiennie: Cena program XYZ 1 i Cena bazowa program 1; Cena program XYZ 2 i Cena bazowa program 2; Cena program XYZ 3 i Cena bazowa program 3

    Chyba, że istnieje możliwość sporządzenia takiej formuły, która da możliwość wyboru cen 3 części w jednej komórce wówczas nie trzeba rozdzielać na 3 kolumny.


    Następna sprawa w arkuszu o nazwie samochód części mam kolumnę o nazwie Cena 1, Cena 2, Cena 3, Cena 4, Cena program XYZ, gdzie występują poniższe formuły i chciałbym je połączyć w jedno zamiast w trzech dodam, że poniższa formuła jest potrzebna do obliczenia więc musi być przecinek, a wyświetlać ma się z kropką.

    Poniższe formuły, które chciałbym aby były w jednej komórce jako: Cena program XYZ

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    W załączniku zamieszczam plik excela.

    Z góry dziękuję za wszelką pomoc.
    Załączniki:
    • samochód części nowe.xlsx (68.98 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #2 20653606
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481

    Byłoby lepiej, gdybyś pokazał oczekiwany wynik, bo ten opis nie jest całkiem jasny.
    O ile zrozumiałem, to pierwsza formuła może być taka:
    Kod: Text
    Zaloguj się, aby zobaczyć kod
    Zwraca wartości na przemian w jednym wierszu (kolejność kolumn źródłowych przestawiona).
    Tego:
    piotrpeter3 napisał:
    takiej formuły, która da możliwość wyboru cen 3 części w jednej komórce wówczas nie trzeba rozdzielać na 3 kolumny.
    nie zrozumiałem. Trzeba było pokazać w arkuszu, jak to miałoby wyglądać.

    Do drugiego pytania można zaproponować taki wzór:
    Kod: Text
    Zaloguj się, aby zobaczyć kod

    Załączniki:
    • samochód części nowe.xlsx (69.53 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #3 20655102
    piotrpeter3
    Poziom 3  
    Posty: 50
    Formuła działa bardzo dobrze o to mi chodziło ale tylko na wersji office 365 natomiast na wersji office 2021 nie ma takiej opcji i wyświetla się następujący komunikat: #NAZWA?
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    Nie wiem czy istnieje możliwość użycia podobnej funkcji w wersji office 2021, która umożliwi zaadaptowanie takiej funkcjonalności.
    Formuła
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
    działa świetnie w końcu cała formuła jest w jednej komórce i w dodatku został wyeliminowany problem wyświetlania wartości 0.00 czyli z czym poprzednio był problem podczas zaokrąglania pomimo, że ustawiłem do dwóch miejsc po przecinku wyświetlało się np. 12.9.

    Następna kwestia to sortowanie alfabetyczne nazw z uwzględnieniem wartości czyli ceny mianowicie jeśli mamy jako pierwszą sprężarkę np. w cenie załóżmy 500 zł i drugą w cenie 400zł, a trzecia 600zł, a pierwsza w kolejności pokazuje się cena wyższa to teraz chodzi o przesortowanie z wartością pewnie kropa zamiast przecinka stanowi problem z sortowaniem?, bo excel nie uznaje jej jako wartości liczbowej. W jaki sposób to rozwiązać chodzi mi o przygotowanie takiego cennika żeby wartość z programu była przesortowana według nazwy alfabetycznie i jednocześnie z uwzględnieniem wartości, ale nie od najtańszej części tylko według zdublowanej nazwy wartości danej części.

    Poniżej załączam plik z zaadaptowanymi formułami.

    Dziękuję bardzo za wszelką pomoc. Pozdrawiam
    Załączniki:
    • samochód części nowe 2.1.xlsx (65.55 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #4 20655199
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Przy założeniu, że będą najwyżej 3 pary wyników, można użyć takiej formuły zamiast tej, która nie działała w Excelu 2021:
    Kod: Text
    Zaloguj się, aby zobaczyć kod


    Natomiast co do tego sortowania, to zupełnie nie rozumiem, co chcesz sortować i w jaki sposób. Nawet nie napisałeś o którym arkuszu chodzi.

    Opisz to porządnie i zrób przykład danych przed sortowaniem i po sortowaniu tak, jak chcesz, żeby to działało.
    Nie wiem, czy uda się osiągnąć oczekiwany efekt, bo po to m.in. w Excelu rozróżnia się liczby i teksty, żeby je prawidłowo sortować. Ty się uparłeś, żeby z liczb zrobić teksty, a teraz chcesz je sortować jak liczby? To jest lekko zwariowane.
    Załączniki:
    • samochód części nowe 3.xlsx (65.2 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #5 20655540
    piotrpeter3
    Poziom 3  
    Posty: 50
    Dla mnie wartość z kropką też jest absurdalna, ale akurat mam takie wymagania programowe.
    Super formuła działa świetnie co prawda poprzednia formuła działała w pełni automatycznie tutaj trzeba dokonać modyfikacji w przypadku 4 lub większej ilości różnych cen zduplikowanych nazw części jeśliby takie wystąpiły ale obie funkcje niestety póki co nie zostały jeszcze zaadaptowane do wersji office 2021.
    Akurat się tak złożyło, że większość części w arkuszu „samochód części” o niższych kwotach pojawia się w pierwszej kolejności w tym przypadku, ale jest jedna lampa, która jako pierwsza miała kwotę wyższą jako pierwszą wpisaną i pojawia się w arkuszu „samochód” z kwotą wyższą przykład poniżej
    Arkusz „samochód części”
    1 LAMPA TYLNA L. ZEWN. Nowy 12.07.2023 2694.17 zł 1656.91 zł
    2 LAMPA TYLNA L. ZEWN. Nowy 12.07.2023 875.15 zł 538.22 zł
    i występuje w arkuszu „samochód” w poniższym przykładzie
    Arkusz „samochód”
    Cena progam XYZ 1 Cena bazowa Program 1 Cena progam XYZ 2 Cena bazowa Program 2
    2694.17 zł 1656.91 zł 875.15 zł 538.22 zł
    Oczywiście mogę to zrobić manualnie, ale jeśliby się zdarzyło więcej takich przypadków, że jest np. połowa części z ceną wyższą występującą w pierwszej kolejności to w arkuszu „samochód” wartości nie będą od najmniejszej do największej jak zostało to przedstawione ponownie poniżej
    Cena progam XYZ 1 Cena bazowa Program 1 Cena progam XYZ 2 Cena bazowa Program 2
    2694.17 zł 1656.91 zł 875.15 zł 538.22 zł

    Poniżej załączam plik

    Wiem, że to jest trochę trudne do zrobienia i nie wiem czy excel będzie w taki sposób owe dane przesortować?
    Załączniki:
    • samochód części nowe 4.xlsx (66.15 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #6 20655632
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Jeśli zdarza się, że masz 4 pozycje w wierszu, to możesz formuły przerobić od razu na 4 pozycje. Jeśli będzie mniej, to będą wyświetlane puste teksty, więc wizualnie nie będzie to razić, tylko nieco większe obciążenie arkusza.

    Jeśli chodzi o to sortowanie, to teraz wreszcie wiem o co Ci chodziło. "Sortowanie" to bardzo szerokie pojęcie, a tu chodziło o to, żeby w każdym wierszu ceny (w parach) były wyświetlane od najmniejszej do największej. Tak?

    Formuła się rozrasta:
    Kod: Text
    Zaloguj się, aby zobaczyć kod


    Nie rozumiem, co miałeś na myśli pisząc
    piotrpeter3 napisał:
    obie funkcje niestety póki co nie zostały jeszcze zaadaptowane do wersji office 2021.
    Załączniki:
    • samochód części nowe 4.xlsx (66.54 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 20655679
    piotrpeter3
    Poziom 3  
    Posty: 50
    Chodziło mi o funkcję

    DO.RZĘDU z ang. TOROW oraz WYBIERZ.KOLUMNY z ang. CHOOSECOLS, które póki co nie są jeszcze dostępne w wersji office 2021 a one znacznie skracają całą formułę ale za to nie są kompatybilne z poprzednimi wersjami pakietu więc nie we wszystkich wersjach pakietu jest możliwość wykorzystania funkcjonalności tych formuł Wiadomo, że nie jest to zbyt lukratywny interes dla firmy.

    Przepraszam, że Panu trochę głowę zawracam, ale czy istniałaby taka możliwość aby również do poprzedniej formuły zastosować takie samo sortowanie będzie to tylko możliwe do odtworzenia we wersji office 365 doskonale o tym wiem, ale za to formuła będzie krótsza nie tak uniwersalna jak poprzednia ale także się przyda.

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Widzę, że mam do czynienia z wysokiej klasy ekspertem, który operuje ogromną wiedzą w sposób niezwykle elastyczny. Sprawdziłem przy okazji w internecie, że jest Pan autorem kilku książek o tematyce excela co nie bez powodu jest odzwierciedleniem Pana wiedzy.

    Pozdrawiam serdecznie :)
  • #8 20655726
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    W wersji 365 może być taka formuła z sortowaniem:
    Kod: Text
    Zaloguj się, aby zobaczyć kod


    Te funkcje, których nie ma w wersji 2021 mogą się pojawić w następnej wersji "pudełkowej" zapewne 2024, a na bieżąco są uzupełniane w wersji 365.
    Niestety taka polityka Microsoftu powoduje, że nigdy nie wiadomo, kto jakie funkcje ma do dyspozycji. Niektórzy mają np. 365, ale nie przedłużyli abonamentu i przestali dostawać bieżące aktualizacje. I nowszych funkcji mogą nie mieć.
    Załączniki:
    • samochód części nowe 5.xlsx (66.12 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #9 20657602
    piotrpeter3
    Poziom 3  
    Posty: 50
    Sprawdziłem i formuła działa super jeszcze mam taką prośbę nie mogę sobie z tym poradzić jak skompletuje wszystkie części w arkuszu „samochód części” i będzie więcej duplikatów nazw z częściami to chciałbym je na końcu przesortować od najmniejszej wartości do największej ale z uwzględnieniem nazw części od a-z ( alfabetycznie).
    W narzędziach głównych użyłem funkcji filtruj następnie opcji sortowanie alfabetyczne nazw, ale chodzi mi o duplikaty nazw.
    Tak wygląda wersja
    Wersja bez sortowania

    od

    A

    |

    LAMPA TYLNA L. ZEWN. Nowy 12.07.2023 2694.17 zł 1656.91 zł
    LAMPA TYLNA L. ZEWN. Nowy 12.07.2023 875.15 zł 538.22 zł

    |

    Z

    A tak chciałbym aby wyglądała
    Wersja po sortowaniu od najmniejszej do największej wartości z uwzględnieniem nazw części alfabetycznie

    od

    A

    |

    LAMPA TYLNA L. ZEWN. Nowy 12.07.2023 875.15 zł 538.22 zł
    LAMPA TYLNA L. ZEWN. Nowy 12.07.2023 2694.17 zł 1656.91 zł

    |

    Z

    Poprzednia formuła jest priorytetowa ale wraz z dopisywaniem nowych części o zdublowanych nazwach chciałbym również aby kwoty i nazwy części można było w następujący sposób przesortować jak poprzednio napisałem.


    Pozdrawiam i jeszcze raz dziękuję.
  • #10 20657733
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    To znaczy tym razem chodzi o normalne sortowanie danych, rozumiane jako operacja, a nie za pomocą formuł.
    To jest przypadek trochę niestandardowy.
    Po pierwsze: sortowanie w ramach filtra dotyczy pojedynczych kolumn, a tu potrzebujesz sortować najpierw według nazwy, potem według ceny, czyli wg dwóch kolumn. Należy więc użyć normalnego sortowania. Dane > Sortuj.
    Po drugie: Excel rozpoznaje przy sortowaniu liczby i teksty. Teksty sortuje tekstowo, a liczby według wartości. Ponieważ zachowując ustawienia systemowe (przecinek dziesiętny) zamieniłeś przecinki w liczbach na kropki, to Excel widzi tu teksty, a nie liczby i sortuje je tekstowo (sortowanie tekstowe polega na porównywaniu znak po znaku od lewej, dlatego tekstowo 123.45 < 35.67, bo 1 < 3).
    Po trzecie: żeby Excel zobaczył, że ten ciąg cyfr z kropką może być liczbą, trzeba tymczasowo (na czas sortowania) wyłączyć stosowanie separatorów systemowych i wskazać kropkę jako separator dziesiętny. To należy zaznaczyć w opcjach:
    Kod: Text
    Zaloguj się, aby zobaczyć kod

    Po czwarte: wykonać sortowanie - jako poziom pierwszy wskazać nazwę (kol. A), jako poziom drugi cena bazowa programu (kol. D). W obu przypadkach sortowanie wartości, kolejność od A do Z. Po naciśnięciu OK pojawi się dodatkowe okienko dialogowe, w którym trzeba wybrać pierwszą opcję (żeby traktował jak liczby wszystko co wygląda jak liczba).
    Po piąte: po wykonaniu sortowania należy w opcjach przywrócić stosowanie separatorów systemowych. W przeciwnym razie formuły będą działać niepoprawnie (są napisane przy założeniu, że separatorem dziesiętnym jest przecinek).
    Załączniki:
    • samochód części nowe 5a.xlsx (66.23 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #11 20659330
    piotrpeter3
    Poziom 3  
    Posty: 50
    Super właśnie o to mi chodziło, ale w związku z modyfikacją zwykłe sortowanie nie działało a nie wiedziałem gdzie można dokonać tej zmiany w ustawienia aby poprawnie sortowało dane.
    Mam jeszcze takie pytanie jakbym załóżmy chciał wydrukować taką listę to w przypadku jak są 3×2 kolumn to jakoś to wygląda w pliku excel, a jak jest więcej to już niekonieczne trzeba zmniejszyć znacząco czcionkę żeby to się zmieściło na stronie. Czy istnieje taka formuła która umożliwia przerzucanie tych wartości jeśli jest ich no 4x2 kolumny do następnej linijki w poziomie jednocześnie żeby się to zgadzało w lini i z nazwą części czy ni wiem musiało by scalać komórki czy po prostu zostawiać pustą pod spodem i co drugi wiersz nowa nazwa części.
  • REKLAMA
  • #12 20659393
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Chyba już za dużo oczekujesz od tego biednego Excela.
    W nowym Excelu jest funkcja ZAWIŃ.WIERSZE, która umożliwia zawijanie wierszy, ale przy jednej pozycji. A tu pozycji jest dużo, więc trzeba by było zliczać powtórzenia każdej części, wyliczać dla każdej liczbę potrzebnych wierszy, później odpowiednio przesuwać miejsca wyświetlenia kolejnych pozycji. Może da się to zrobić formułami (tylko w nowym Excelu), ale to byłoby dość żmudne.

    Tu raczej widziałbym zastosowanie Visual Basica, ale to też trzeba by było wszystko napisać od początku. Być może Power Query, ale nie znam dobrze możliwości tego dodatku, a on jest właśnie przeznaczony do manipulacji danymi.
    Excel jest programem obliczeniowym, a użytkownicy chcą od niego, żeby był równocześnie i edytorem tekstu i programem do prezentacji danych i jeszcze Bóg wie co.

    Ewentualnie jeszcze można to drukować w taki sposób, żeby powtarzać pierwszą kolumnę na następnej stronie wydruku i wtedy będą, powiedzmy, 3 pozycje na 1. stronie, a następne 4-6 na drugiej stronie (z powtórzoną lewą kolumną) itd. Czy to będzie estetyczne, to zależy ile jest tych pozycji w praktyce. Bo co innego jak jest zwykle do 3, a czasem zdarzą się 4, a co innego gdy jest np. najczęściej 5-6. Ja tego nie wiem, a z Twojego pierwotnego opisu wynikało, że są najwyżej 3 pozycje (powtórzenia tej samej części).
  • #13 20660256
    piotrpeter3
    Poziom 3  
    Posty: 50
    Przepraszam, że może wyszedłem poza pierwotne założenia mojego problemu i Pana trochę pomęczyłem. Jest Pan profesjonalistą i fajnie było porozmawiać w tym wątku, bo oglądałem już mnóstwo filmów na youtube dotyczących formuł i obsługi excela ale Pan jest jedyny, który potrafi tworzyć zaawansowane formuły wychodząc poza standardowe schematyczne myślenie. Potrafi Pan z niezwykłą łatwością asocjować tak ogromny zakres informacji aby móc tworzyć tak skomplikowane formuły.

    Pozdrawiam 😀
  • #14 20663777
    piotrpeter3
    Poziom 3  
    Posty: 50
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • #15 20705916
    piotrpeter3
    Poziom 3  
    Posty: 50
    jak wyżej

Podsumowanie tematu

✨ Użytkownik zadał pytanie dotyczące filtrowania i sortowania danych w arkuszu Excel, gdzie występują duplikaty nazw części samochodowych z różnymi cenami. W odpowiedziach zaproponowano różne formuły, w tym użycie funkcji FILTRUJ, DO.WIERSZA oraz WYBIERZ.KOLUMNY, które umożliwiają wyświetlanie cen w odpowiedniej kolejności. Użytkownik zauważył, że niektóre funkcje są dostępne tylko w wersji Office 365, co ogranicza ich zastosowanie w Office 2021. Dyskutowano również o problemach z sortowaniem danych, gdzie Excel rozpoznaje liczby i teksty, co wpływa na poprawność sortowania. Użytkownik chciałby również, aby dane były sortowane alfabetycznie oraz według wartości, a także rozważał możliwość wydruku danych w odpowiednim formacie.
Wygenerowane przez model językowy.
REKLAMA