Biden çok sayfadan Veri Alma hakkında

Katılım
18 Tem 2018
Mesajlar
216
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba

İCMAL sayfasında iş emri sütununa (Sayfa1,Sayfa2,Sayfa3,Sayfa4,Sayfa5,Sayfa6) sayfalarındaki iş emirlerini yenilenen değerleri almadan her bir iş emrinden bir tane olmak sartı ile İCMAL sayfasına gelmesini ve Personel Sayısı sütunun altına bu sayfalardaki iş emirlerinden toplam kaç tane olduğunu öğrenmek istiyorum. (Sayfa1,Sayfa2,Sayfa3,Sayfa4,SAayfa5,Sayfa6) yeni bir iş emri eklenince İCMAL sayfasına eklenmesi silinmesi durumunda İCMAL sayfasından silinmesi gerekiyor.
Benzersiz yada filtre formülü ile yapılabilir mi bilmiyorum ama bütün ofislerde çalışacak şekilde nasıl yapabilirim.
 

Ekli dosyalar

A3 Hücresine:
=BENZERSİZ(DÜŞEYYIĞ(Sayfa1:Sayfa6!A2:A500))

B3 Hücresine:
=DÜŞEYYIĞ(Sayfa1:Sayfa6!$A$2:$A$500)

C3 Hücresine:
=EĞERSAY($B$3#;A3)

yazarak istediğiniz sonucu alabilirsiniz. Aslında B3 hücresine =EĞERSAY(DÜŞEYYIĞ(Sayfa1:Sayfa6!$A$3:$A$500);A3) şeklinde yazıldığında da olması lazım ama sonuç gelmedi, nedenini de çözemedim.
DÜŞEYYIĞ Beta idi, umarım sizde vardır.

Bir de sayı aralıklarını, A500 gibi arttırabilmeniz gerekebilir.
 
Bir tık daha geliştirip, tek bir hücreye yazacağınız formülle istediğiniz sonucu almanızı sağladım.
Sadece eksik olan kısım, DÜŞEYYIĞ ile oluşturulan aralığın formül içinde kullanılamaması...
Bu yüzden YARDIMCI SÜTUN kullanmak zorunda kaldım.
Yardımcı Sütunsuz hali için topu @52779 , @Mehmet ve @ezelk hocalarıma atıyorum :)
 

Ekli dosyalar

Şu kodu deneyin.

VBA:
Sub IS_EMIRLERI()
shf = Array("Sayfa1", "Sayfa2", "Sayfa3", "Sayfa4", "Sayfa6")

Set brn = CreateObject("scripting.dictionary")
Set i = Sheets("İCMAL")
i.Range("A3:B" & Rows.Count).Clear
i.Activate: i.[A:A].NumberFormat = "@"
For s = 0 To UBound(shf)
    v = Sheets(shf(s)).Range("A3:A" & Sheets(shf(s)).Cells(Rows.Count, 1).End(3).Row).Value
    With brn
        .CompareMode = vbTextCompare
        For sat = 1 To UBound(v)
            krt = Format(v(sat, 1), "@")
            If Len(krt) > 1 Then
                If Not .exists(krt) Then
                    .Add krt, 1
                Else: .Item(krt) = .Item(krt) + 1
                End If
            End If
        Next
    End With
Next
i.[A3].Resize(brn.Count, 1) = Application.Transpose(brn.keys)
i.[B3].Resize(brn.Count, 1) = Application.Transpose(brn.items)
i.Range("A3:B" & Rows.Count).Sort i.[A2]
End Sub
 
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt