Bağlantıları güncellemek veya formülleri hesaplamak çok uzun süren devasa Excel tabloları


4

AY'ya kadar (boyut 12 MB) 5000 satır ve sütun içeren bir Excel tablosu var. İlk altı sütun dışında, kalan kısım ya vlookupsda başka formüller içerir. Tüm görünümler ayrı bir Excel çalışma sayfasındadır. Bağlantıları manuel olarak güncellemek ve formülleri hesaplamak için Excel ayarını değiştirdim. Şimdi her bağlantıyı güncellemeye çalıştığımda, Excel kilitleniyor ya da 15 dakika sürüyor.

Şu anda, çalışma sayfasını dört örneğe ayırmaya çalışıyorum; dört farklı Excel sayfasını sırayla güncelleyeceğim. Ancak, dizin sütunlarının bir sonraki aşamaya manuel olarak kopyalanmasını gerektirir. Bağlantıların güncellenmesi 3-4 saat sürer. Dün şöyle hata mesajları almaya başladım:

Excel işlemi tamamlamak için yeterli kaynak yok.

Seçme şansım kalmadı, ancak tüm operasyonu manuel müdahale gerektiren dört küçük adımda bölmek zorunda kaldım.

INDEX'e baktım. Benim davamda pek geçerli değil. Nasıl çabuk halledebileceğim hakkında bir fikrin var mı?


3
Bu, bir elektronik tablo yerine bir veritabanı uygulaması (ms-access veya other) için iyi bir aday gibi görünüyor. Excel gerçekten büyük miktarlarda veri işlemek için yapılmamıştı.
Stewbob

Yanıtlar:


4

50 sütuna 5000 satır, büyük bir çalışma sayfası değil. 12MB, oldukça küçük ve orta boyutta bir dosya boyutudur ve bir veritabanına veya benzer bir şeye yeniden çalışmak kadar sert bir şey yapmanız gerekmez.

Açıklamanızdan, sorun bağlantılar gibi görünüyor. Başvurulan çalışma kitaplarının büyüklüğü nedir? Bağlantı kurduğunuzda yeniden hesaplanıyorlar mı? Açılış öncesi fikrini seviyorum: o zaman ne olduğunu görebilirsiniz.

Bellek kullanımınız (Görev Yöneticisine bakın) mevcut fiziksel RAM'inizi aşıyor mu? Hafızanın diske aktarılması gerektiğinde, işler çok yavaşlamaya başlar.

Açma ve sıralama yardımının ötesinde, arama yapmayan formüllere bir göz atmanızı öneririm: herhangi biri dizi formüllerine dönüştürülebilir ve her satırda bir kez yerine hesaplama başına bir defa çağrılabilir mi?

VLOOKUP meselesinde: kullanmayı denediniz INDEX(value_range, MATCH(lookup_key, key_range))mi? Daha hızlı olduğu durumlar var.

VBA'nız olup olmadığını söylemezsiniz. Bunu yaparsanız, VBA işlevinin kaç kez çağrıldığına ve ne kadar zaman harcadıklarına bakın. Excel nesnelerine çok fazla başvuru yapan VBA kodu pahalı olabilir.


4

Dosyanızda koşullu olması gerekmeyen ve aynı kalabilecek herhangi bir veri varsa (örneğin, bir kişinin doğum tarihi), ardından verileri almak için ilk görüşten sonra, tüm sütunu 'Kopyala' ve 'Özel Yapıştır - Değerler' / row, hesaplamayı her çalıştırdığınızda dosyanın bu hücreleri yeniden hesaplamasını durdurmak için. Fark ettim ki başka bir vlookup kaynaklı veri üzerinde vlookup çalıştırmak biraz zaman alıyor.


2

Ne yazık ki, Excel hesap tablolarında olduğu gibi ... VBA tam olarak en hızlı seçenek değil.

Verileri bir Microsoft Access veritabanına geçirmeyi düşünebilirsiniz.


2

Bağlantıları içeren çalışma kitabını açmadan önce, bağladığınız çalışma kitaplarını açın.

Ve verileri sıralayın, ardından VLOOKUP'taki sıralama seçeneğini kullanın (son parametre için True kullanın).


2

Bunu çözmek için Office 10 kullanıyorum.

  1. Büyük dosyamı açtım, 1997-2003 Excel çalışma kitabı bir dosya türü olarak yeniden kaydettim.
    • Bana bir şey soran bir mesaj yolladı (hatırlayamıyorum).
  2. Tamam'ı tıklattım ve yeni bir Excel 1997-2003 dosyası vardı.
    • Dosya 25 MB'den 1 MB'ın altına gitti.
  3. Sonra bu sefer eski 1997-2003 dosyasından yeni bir çalışma kitabına yeniden kaydettim ve daha da küçüldü.

Birden çok çalışma kitabında bu sorunu yaşadım ve bu her zaman benim için çözdü.


1

Belki daha hızlı bir bilgisayar edinin ya da RAM'inizi yükseltin


bu sadece şu ana kadar, ne yazık ki devam ediyor: Excel birden fazla CPU veya CPU çekirdeğinden faydalanmayacak :(
warren

0

Mike Woodhouse ile aynı fikirdeyim. Bu çok fazla veri değil.

Bir test olarak, her iki e-tablodaki verilerle yeni bir e-tablo yapacağım ve 1 yeni e-tablo olarak birleştirildim. Bu, veriler iki ayrı elektronik tabloda olduğundan sorun olup olmadığını size söyleyecektir. Bu bir sorun olmamalı, ancak iyi bir test olacaktır.


0

Sizin durumunuz için herhangi bir yardım olup olmadığını bilmiyorum, çünkü veritabanı bağlantılarını içeriyor, ancak aynı sorunu yaşadım, ancak veritabanı sorgusu çalıştıran bir elektronik tabloyu güncellemenin çok uzun sürmesi dışında.

15 faktöre göre işleri hızlandırmamın ilk yolu, sorguyu Excel'in filtrelemesi yerine gerekli verileri seçmesiydi. İkinci olarak, DB bağlantımın Bağlantı Özellikleri penceresinde "Çalışma kitabını kaydetmeden önce verileri harici veri aralığından kaldır" seçeneğini işaretliyorum. Bu muazzam bir şekilde yardımcı oldu, böylece dosyam sürekli sorgulanamayacak kadar büyük miktarda veriyle boyutunda büyümiyordu.

Şimdi tüm yenilemem 30-45 yerine 2-3 saniye sürüyor.


0

Deneyimlerime göre, en yavaş işlem olarak harici dosyalara bağlantı buldum. Bunun Excel'in hesaplama modelini her seferinde yalnızca bir tane olmak üzere bir dizi farklı bağlı dosya üzerinden tekrar güncellemesi gerektiğinden kaynaklandığını gördüm.

İlk yazınızdan, başlangıçta hesaplamayı yavaşlatan şeyin bu olduğundan şüpheleniyorum. Tüm verileri aynı çalışma dosyasına taşımayı ve bu dosyaya dahil edilecek tüm bağlantıları güncellemeyi denediniz mi?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.