Skip to main content

AccessTr.neT


Formülle En Küçük Tarihleri Çekme

Formülle En Küçük Tarihleri Çekme

#79
(09/11/2020, 00:48)feraz yazdı: Sağol abey bu soruları sormak bu güne nasipmiş Img-grin
Rica ederim.
Iyi çalışmalar.
Cevapla
#80
ADO ile yapılmış örnek ekte
.zip ADOİKİNCİ.zip (Dosya Boyutu: 17,61 KB | İndirme Sayısı: 2)
Cevapla
#81
Bu da Dictionary ve  Array ile.
ZAMAN sütunundakiler sıralıysa sorun olmaz.
Değilse ona göre tekran ayarlanması gerek.Ali cimri hocamızın Ado yöntemide öyle heralde.

Private Sub CommandButton1_Click()
    Dim dic As Object
    Dim son As Long, i As Long, aranan, aranan2, aranan3
    Dim say As Long, arr()
    say = 1
    With ThisWorkbook.Sheets("Sayfa1")
        .Range("H2:K" & Rows.Count).ClearContents
        son = .Range("A" & Rows.Count).End(3).Row
       
        ReDim arr(1 To son, 1 To 4)
        If son < 2 Then Exit Sub
        Set dic = CreateObject("Scripting.Dictionary")
       
        For i = 2 To son
            aranan = .Cells(i, 1).Value
            aranan2 = .Cells(i, 2).Value
            aranan3 = .Cells(i, 4).Value
            If .Cells(i, 3).Value = "AÇIK" Then
                If Not dic.Exists(aranan & "||" & aranan2) Then
                    dic.Add aranan & "||" & aranan2, aranan3
                    arr(say, 1) = aranan
                    arr(say, 2) = aranan2
                    arr(say, 3) = aranan3
                    arr(say, 4) = Empty
                    say = say + 1
                End If
            End If
        Next
        '----------------------------------------------------------
        Set dic = CreateObject("Scripting.Dictionary")
        say = 1
        For i = 2 To son
            aranan = .Cells(i, 1).Value
            aranan2 = .Cells(i, 2).Value
            aranan3 = .Cells(i, 4).Value
            If .Cells(i, 3).Value = "KAPALI" Then
                If Not dic.Exists(aranan & "||" & aranan2) Then
                    dic.Add aranan & "||" & aranan2, aranan3
                    arr(say, 4) = aranan3
                    say = say + 1
                End If
            End If
        Next
        If dic.Count > 0 Then .Range("H2").Resize(dic.Count, 4).Value = arr
    End With
    MsgBox "Bitti"
    Set dic = Nothing: Erase arr
    aranan = Empty: aranan2 = Empty: aranan3 = Empty

End Sub
.rar İKİNCİ ÖRNEK 2 Dictionary ve Array.rar (Dosya Boyutu: 22,5 KB | İndirme Sayısı: 0)
Cevapla
#82
Burada tarih alani sorunlu ama normal tarih olsaydi excelde de ,accessteki gruplama sorgulari gibi pivot yapilamaz mi?

Gruplama sorgularinda da en küçük, büyük gibi degerler seçilebiliyor.
Cevapla
#83
(09/11/2020, 12:50)berduş yazdı: Burada tarih alani sorunlu ama normal tarih olsaydi excelde de ,accessteki gruplama sorgulari gibi pivot yapilamaz mi?

Gruplama sorgularinda da en küçük, büyük gibi degerler seçilebiliyor.
Sorguda heralde tarih ve zaman gibi algılar heralde bu dosyadada abey emin değilim.
Denemek için tarihleri başka sütuna koptaladım biyükten küçüğe sırala dedim sıraladı.Bu mantığa görede sıralar Sql ile.Laki gruplama için zaten Zaman sütun benzersiz.
Ali cimri hocamızda Ado ile pivot yaptırmış.
Cevapla
#84
Sayın @feraz siz sıralı konusunu yazınca dikkatimi çekti gerçekten öyle imiş. Yeni eklediğim dosyada sıra karışık da olsa sorun çıkmaz.
.zip ADOİKİNCİ.zip (Dosya Boyutu: 17,67 KB | İndirme Sayısı: 1)
Son Düzenleme: 09/11/2020, 13:15, Düzenleyen: alicimri.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task