Eğer fonksiyonu ile veri getirmek mümkün mü?

excelwebtruser

Altın Üye
Katılım
29 Haziran 2020
Mesajlar
5
Excel Vers. ve Dili
2010 Office
Merhabalar ÖZET.XLS tablomda A sütununda isimler var B sütununa ise başka bir AKTIF.XLS (farklı çalışma sayfasındaki )
ÖZET.XLS de a sütununda bulunan değeri AKTIF.XLS deki tüm sayfada (10000 satır dan fazla veri var) arayıp e sütunundaki değeri ÖZET.XLS B sütununa getirmek istiyorum.


219453
 

çıtır

Altın Üye
Altın Üye
Katılım
6 Mart 2005
Mesajlar
6,163
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Resim yerine örnek dosya eklerseniz daha doğru bilgiye ulaşabilirsiniz.Düşey ara fonksiyonu ile deneyiniz.
 

excelwebtruser

Altın Üye
Katılım
29 Haziran 2020
Mesajlar
5
Excel Vers. ve Dili
2010 Office
Öncelikle gecenin bu saatinde mesajınız için çok teşekkür ederim. Bu yardımsever tavrınız için çok mutlu oldum. ekte özet ve aktif tablosunu ekledim. tam olarak istediğim şu
Aktif tablosunda birden aynı isim birden fazla kez geçebiliyor. Aynı personel 3,4,5......x (11000 'e kadar) kez iç görev, 3,4,5,.....x (11000' e kadar) iç ve dış görev olarak tabloya yazılabilir.

Özet kısmına burada geçen her personelin (tekrarlarını almadan) sadece isim ve soy isimlerini (bir personel özet tablosunda bir kez geçecek. Aktif kısmında ahmet mehmet ali kağan 4 personel var ama aktif tablosunda birden çok kez tekrar etmiş

İlk istediğim Özet tablosunda a sütununda ad soyad bölümüne aktif kısmındaki 1 yada daha çok geçen her personeli 1 kez yazsın (yani aktif tablosuna basınca normalde 4 personel var bu dört personelin adını yazmasını istiyorum. Excel bunu tabloya bakacak ahmet ismi 4 kez geçmiş aktif excel de özet exel e sadece 1 kere ahmet yazsın, mehmet 5 kez geçmiş yine 1 tane yazsın ali 2 kere geçmiş 1 kere yazsın gibi)

İkinci istediğim özet kısmına aldığım gerçek çalışanlarım özet kısmına geldiği için bunların personel grubunuda alayım özet kısmında Grubu sütununa (b2) ye yazdırayım. Örneğin aktif tablosunda ahmet insan kaynakları , bunu özet tablosunda ahmet in karşısına getirsin.

Düşey arada yapabilirim. ama bunun için özet tablosunda aradığım değerin yani ad soyadın arayacağım aktif tablosunda ilk sırada olması lazım ama ilk sütunda id 2.sütunda tc var ben bu sütunlarla oynamak istemiyorum, çünkü veriler otomatik geliyor bu tablolara.

Umarım anlatabilmişimdir. Uzun yazdım kusura bakmayın.
 

Ekli dosyalar

çıtır

Altın Üye
Altın Üye
Katılım
6 Mart 2005
Mesajlar
6,163
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Bir butona atıyınız ve ****(Yıldız) olan alanlara dosyanızın tam yolunu yazınız.
Kod:
Sub Özetkayıt()
Dim s1 As Worksheet: Dim sd As Object
Dim a As Variant: Dim liste As Variant
Dim i As Long: Dim b()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, 1).End(xlUp).Row
Set sd = CreateObject("scripting.dictionary")
a = s1.Range("A1:E" & son)
ReDim b(1 To UBound(a), 1 To 3)
For i = 1 To UBound(a)
If a(i, 1) <> "" Then
liste = a(i, 3)

    If Not sd.Exists(liste) Then
        sd.Add liste, Nothing
        
        b(sd.Count, 1) = a(i, 2)
        b(sd.Count, 2) = a(i, 3)
        b(sd.Count, 3) = a(i, 5)
End If
        End If
Next i
Workbooks.Open ("C:\***\***\***\ÖZET.xlsx")
Sheets("Sayfa1").Select
Range("a1").Select
Range("A1").CurrentRegion.ClearContents
Range("A1").Resize(sd.Count, 3) = b
 
End Sub
 

excelwebtruser

Altın Üye
Katılım
29 Haziran 2020
Mesajlar
5
Excel Vers. ve Dili
2010 Office
Selamlar çok teşekkürler Butonu özet tablo dosyasına herhangi bir yere koydum, c: sizin verdiğiniz (command buton) ancak komutu çalıştırdığında hiç bir işlem yapmadı, hata da vermedi boş vbasic komut sayfasını açtı. Yeni bir dosya ekliyorum aslında yapmak istediğimi basit bir anlatımla tekrar dile getirmek istiyorum.

Ekte iki tane dosya ekliyorum. ISGKATIPAKTIF.xlsx bu dosya internetten geliyor, ben sadece içindeki sekme adını ISGKATIPAKTIF diye kendim değiştiriyorum. çünkü sekme adı her indiridğimde farklı bir isimle geliyor Dkos.......30062020 vs gibi ben bu hataya neden olabilir diye kendim elle ISGKATIPAKTIF yazıyorum sekme adını.

Bu dosyada c sütununda ilgili çalışanın adı soyadı bulunuyor ve birden fazla kez tekrar edebiliyor, Ben bu dosyada bulunan tekrar eden ad soyadların benzersiz olanlarını Özet Tablo.xlsx te A sütununda İSG PROF satırının altına tek tek dökmek istiyorum.

Sonra bu benzersiz kayıtların yanında türü kısmına yine ISGKATIPAKTIF.xlsx dosyasında e Sütununda bulunan personel kategori adını çekmek istiyorum.

Yardımlarınız için teşekkür ederim , makro yerine fonksiyonla bu iş çözülemez mi acaba makroları kullanmayıda bilmiyorum. Belki o sebeple yapamamış olabilirim.
 

Ekli dosyalar

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
2,176
Excel Vers. ve Dili
2010 - Türkçe 64 Bit
Merhaba,
İstedikleriniz ekte. Makro ISGKATIPAKTIF adlı dosyada. Makroda Özet Tablo.xlsx adlı dosyanın bulunduğu yeri mutlaka düzenleyiniz.
İyi çalışmalar
 

Ekli dosyalar

excelwebtruser

Altın Üye
Katılım
29 Haziran 2020
Mesajlar
5
Excel Vers. ve Dili
2010 Office
Tevfik Bey çok teşekkür ederim, şimdi çalışıyor, ben bir önceki arkadaşın verdiği kodda yanlışlık yapmışım, sizinkisinde tc leride getirmesini sağlamışsınız. acaba bunu hangi satırda gerçekleştirdiniz?

Kod:
Sub Özetkayıt()

Dim s1 As Worksheet: Dim sd As Object

Dim a As Variant: Dim liste As Variant

Dim i As Long: Dim b()

Set s1 = Sheets("ISGKATIPAKTIF")

son = s1.Cells(Rows.Count, 1).End(xlUp).Row

Set sd = CreateObject("scripting.dictionary")

a = s1.Range("A1:E" & son)

ReDim b(1 To UBound(a), 1 To 3)

For i = 1 To UBound(a)

If a(i, 1) <> "" Then

liste = a(i, 3)



    If Not sd.Exists(liste) Then

        sd.Add liste, Nothing

      

        b(sd.Count, 1) = a(i, 2)

        b(sd.Count, 2) = a(i, 3)

        b(sd.Count, 3) = a(i, 5)

End If

        End If

Next i

Workbooks.Open ("C:\HDATA\0001-PLANLAMA\HALİM\Özet Tablo.xlsx")

Sheets("Sayfa1").Select

Range("a1").Select

Columns("A:C").ClearContents

Range("A1").Resize(sd.Count, 3) = b



End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
2,176
Excel Vers. ve Dili
2010 - Türkçe 64 Bit
Merhaba,
Sorunuzu yanlış anlamadı isem
Kod:
        b(sd.Count, 1) = a(i, 2)
        b(sd.Count, 2) = a(i, 3)
        b(sd.Count, 3) = a(i, 5)
En sağdaki numaralar kaçıncı sütundan alındığını gösteriyor.
Yardıma ihtiyacınız olursa haber verin, yardım ederim.
İyi çalışmalar
 

excelwebtruser

Altın Üye
Katılım
29 Haziran 2020
Mesajlar
5
Excel Vers. ve Dili
2010 Office
Merhaba,
Sorunuzu yanlış anlamadı isem
Kod:
        b(sd.Count, 1) = a(i, 2)
        b(sd.Count, 2) = a(i, 3)
        b(sd.Count, 3) = a(i, 5)
En sağdaki numaralar kaçıncı sütundan alındığını gösteriyor.
Yardıma ihtiyacınız olursa haber verin, yardım ederim.
İyi çalışmalar
çok teşekkür ederim, burada i harfi neyi anlatıyor? birde b harfi (sd.count sayım için sanırım. bu kod bloğunu açıklayabilirseniz, başka değerleride aldırmaya çalışacağım. o sebeple soruyorum.

Evet yardım öneriniz için çok teşekkür ederim, bir konuda daha yardım talebim olacak ama öncelikle ne yapmak istediğimi anlatmam lazım o biraz uzun sürüyor inşallah bu akşamda o sorumu hazırlarım. Bu kez makro kısmına açacağım, fonksiyonlar sanırım belli bir yere kadar gidiyor.
 
Üst