• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü VBA ile Hücre İçindeki Karmaşık Metinlerden Düzenli İfadeler (RegEx) ve Global Çift Döngü Kullanarak TC Kimlik / IBAN Ayrıştırma Performansı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

cemreokan75

Yeni Üye
Aktivite

0%

Katılım
31 Ağu 2026
Mesajlar
2
Aldığı beğeni
0
Konu Sahibi
Windows 10 Google Chrome 152
Herkese iyi forumlar.
Şirketteki hukuk ve finans departmanından gelen bir veri setinde, tek bir hücrenin içerisinde serbest metin olarak yazılmış açıklamalar var (Örn: "Ahmet Yılmaz, 12345678901 TC numaralı şahıs TR56000... nolu hesaba ödeme yaptı"). Bu hücrelerin içinden sadece TC Kimlik Numaralarını (11 haneli) ve IBAN bilgilerini (TR ile başlayan 26 karakter) ayıklayıp yan sütunlara yazdırmam gerekiyor.Klasik InStr, Left, Right veya Mid fonksiyonlarıyla metin kalıpları sürekli değiştiği için başarılı olamadım. VBScript.RegExp (Regular Expressions) kütüphanesini RegExp.Global = True ve Execute metoduyla döngüye soktuğumda, 80.000 satırlık veride inanılmaz bir yavaşlama ve bazen Excel'in çökme sorununu yaşıyorum.Büyük veride RegEx nesnesini hafızada şişirmeden, en hızlı şekilde eşleşen tüm dinamik kalıpları (Pattern) tek seferde array'e alıp alt alta yazdırmanın en optimize VBA mimarisi nasıl olmalıdır? Örnek bir örnek şablon kod paylaşabilir misiniz?
 
Windows 10 Google Chrome 152
Merhaba,

Aşağıdaki KTF (Kullanıcı Tanımlı Fonksiyon) işinize yarayabilir...

B2 ; =K_SPLIT(A2;"TC")
C2 ; =K_SPLIT(A2;"IBAN")

HTML:
C++:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konu Sahibi
Windows 10 Google Chrome 152
Korhan AYHAN Hocam çok teşekkür ederim, hızır gibi yetiştiniz.
Yazdığınız K_SPLIT fonksiyonunu test ettim; hücre bazında metinleri tam nokta atışı ayırıyor, mantık harika çalışıyor.
Ancak soruda bahsettiğim 80.000 satırlık veri setine bu formülleri uygulayıp aşağı doğru çektiğimde, hesaplama süresi (Calculation) hücre hücre çalıştığı için bilgisayarı biraz zorluyor ve bekletiyor.
Acaba bu fonksiyonel mantığı, tüm sütunu tek seferde hafızaya (Variant Array) alıp arka planda saniyeler içinde sütunlara yazdıracak bir Sub Makro döngüsüne çevirmemiz mümkün müdür? Hız optimizasyonunu tam yakalayabilmek adına değerli fikrinizi merak ediyorum.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst