Piotr Stec

Piotr Stec Dyrektor, Polska
Agencja Rozwoju
Regionalnego - PARR

Temat: wyszukiwanie - jedno kryterium wiele wyników

W kolumnie A mam nazwy miesiąc/rok, a w kolumnie B daty dzienne. W danym miesiącu występuje kilka dat dziennych. Mam problem z automatycznym wy filtrowaniem wszystkich dat dziennych z danego miesiąca.

Definiuję sobie 1 kryterium, np. lipiec 2016 (komórka E2) i chciałbym aby począwszy od komórki E4 w dół automatycznie pojawiły mi się wszystkie daty dzienne z lipca 2016, a więc te z kolumny B.

Może ktoś ma pomysł jak rozwiązać ten problem?

Link do pliku z problemem: https://1drv.ms/x/s!AtQw0B73YoKiqGOVW1bsivCysJBm
Radosław Dumania

Radosław Dumania Senior Master Data
Analyst

Temat: wyszukiwanie - jedno kryterium wiele wyników

Little makro never killed nobody



Sub nowe_makro()
On Error Resume Next

Dim month As String
Dim lastrow As Long
Dim table() As String

lastrow = Rows(1).End(xlDown).Row

month = Range("E2").Value

For i = 2 To lastrow
If Range("A" & i).Value = month Then

ReDim Preserve table(a)
table(a) = Range("B" & i).Value
a = a + 1
Else

End If

Next

For i = 0 To UBound(table)
Range("E4").Offset(i, 0).Value = table(i)
Next

End Sub



Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: wyszukiwanie - jedno kryterium wiele wyników

Pomysł dobry, ale widzę jedno miejsce, gdzie może zazgrzytać: kolumna A to typ danych Data, wartość w komórce E2 - to tekst. Mam wątpliwości, czy na pewno warunek w pętli będzie dobrze odczytany.
Radosław Dumania

Radosław Dumania Senior Master Data
Analyst

Temat: wyszukiwanie - jedno kryterium wiele wyników

Marzanna S.:
Pomysł dobry, ale widzę jedno miejsce, gdzie może zazgrzytać: kolumna A to typ danych Data, wartość w komórce E2 - to tekst. Mam wątpliwości, czy na pewno warunek w pętli będzie dobrze odczytany.

Cześć, nie sprawdzałem pliku z linku. W moim założeniu kolumna A to kolumna z tekstem np. Lipiec 2016, Sierpień 2017, etc. Jak byłby to format daty to przy wpisaniu lipiec 2017 zmieniałby się automatyczniena 01.07.2017 - a taka pełna data ma być podobno w kolumnie B.

Pozdrawiam,
RadekTen post został edytowany przez Autora dnia 21.08.16 o godzinie 11:02
Piotr Stec

Piotr Stec Dyrektor, Polska
Agencja Rozwoju
Regionalnego - PARR

Temat: wyszukiwanie - jedno kryterium wiele wyników

Makro działa świetnie. Trzeba tylko na początku dodać czyszczenie zakresu z datami dziennymi, żeby w przypadku zmiany miesiąca w E2 nie pozostały daty z wcześniejszego wyszukiwania.

A ma ktoś pomysł czy ten problem można rozwiązać formułami? Z czystej ciekawości pytam.
Radosław Dumania

Radosław Dumania Senior Master Data
Analyst

Temat: wyszukiwanie - jedno kryterium wiele wyników

Czesc,

Czyszczenia się trochę boje, więc nie chce go progagować. Ogola komenda w kodzie powinna brzmieć Range("A1:A8000").clear (albo .clearcontent)

Natomiast. Stworzyłem funkcje (oczywiście trzeba ja umiescic w module żeby dzialala).

w komórce wpisujesz potem =vlookup_2(E2;A:A;1) i powinno zadzialac. Dodatkowo możesz na początku dodac dyrektywę onerror resume next żeby pominąć bledy.

Przyznam ze dowiedziałem się o tym ze funkcje excelowe maja bana na zmiane zawartości innej komórki. Niż tej w której są wpisane. Stąd też mój kod jest trochę mniej zrozumiały niż poprzednio :) (W sumie to sam nie do końca rozumiem go, ale działa(ło) )

Pozdrawiam
R.



Function vlookup_2(month As Range, column As Range, offset As Integer)

Dim lastrow As Long
Dim table() As String

lastrow = column.End(xlDown).Row

For i = 1 To lastrow
If column(i).Value = month.Value Then

ReDim Preserve table(a)
table(a) = column(i).offset(0, offset).Value
a = a + 1

End If

Next

For i = 0 To UBound(table)

Evaluate "wpisz(" & month.offset(i + 2, 0).Address(False, False) & "," & table(i) & ")"

Next

End Function

Sub wpisz(kom As Range, wartosc As String)

kom.Value = wartosc

End Sub


Andy L.

Andy L. ITM, VUB

Temat: wyszukiwanie - jedno kryterium wiele wyników

Wystarczy złożyć w formułę takie funkcje:
IFERROR(), INDEX(), SMALL(), IF(), i dwa razy ROW(), zatwierdzić jako formułę typu array, przeciągnąć w dół i wynik gotowy.

O ile proste użycie filtra nie jest wystarczające.Ten post został edytowany przez Autora dnia 22.08.16 o godzinie 03:21
Radosław Dumania

Radosław Dumania Senior Master Data
Analyst

Temat: wyszukiwanie - jedno kryterium wiele wyników

Andy L.:
Wystarczy złożyć w formułę takie funkcje:
IFERROR(), INDEX(), SMALL(), IF(), i dwa razy ROW(), zatwierdzić jako formułę typu array, przeciągnąć w dół i wynik gotowy.

O ile proste użycie filtra nie jest wystarczające.

Nie testowałem formuły.
Proszę popraw mnie jesl nie mam racji : Twoje zalozenie jest takie, że znasz ilość wystąpień daty. Bo jeśli nie, to za każdym razem będziesz musiał przeciągać formułę w dół jeśli nie zakwalifikują się do niej kolejne wiersze.
Andy L.

Andy L. ITM, VUB

Temat: wyszukiwanie - jedno kryterium wiele wyników

Gdybym robił takie założenie to po co robić formułę?
Przeciągam tylko raz do wiersza gdzie kończy się tabela źródłowa. (ewentualnie plus trzy wiersze dalej) i tyle.
Mogę zrobić założenie, że ilość wyników będzie mniejsza niż ilość wierszy tabeli źródłowej. Mogę ale nie muszę.
Po "przeciągnięciu" formuły używam tylko komórki E2 w celu zmiany opcji wyszukiwania. Reszta robi się sama :)))

edit:
słowo "wyszukiwanie" jest tu nadużyciem. użyłbym raczej słowa: filtrowaniaTen post został edytowany przez Autora dnia 22.08.16 o godzinie 11:01
Zbigniew Szyszkowski

Zbigniew Szyszkowski sprzątacz,
Ministerstwo
Rolnictwa i Rozwoju
Wsi

Temat: wyszukiwanie - jedno kryterium wiele wyników

Że tak z głupia frant zapytam..... dlaczego nie użyjesz TP?
To co w kolumnie A do filtra TP, to co w kolumnie B do etykiet wierszy i gotowe.
Niepotrzebne ani VBA ani formułki.
Chyba że czegoś nie zrozumiałem... hmm

Pozdrawiam
Andy L.

Andy L. ITM, VUB

Temat: wyszukiwanie - jedno kryterium wiele wyników

Zbyszek, generalnie nie jest potrzebne ani VBA, ani formuła ani tabela przestawna. Wystarczy użyć filtra.
Zbigniew Szyszkowski

Zbigniew Szyszkowski sprzątacz,
Ministerstwo
Rolnictwa i Rozwoju
Wsi

Temat: wyszukiwanie - jedno kryterium wiele wyników

Hej Andy :-)
Generalnie zgadzam się w całej rozciągłości a może nawet i bardziej ;-)
Andy L.

Andy L. ITM, VUB

Temat: wyszukiwanie - jedno kryterium wiele wyników

Ludzie jednak lubią komplikować sobie życie :))))



Wyślij zaproszenie do