Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 64408 Skopiuj do schowka Duplikaty do 3 dni
Autor Wiadomość
przemomakro 
Fan Excela


Posty: 63
Wysłany: 13-03-2019, 09:36   Duplikaty do 3 dni

Witam. Chciałbym aby w komórce A(Duplikat) wstawiany było tekst Tak lub Nie.
Makro ma szukać po dacie i kwocie duplikatów z dwóch różnych źródeł oraz jeżeli przesunięcie daty występuje do 3 dni.

dupliakat 3 dni.xlsm
Pobierz Plik ściągnięto 18 raz(y) 9.98 KB

ID posta: 364077 Skopiuj do schowka
 
 
minijack 
Exceloholic


Pomógł: 65 razy
Posty: 180
Wysłany: 13-03-2019, 10:52   

do komórki a2 wstaw:
Kod:
=JEŻELI(LICZ.WARUNKI(D:D;D2;E:E;E2;F:F;F2;C:C;">="&C2-3;C:C;"<="&C2+3)>1;"TAK";"NIE")

i wypełnij w dół
liczy +-3 dni
ID posta: 364096 Skopiuj do schowka
 
 
przemomakro 
Fan Excela


Posty: 63
Wysłany: 13-03-2019, 15:14   

wszystko fajnie działa. tylko przy 10tys troche muli ;)

a powiedz jeszcze jak dołożyć źródło? tzn. jeżeli źródło jest inne a reszta sie duplikuje tak ja wyżej a jeżeli źródło jest takie same robi TAK tylko NIE. wrzuce do pliku

dupliakat 3 dni.xlsm
Pobierz Plik ściągnięto 17 raz(y) 10.57 KB

ID posta: 364128 Skopiuj do schowka
 
 
minijack 
Exceloholic


Pomógł: 65 razy
Posty: 180
Wysłany: 14-03-2019, 10:24   

formuły w na takiej ilości mogą mulić :-)
można to zrobić w VBA i odpalać sprawdzenie w razie potrzeby
wtedy nie będzie przy każdej zmianie wartości przeliczać tych formuł
w arkuszu1 wersja z formułami
w arkuszu 2 wersja VBA

Kopia dupliakat 3 dni.xlsm
Pobierz Plik ściągnięto 18 raz(y) 22.44 KB

ID posta: 364204 Skopiuj do schowka
 
 
kuma 
Excel Expert


Pomógł: 1214 razy
Posty: 3598
Wysłany: 14-03-2019, 11:25   

Spróbuj tak.
Kod:
Sub Duplikaty_3dni_kuma()
    Dim i As Long, ii As Integer
    Dim d As Object
    Dim a()
    Dim ms As String, ms1 As String

    Set d = CreateObject("scripting.dictionary")
    With Sheets("Arkusz1")
        a = .Range("A2:D" & .Cells(Rows.Count, "C").End(3).Row).Value
        For i = 1 To UBound(a)
            a(i, 1) = "NIE"
            ms = a(i, 3) & "_" & a(i, 4)
            If Len(ms) > 0 Then d(ms) = Empty
        Next
        For i = 1 To UBound(a)
            ms1 = a(i, 3) & "_" & a(i, 4)
            For ii = -3 To 3
                ms = a(i, 3) + ii & "_" & a(i, 4)
                If d.exists(ms) And ms <> ms1 Then
                    a(i, 1) = "TAK"
                    Exit For
                End If
            Next
        Next
        .[A2].Resize(UBound(a), 1) = a
    End With
    Set d = Nothing
End Sub
Pozdrawiam.
ID posta: 364207 Skopiuj do schowka
 
 
przemomakro 
Fan Excela


Posty: 63
Wysłany: 14-03-2019, 11:42   

Kod:
Sub Duplikaty_3dni_kuma()
    Dim i As Long, ii As Integer
    Dim d As Object
    Dim a()
    Dim ms As String, ms1 As String

    Set d = CreateObject("scripting.dictionary")
    With Sheets("Arkusz1")
        a = .Range("A2:D" & .Cells(Rows.Count, "C").End(3).Row).Value
        For i = 1 To UBound(a)
            a(i, 1) = "NIE"
            ms = a(i, 3) & "_" & a(i, 4)
            If Len(ms) > 0 Then d(ms) = Empty
        Next
        For i = 1 To UBound(a)
            ms1 = a(i, 3) & "_" & a(i, 4)
            For ii = -3 To 3
                ms = a(i, 3) + ii & "_" & a(i, 4)
                If d.exists(ms) And ms <> ms1 Then
                    a(i, 1) = "TAK"
                    Exit For
                End If
            Next
        Next
        .[A2].Resize(UBound(a), 1) = a
    End With
    Set d = Nothing
End Sub


robi mi TAK jeżeli daty są różne , kwota jest taka sama tekst1 i tekst2 taki sam, a powinno zrobić NIE bo źródło jest takie same może dlatego że źródło jest "TEKST" a nie liczba

przemomakro w dniu: 14-03-2019, 11:44 napisał/a:
minijack napisał/a:
formuły w na takiej ilości mogą mulić :-)
można to zrobić w VBA i odpalać sprawdzenie w razie potrzeby
wtedy nie będzie przy każdej zmianie wartości przeliczać tych formuł
w arkuszu1 wersja z formułami
w arkuszu 2 wersja VBA


błąd mi wyskakuje przy Msgbox
Compile error:
Fucntion call on left-hand side of assignment must return Varian or Object

funkcja działa dobrze

edycja Zbiniek:
Proszę korzystać z opcji edytowania wypowiedzi – przycisk „edytuj”. Opcja jest dostępna bodajże przez 30 minut od momentu wysłania wypowiedzi.
ID posta: 364209 Skopiuj do schowka
 
 
minijack 
Exceloholic


Pomógł: 65 razy
Posty: 180
Wysłany: 14-03-2019, 13:41   

przepraszam nie sprawdziłem
jest tam niepotrzebny znak =

Kopia dupliakat 3 dni.xlsm
Pobierz Plik ściągnięto 14 raz(y) 24.11 KB

ID posta: 364220 Skopiuj do schowka
 
 
kuma 
Excel Expert


Pomógł: 1214 razy
Posty: 3598
Wysłany: 14-03-2019, 15:01   

Takie warunki miały być na początku
przemomakro napisał/a:
Makro ma szukać po dacie i kwocie duplikatów z dwóch różnych źródeł oraz jeżeli przesunięcie daty występuje do 3 dni.
przemomakro, dla mnie z cytowanego opisu, wynika, że jeżeli daty są takie same lub mieszczą się w 3 dniach, kwota jest taka sama oraz jest różne źródło (kol.B) to jest duplikat!
Co ma do rzeczy Tekst1 i Tekst2?
Pozdrawiam.
ID posta: 364225 Skopiuj do schowka
 
 
przemomakro 
Fan Excela


Posty: 63
Wysłany: 14-03-2019, 21:27   

Chodzi o to, że musi brać wszystko pod uwagę, bo duplikatem w moim przypadku będzie ten rekord, który jest z dwóch różnych źródeł. Jeżeli są z tego samego choć jest duplikatem nie może być duplikatem :)

Trochę to dziwne ale cóż

minijack wyszło dobrze na funkcji i makrze (chodź ma dłuższe)

edycja Zbiniek:
1. Nie cytuj całej wypowiedzi znajdującej się bezpośrednio powyżej – w takim przypadku wiadomo, że się do niej odnosisz. Cytowanie stosuj tylko wtedy, gdy nawiązujesz do wypowiedzi o kilka postów wcześniej lub gdy komentujesz tylko jakiś fragment ostatniej wypowiedzi. W obu przypadkach zacytuj tylko fragment, do którego się odnosisz.
2. Zainwestuj w klawiaturę - mam nadzieję, że to tylko ALT Ci się zacina.
Tekst bez polskich "ogonków" jest mniej czytelny i często bezużyteczny dla osób korzystających z http://www.excelforum.pl/search.htm (Korzystasz?)
POPRAWIŁEM ZA CIEBIE.
ID posta: 364255 Skopiuj do schowka
 
 
przemomakro 
Fan Excela


Posty: 63
Wysłany: 15-03-2019, 08:04   

minijack napisał/a:
przepraszam nie sprawdziłem
jest tam niepotrzebny znak =


makro nie działa :(
ID posta: 364268 Skopiuj do schowka
 
 
minijack 
Exceloholic


Pomógł: 65 razy
Posty: 180
Wysłany: 15-03-2019, 11:04   

spróbuj teraz

Kopia dupliakat 3 dni.xlsm
Pobierz Plik ściągnięto 13 raz(y) 24.12 KB

ID posta: 364292 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe