Bảng tính Excel khổng lồ mất quá nhiều thời gian để cập nhật liên kết hoặc tính toán công thức


4

Tôi có một bảng tính Excel với 5000 hàng và cột cho đến AY (kích thước 12MB). Ngoại trừ sáu cột đầu tiên, phần còn lại chứa một vlookupshoặc các công thức khác. Tất cả các vlookups nằm trong một bảng tính Excel riêng biệt. Tôi đã thay đổi cài đặt Excel để cập nhật thủ công các liên kết và tính toán công thức. Bây giờ mỗi khi tôi cố gắng cập nhật các liên kết, Excel sẽ bị treo hoặc mất khoảng 15 phút.

Ngay bây giờ tôi đang làm việc để chia bảng tính thành bốn trường hợp; nơi tôi sẽ cập nhật bốn bảng Excel khác nhau theo trình tự. Nhưng nó yêu cầu sao chép thủ công các cột chỉ mục sang giai đoạn tiếp theo. Phải mất 3-4 giờ để cập nhật các liên kết. Hôm qua tôi bắt đầu nhận được thông báo lỗi rằng:

Excel không đủ tài nguyên để hoàn thành thao tác.

Tôi không còn lựa chọn nào khác ngoài việc chia toàn bộ hoạt động thành bốn bước nhỏ cần can thiệp thủ công.

Tôi nhìn vào INDEX. Không thực sự áp dụng cho trường hợp của tôi. Bất kỳ ý tưởng về làm thế nào tôi có thể hoàn thành nó một cách nhanh chóng?


3
Nghe có vẻ như là một ứng cử viên tốt cho một ứng dụng cơ sở dữ liệu (truy cập ms hoặc khác) chứ không phải là một bảng tính. Excel thực sự không được thực hiện để xử lý lượng dữ liệu khổng lồ.
Stewbob

Câu trả lời:


4

5000 hàng bằng 50 cột không phải là một bảng tính lớn. 12MB là kích thước tệp vừa và nhỏ hoàn toàn hợp lý và bạn không cần phải làm gì quá quyết liệt như làm lại cơ sở dữ liệu hoặc một cái gì đó tương tự.

Từ mô tả của bạn, vấn đề dường như là các liên kết. Làm thế nào lớn là các sách bài tập được tham khảo? Có phải họ đang tính toán lại khi bạn liên kết với họ? Tôi thích ý tưởng mở đầu: bạn có thể thấy những gì đang xảy ra sau đó.

Việc sử dụng bộ nhớ của bạn (nhìn vào Trình quản lý tác vụ) có vượt quá RAM vật lý khả dụng của bạn không? Một khi bộ nhớ phải được trao đổi vào đĩa, mọi thứ bắt đầu chậm lại rất nhiều.

Ngoài trợ giúp mở và sắp xếp trước, tôi khuyên bạn nên xem qua các công thức không tra cứu: có thể chuyển đổi thành công thức mảng và được gọi một lần cho mỗi phép tính thay vì một lần trên mỗi hàng không?

Trên điều VLOOKUP: bạn đã thử sử dụng INDEX(value_range, MATCH(lookup_key, key_range))chưa? Có những tình huống nhanh hơn.

Bạn không nói nếu bạn có bất kỳ VBA. Nếu bạn làm như vậy, hãy xem các hàm VBA được gọi bao nhiêu lần và chúng mất bao nhiêu thời gian. Mã VBA làm cho nhiều tham chiếu đến các đối tượng Excel có thể tốn kém.


4

Nếu có bất kỳ dữ liệu nào trong tệp của bạn không cần phải có điều kiện và sẽ giữ nguyên (ví dụ: ngày sinh của một người) thì sau lần vlookup đầu tiên của bạn để lấy dữ liệu, 'Sao chép' và 'Dán đặc biệt - Giá trị' toàn bộ cột / hàng để ngăn tệp tính lại các ô đó mỗi khi bạn chạy phép tính. Chạy một vlookup trên dữ liệu có nguồn gốc từ một vlookup khác tôi đã nhận thấy mất khá nhiều thời gian.


2

Thật không may, đó là cách nó diễn ra với bảng tính Excel ... VBA không chính xác là lựa chọn nhanh nhất ngoài kia.

Bạn có thể muốn xem xét việc di chuyển dữ liệu sang cơ sở dữ liệu Microsoft Access.


2

Mở (các) sổ làm việc bạn đang liên kết đến trước khi mở sổ làm việc có chứa các liên kết.

Và sắp xếp dữ liệu sau đó sử dụng tùy chọn đã sắp xếp trong VLOOKUP (sử dụng True cho tham số cuối cùng).


2

Tôi sử dụng Office 10 để giải quyết vấn đề này.

  1. Tôi đã mở tệp khổng lồ của mình, lưu lại dưới dạng tệp sổ làm việc Excel loại 1997-2003.
    • Nó nhắc một tin nhắn hỏi tôi điều gì đó (tôi không thể nhớ).
  2. Tôi đã bấm OK và tôi đã có một tệp Excel 1997-2003 mới.
    • Các tập tin đã đi từ 25MB đến dưới 1 MB.
  3. Sau đó, tôi chỉ lưu lại lần nữa từ tệp 1997-2003 cũ sang một sổ làm việc mới và nó thậm chí còn nhỏ hơn.

Tôi đã có vấn đề này với nhiều sách bài tập và điều này luôn giải quyết nó cho tôi.


1

Có thể có được một máy tính nhanh hơn hoặc nâng cấp RAM của bạn


điều này chỉ đi quá xa, thật đáng buồn: Excel sẽ không tận dụng nhiều hơn một CPU hoặc lõi CPU :(
warren

0

Tôi đồng ý với Mike Woodhouse. Đây không phải là nhiều dữ liệu.

Để thử nghiệm, tôi sẽ tạo một bảng tính mới với dữ liệu từ cả hai bảng tính được hợp nhất thành 1 bảng tính mới. Điều này sẽ cho bạn biết nếu sự cố đang xảy ra vì dữ liệu nằm trong hai bảng tính riêng biệt. Đây không phải là một vấn đề nhưng nó sẽ là một bài kiểm tra tốt.


0

Tôi không biết liệu đây có phải là bất kỳ trợ giúp nào cho tình huống của bạn không vì nó liên quan đến các liên kết cơ sở dữ liệu, nhưng tôi gặp vấn đề tương tự ngoại trừ việc mất quá nhiều thời gian để cập nhật bảng tính chạy truy vấn cơ sở dữ liệu.

Cách tôi tăng tốc mọi thứ lên 15 lần đầu tiên là bằng cách thực hiện truy vấn chọn dữ liệu cần thiết thay vì tạo bộ lọc Excel. Thứ hai, trong cửa sổ Thuộc tính kết nối của kết nối DB của tôi, tôi đánh dấu tùy chọn "Xóa dữ liệu khỏi phạm vi dữ liệu ngoài trước khi lưu sổ làm việc." Điều này giúp ích rất nhiều để tập tin của tôi không tăng kích thước liên tục với lượng dữ liệu lớn hơn mà tôi có thể truy vấn.

Bây giờ toàn bộ làm mới của tôi mất khoảng 2-3 giây thay vì 30-45.


0

Theo kinh nghiệm của tôi, tôi thấy việc liên kết với các tệp bên ngoài là quá trình chậm nhất trong tất cả. Tôi đã đọc rằng điều này là do Excel phải cập nhật lại mô hình tính toán mỗi lần thông qua một số tệp được liên kết khác nhau, thay vì chỉ một.

Tôi nghi ngờ từ bài viết đầu tiên của bạn rằng đó là những gì đang làm chậm quá trình tính toán để bắt đầu. Bạn đã thử di chuyển tất cả dữ liệu vào cùng một tệp làm việc và cập nhật tất cả các liên kết thành nội bộ của tệp đó chưa?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.