B

Çözüldü Sayfalar Arası Veri Eşleştirme

Believing

Yıllık Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Değerli Formdaş Arkadaşlar,

Ekteki örnek çalışmanın "PARAMETRE" sayfasındaki verileri, "DATABASE" ve "COMMENTS" sayfalarında aratarak eşleşen oda numaraların karşısına ilgili kişi isimleri yazdırmak istiyorum. Bu şekilde her hafta aşağı yukarı 40 bin satırlık veri eşleştirmesi yapmam gerekiyor. Bu eylemi gerçekleştirmek için nasıl bir yöntem ve kod kullanmalıyım?

Saygılarımla,
 

Ekli dosyalar

Çözüm
Sayın Okutkan, Cakarem, Admin, 52779

Öznitelikli çalışmaları paylaşmamak adına oluşturduğum örnek çalışmanın PARAMETRE sayfasındaki tanımlamalarda hata yapmışım.
Bunun için hepinizde ayrı ayrı özür dilerim.
Sayın Cakarem'in hazırladığı kodu, oluşan yeni durum için revize edemedim.
Bir kez daha örnek çalışma için yardımlarınızı rica ediyorum.

Saygılarımla,
Parametre sayfasında Start ve end aralığı mantık kısmı açısından yanlış olmuş. Yada ben öyle düşündüğümden o şekilde kodladım.
Start değeri : 1501
End Değer : 1450

bitiş değeri başlama değerinden küçük olmamalı yoksa aralığa hiç girmemektedir. Aynı şekilde parametre sayfasında olmayan değer varsa hata verecektir. Misal 2201 - 2225 aralığı tanımlanmış lakin database kısmında...
İstediğiniz çıktıya ait bir kaç örnek yazabilir misiniz?
Mesela HALDUN HALDUN için DATABASE sayfasında 3 kayıt var, PARAMETRE sayfasında ise sadece 1 kayıt var...
Yani tam anlayamadım ben...
 
İstediğiniz çıktıya ait bir kaç örnek yazabilir misiniz?
Mesela HALDUN HALDUN için DATABASE sayfasında 3 kayıt var, PARAMETRE sayfasında ise sadece 1 kayıt var...
Yani tam anlayamadım ben...
İyi akşamlar Bahadır Bey,

PARAMETRE sayfasındaki HALDUN HALDUN için belirlenen oda numarası ve aralığındaki numaralar, DATABASE ve COMMENT sayfalarındaki "N" sütununlarındaki oda numaraları ile eşleştirilerek, BU SAYFALARIN "P" sütunlarına isimleri yazdırılacaktır. DATABASE ve COMMENT sayfalarındaki isimler örnek olması için manuel yazılmıştır.
 
Bu işlem için ADO ile bir şeyler yapılabilir mi, bir bakmam gerekecek.
Ama veri büyüklüğü göz önüne alındığında, dizi yöntemi ile sanırım daha hızlı yol kat edilir ama ben çok hakim değilim :(
@Ömer BARAN hocam ya da @cakarem kardeşim müsaitse bize de bir yol gösterici çözüm sunarlar umarım.
 
1664316382731.webp


Bendeki sonuç Emre :)
 
Ekte ki dosyayı deneyiniz. 40 bin satırlık veride kaç saniye dönecek bende merak ettim doğrusu?

Sayın Cakarem,
Ellerinize ve emeğinize sağlık, örnek dosyada kodlar işlevini sizin örnekteki sürede tamamladı.
Fakat DATABASE ve COMMENT sayfadaki verileri 42.242 satıra çıkararak denediğimde aşağıdaki hataları alıyorum.
Bu hataları aldığım örnek çalışma ekteki gibidir.

hata-1.webp
hata-2.webp
 

Ekli dosyalar

VB Penceresinde iken, "Tools -> References" tıklayıp, ekrana gelen pencerede MISSING olarak işaretlenmiş bir seçenek varsa, tikini kaldırın bakalım.
Sorunun çözülmesi gerek.
 
@Believing,

Function sonSatir(sht As String, col As String) As integer

Module1 de bulunan yukarıdaki satırın sonundaki 'integer' yazanı 'Long' olarak değiştirin.

Sayın Okutkan, Cakarem, Admin, 52779

Öznitelikli çalışmaları paylaşmamak adına oluşturduğum örnek çalışmanın PARAMETRE sayfasındaki tanımlamalarda hata yapmışım.
Bunun için hepinizde ayrı ayrı özür dilerim.
Sayın Cakarem'in hazırladığı kodu, oluşan yeni durum için revize edemedim.
Bir kez daha örnek çalışma için yardımlarınızı rica ediyorum.

Saygılarımla,
 

Ekli dosyalar

Sayın Okutkan, Cakarem, Admin, 52779

Öznitelikli çalışmaları paylaşmamak adına oluşturduğum örnek çalışmanın PARAMETRE sayfasındaki tanımlamalarda hata yapmışım.
Bunun için hepinizde ayrı ayrı özür dilerim.
Sayın Cakarem'in hazırladığı kodu, oluşan yeni durum için revize edemedim.
Bir kez daha örnek çalışma için yardımlarınızı rica ediyorum.

Saygılarımla,
Parametre sayfasında Start ve end aralığı mantık kısmı açısından yanlış olmuş. Yada ben öyle düşündüğümden o şekilde kodladım.
Start değeri : 1501
End Değer : 1450

bitiş değeri başlama değerinden küçük olmamalı yoksa aralığa hiç girmemektedir. Aynı şekilde parametre sayfasında olmayan değer varsa hata verecektir. Misal 2201 - 2225 aralığı tanımlanmış lakin database kısmında 2227 olan değeriniz var. Bunu bulamadığı için hata verecektir.

1664370707537.webp


Overflow içinde satır sayısını int olarak döndürdüğüm için 32 binden fazla değer alamaz. Long ile değiştirmeniz yeterli olur.
 
Çözüm
Formülle olan çözüm
(Excel365 / Excel2021)

Her iki sayfanın da P3 hücresine

Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

Not :
1 - Büyük olasılıkla, PARAMETRE sayfasındaki R11 hücresindeki End değeri Yanlış...
2 - Parametre sayfasındaki Start Numaraları Küçükten Büyüğe sıralı gidecekse, formülle direkt olarak yapılabilir.


1664371041518.webp
 
Parametre sayfasında Start ve end aralığı mantık kısmı açısından yanlış olmuş. Yada ben öyle düşündüğümden o şekilde kodladım.
Start değeri : 1501
End Değer : 1450

bitiş değeri başlama değerinden küçük olmamalı yoksa aralığa hiç girmemektedir. Aynı şekilde parametre sayfasında olmayan değer varsa hata verecektir. Misal 2201 - 2225 aralığı tanımlanmış lakin database kısmında 2227 olan değeriniz var. Bunu bulamadığı için hata verecektir.

1664370707537.webp

Overflow içinde satır sayısını int olarak döndürdüğüm için 32 binden fazla değer alamaz. Long ile değiştirmeniz yeterli olur.
Sizden bir kez daha özür dilerim.
Söyledikleriniz tamamı doğrudur.
Ne kadar çok hata yapmışım?
Ellerinize, emeğinize ve bilginize sağlık. 42242 satırlık veriyi 0,05 saniyede eşleştirmektedir.
ALLAH sizlerden, sevdiklerinizden ve sebep olanlardan razı olsun.
Hakkınızı helal ediniz lütfen.

Saygılarımla,
 
Son düzenleme:
Üst