Kişiye Ait En Son Veriye Ulaşma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

mrtsn0153

Kullanıcı
Katkı: %0
Excel Versiyonu
Excel 2007
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba, iyi çalışmalar.

Ekte gönderdiğim tabloda kişiler ve sendikalar mevcut. "Sendika Kayıt Sayfası"na Userform ile kayıt yaptırdığımda Takip sayfasında ilgili kişinin karşısında son işleme ait bilgi gelmektedir. Ancak örnek tablo da kişi sayısı az olduğu için kayıt yaparken ve veriyi alırken hızlı işlem yapmakta tablonun orjinali 1800 kişiden oluşmaktadır. Kişi sayısı fazlalığı sebebiyle userform ile kayıt yaparken işlem uzun sürmektedir. Kişiye ait son veriyi getirirken Takip sayfasında kullandığım "ara" formülünün alternatifi var mı?

Ayrıca; "Sendika Kayıt Sayfası"na yapılan kayıtlarda işlem tarihine göre belirlediğim tarih aralığındaki kişilerin listesini "Listele" sayfasına aktarabileceğim bir makro var mı?

Konular hakkında desteklerinizi talep etmekteyim. Teşekkürler.
 

Ekli dosyalar

Çözüm
Merhaba, Takip sayfasındaki F3 hücresine aşağıdaki formül yazılıp alt satırlara kopyalanabilir:

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (2 satır). Giriş Yap

G sütununda dönüş aralığı $H$2:$H$4988, H sütununda ise $G$2:$G$4988 olarak değiştirilmelidir.

Formül nasıl çalışır?
  1. Sicil numarası kayıt sayfasının B sütununda aranır.
  2. Son bağımsız değişkendeki -1, aramayı listenin sonundan başlatır; böylece kişinin en alttaki kaydı bulunur.
  3. Kayıt bulunduğunda arama durur, kayıt yoksa hücre boş kalır.

Tarih aralığındaki kayıtları Listele sayfasına aktarmak için aşağıdaki kod...
Merhaba, Takip sayfasındaki F3 hücresine aşağıdaki formül yazılıp alt satırlara kopyalanabilir:

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (2 satır). Giriş Yap

G sütununda dönüş aralığı $H$2:$H$4988, H sütununda ise $G$2:$G$4988 olarak değiştirilmelidir.

Formül nasıl çalışır?
  1. Sicil numarası kayıt sayfasının B sütununda aranır.
  2. Son bağımsız değişkendeki -1, aramayı listenin sonundan başlatır; böylece kişinin en alttaki kaydı bulunur.
  3. Kayıt bulunduğunda arama durur, kayıt yoksa hücre boş kalır.

Tarih aralığındaki kayıtları Listele sayfasına aktarmak için aşağıdaki kod standart bir modüle eklenebilir:

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (66 satır). Giriş Yap

Makro nasıl çalışır?
  1. Başlangıç ve bitiş tarihleri Listele sayfasının B1 ve B2 hücrelerinden okunur.
  2. A4 ve altındaki eski liste temizlenir, kayıt sayfası baştan sona taranır.
  3. Tarihi aralığa giren kayıtlar başlıklarıyla birlikte A4 hücresinden itibaren yazılır.

Notlar
  • ÇAPRAZARA işlevi Excel 2021 ve Microsoft 365 sürümlerinde bulunur.
  • 1.800 kişi ve 4.987 kayıtla yapılan denemede tam hesaplama süresi yaklaşık 2,9 saniyeden 0,16 saniyeye indi; sonuçlar mevcut formülle aynı çıktı.
  • Formül en alttaki kaydı getirir, en büyük tarihi aramaz. Kayıtlar tarih sırasıyla girilmiyorsa sonuç son girilen kayıt olur.
  • Dosyadaki son kayıtta (G21) tarih metin olarak duruyor. Makro gg.aa.yyyy biçimindeki metin tarihleri de okur, ancak UserForm kodunda tarihin CDate ile yazılması daha doğru olur.
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst