Soru dosyadaki yavaşlığı giderme

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Arkadaşlar aylık olarak kullandığım ve içerisinde aşağıdaki foksiyonla ve diğer arama buldurma komutlarıyla çalışan bir dosyam var ancak dosya açılışta çok yavaş çalışmaktadır. Bunun hızlanması için ne gibi bir önerileriniz olabilir? Birde dosya ağda olduğunda daha da yavaştır. Otomatik güncelleştirmeleri kapatıyorum ancak bu seferde hesaplama yapmıyor


Option Explicit
Function K_TOPLA(Kriter As Variant) As Double
Dim Sayfa As Worksheet, Son As Long, Veri As Variant, X As Long

For Each Sayfa In ThisWorkbook.Worksheets
Son = Sayfa.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Veri = Sayfa.Range("E1:F" & Son).Value
For X = LBound(Veri) To UBound(Veri)
If Veri(X, 1) = Kriter Then
If IsNumeric(Veri(X, 2)) Then K_TOPLA = K_TOPLA + Veri(X, 2)
End If
Next
Next
End Function


=EĞER(E70="";"";K_TOPLA(E70))
=EĞERHATA(ARA(TEMİZ(E70);SİLME!A:A;SİLME!C:C);EĞERHATA(ARA(E70;SİLME!A:A;SİLME!C:C);""))
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
ARA formülünde kullandığınız hücre aralıklarını daraltıp deneyiniz.

Örnek;

A:A yerine A1:A1000 gibi deneyebilirsiniz.

Aralığı dosyanıza göre düzenlersiniz.
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
ARA formülünde kullandığınız hücre aralıklarını daraltıp deneyiniz.

Örnek;

A:A yerine A1:A1000 gibi deneyebilirsiniz.

Aralığı dosyanıza göre düzenlersiniz.

Onu düzelttim şimdi hocam. Her hücreye veri girildiğinde hesaplama değilde mesela veriler girildikten 10-20 saniye sonra hesaplama yapması sağlanamazmı? 1 hücreye 1 rakam dahi girsem bütün herşeyi hesaplıyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hesaplama yöntemini ELLE olarak değiştirin.

Sonuçları görmek istediğinizde F9 ya da kaydet işlemi yaparsınız.
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Hesaplama yöntemini ELLE olarak değiştirin.

Sonuçları görmek istediğinizde F9 ya da kaydet işlemi yaparsınız.

Elle hesaplama yaptımı hızlanıyor hocam ancak bu da kullanan kişilerin takip ettiği alanları yanlış bilmesine neden oluyor. Kendim kullanmadığımdan başka kişilerce kullanıldığından bu tür bir çözüm aramıştım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bir de ARA fonksiyonu yerine DÜŞEYARA fonksiyonunu kullanmayı deneyiniz.
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Bir de ARA fonksiyonu yerine DÜŞEYARA fonksiyonunu kullanmayı deneyiniz.



=EĞERHATA(ARA(TEMİZ(E70);SİLME!A1:A1000;SİLME!C1:C1000);EĞERHATA(ARA(E70;SİLME!A1:A1000;SİLME!C1:C1000);""))

Bunu düşeyara'ya çevirebilmemiz mümkünmüdür hocam? Birkaç deneme yaptım hata verdi
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
=EĞERHATA(DÜŞEYARA(TEMİZ(E70);SİLME!A1:C1000;3;0);EĞERHATA(DÜŞEYARA(E70;SİLME!A1:C1000;3;0);""))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Dosyanızda "1" isimli sayfada T36 hücresindeki formülü aşağıdaki gibi düzenlediğimde sonuç alabildim.

C++:
=EĞERHATA(DÜŞEYARA(TEMİZ(E36);SİLME!$A$1:$D$10000;2;0);EĞERHATA(DÜŞEYARA(E36;SİLME!$A$1:$D$10000;2;0);""))
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
Dosyanızda "1" isimli sayfada T36 hücresindeki formülü aşağıdaki gibi düzenlediğimde sonuç alabildim.

C++:
=EĞERHATA(DÜŞEYARA(TEMİZ(E36);SİLME!$A$1:$D$10000;2;0);EĞERHATA(DÜŞEYARA(E36;SİLME!$A$1:$D$10000;2;0);""))
şimdi oldu hocam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hız olarak avantaj sağladı mı?
 
Üst