Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel filtr zaawansowany i wyszukiwanie po dacie

28 Sty 2009 21:42 26275 6
  • Poziom 2  
    Witajcie,
    Stworzyłem arkusz w Excelu i mam oto bazę osób, które wyjeżdzają na wycieczkę. Baza składa się między innymi z pola DATA. Chciałbym teraz przy pomocy filtru zaawansowanego wyszukać osoby, które jadą na wycieczkę w marcu i w maju.

    Tworze nową tabelę z polem DATA, próbuję wpisywać <=2007-03-01 i >=2007-03-31 ale nic, nie zwraca mi wyników wcale bądź złe :(

    Drugi problem mam z funkcją wyszukaj.pionowo. Do pewnego momentu działa OK, a potem N/D :(

    W załączniku dodaję mój arkusz. Będę wdzięczny za każdą pomoc.
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 40  
    Aby wykorzystać filtr zaawansowany musisz w specyficzny sposób ustawić dane, a w szczególności nad tabelą z danymi (lub obok) powinieneś zostawić miejsce (wiersze) na warunki które powinien spełniać wynik (muszą być te same nagłówki kolumn).

    Dokładny opis jak to stosować będziesz miał jak wciśniesz pomoc (ikonka ze znakiem zapytania) i napiszesz "Filtr zaawansowany" i wciśniesz pierwsze odwołanie "Filtrowanie przy użyciu zaawansowanych kryteriów". Jeżeli nie zrozumiesz info z pomocy mogę podesłać ci plik. (Dodatkowym mankamentem jest to, że aby po wpisaniu (zmianie) kryteriów to zadziałało musisz znów wchodzić w: menu dane - filtr - filtr zaawansowany - OK)

    Osobiście jednak uważam, że powinieneś skorzystać z autofiltru. Jest prostszy w użyciu. Zaznaczasz wszystkie dane w tabeli i ... - menu dane - filtr - autofiltr. Po naciśnięciu strzałki przy DATA wybierasz "(inne)" i wpisujesz własne kryteria. Pokazuje ci się to co chcesz zobaczyć.

    Co do wyszukaj pionowo to nie wiem co chcesz uzyskać więc nie wiem jak ci pomóc.
  • Moderator Programowanie
    Poszerzyłem zakresy, wykluczyłem nagłówki i działa.

    Data: Nie jestem pewien o co chodzi. Może piszesz w złym formacie: rrrr-MM-dd zamiast dd-MM-rrrr
    Może użyj funkcji: DATA(rrrr;MM;dd). Np funkcja: =JEŻELI(ORAZ(DZIŚ()>=DATA(2009;3;1);DZIŚ()<=DATA(2009;3;31));PRAWDA;FAŁSZ) zwróci "PRAWDA" w każdym dniu marca 2009.
  • Poziom 40  
    Załapałem o co chodzi z tym wyszukaj.pionowo (nie zwróciłem uwagi że już wykorzystałeś tą funkcję).

    Potrzebny jest jeszcze jeden argument "przeszukiwany zakres". Trzeba go ustawić na 0 (fałsz). Wtedy będzie wyszukiwane dokładnie to co jest szukane inaczej może pokazywać głupoty (co na marginesie widać po załączniku przedstawionym przez adamas_nt - wszystkie godziny takie same w kolumnie F co nie jest prawdą).
    Mimo że w kolumnie D niby jest dobrze dla pewności poprawił bym i tam formuły (dodał ;0 do argumentów funkcji)

    Innymi słowy przy funkcji wyszukaj.pionowo (i wyszukaj .poziomo) ostatnim argumentem musi być 0 żeby to dobrze działało. MS rozróżnił tu najlepsze dopasowanie (1 lub prawda lub pominięte) od dokładnego dopasowania (0 lub fałsz). W pierwszym przypadku słowa mogą być podobne w drugim muszą być identyczne. W praktyce prawdy nie stosuje się bo to excel wybiera co wyrzucić jako wynik i mogą powstać bzdury.

    Funkcja z załączonego arkusza F2 powinna wyglądać tak =WYSZUKAJ.PIONOWO(A2;Arkusz2!$D$8:$E$12;2;0)
    Potem trzeba skopiować w dół.

    Co do filtru jest kłopot z zapisem daty w kryterium. Jeszcze chwile z tym powalczę ale proponuje (tak jak pisałem wcześniej) autofiltr zamiast filtru zaawansowanego.

    Załączam plik z dodanymi argumentami 0 (nie poszerzałem zakresu) i wstawiony jest autofiltr.
  • Poziom 40  
    Z filtrem zaawansowanym jest o tyle kłopot że datę którą ty wpisujesz excel widzi w rzeczywistości jako kolejną liczbę. Filtr zaawansowany nie potrafi przekonwertować daty na tą liczbę (jeżeli jest w zakresie) i dlatego nic nie pokazuje. (próbowałem różnych sposobów aby go zmusić [data, data.wartość i inne kombinacje] - na razie sie poddałem)

    Rozwiązaniem jest to by daty podawać w formie liczbowej wtedy filtr zaczyna działać.

    Poniżej przykład kiedy filtr działa tak jak chcesz jednak datę należy wpisać w postaci wartości. Po to obok dołożyłem "przerzutnik".
    Zadaniem filtru jest pokazać dane z Ukrainy w marcu

    Jest to dość uciążliwe więc proponuje po raz trzeci wykorzystać autofiltr.
  • Poziom 2  
    Dziękuje Panowie, wielkie dzięki! Męczyłem się z tym filtrem zaawansowanym, próbowałem wyświetlać daty w różnej postaci i nic. A tutaj wchodzi tylko w grę postać liczbowa daty. Teraz już wiem jak "zmusić" Excela do tego aby działał. Czyli wychodzi na to, że za każdym razem w wyszuja.pionowo na końcu dodaję 0 tak?
  • Poziom 40  
    DjKolano napisał:
    Dziękuje Panowie, wielkie dzięki! Męczyłem się z tym filtrem zaawansowanym, próbowałem wyświetlać daty w różnej postaci i nic. A tutaj wchodzi tylko w grę postać liczbowa daty. Teraz już wiem jak "zmusić" Excela do tego aby działał. Czyli wychodzi na to, że za każdym razem w wyszuja.pionowo na końcu dodaję 0 tak?


    Jeżeli zastosujesz autofiltr możesz się posługiwać datami.

    Co do 1 lub 0 jako ostatniego argumentu:
    Nie mam pojęcia co kieruje excelem we wskazywaniu najlepszego dopasowania (argument 1 lub pominięty). Przykład:
    w tabeli jest
    krowa | 1
    aaaa | 2
    Po wpisaniu WYSZUKAJ.PIONOWO("krowy";A1:B2;2;1) lub WYSZUKAJ.PIONOWO("krowy";A1:B2;2) funkcja daje 2.
    W miarę prawidłowo to działa, jeżeli dane są posegregowane rosnąco (tak jak radzi pomoc offica) jednak nie zawsze się ma posegregowane dane a czasami nawet nie wolno ich posegregować i wtedy mamy bzdury (jak wyżej).
    Więc osobiście radzę za pomocą tej funkcji szukać dokładnego dopasowania czyli 0 w ostatnim argumencie. Jeżeli nie znajdzie poszukiwanej wartości zwróci błąd ale jak znajdzie to na pewno zwróci odpowiednią daną tą którą się poszukuje.