Tăng tốc tính toán

Liên hệ QC

trongdungs

Thành viên hoạt động
Tham gia
19/5/09
Bài viết
147
Được thích
13
Nghề nghiệp
sinh vien
files excel này mới có bộ khung, chưa có dữ liệu mà chạy như rùa rồi. Các bác giúp em cải tiến công thức để tăng tốc độ tính toán lên với.


em xin cám ơn trước.

http://www.mediafire.com/file/yj5m502dj8x2e8u/Vinhloi.zip

đã gần 50 lượt khách ghé thăm mà chưa bác nào giúp được. vậy là không có cách nào thì phải. Buồn thật.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Dùng toàn Sumproduct, lại còn link đến file khác. Không chậm mới là lạ.
Do chưa hiểu công thức nên chưa có gợi ý gì cho bạn được (không phải là quá khó, mà là gần như bị treo máy)
 
Upvote 0
Có cách chứ không fải không, đồng hương thân mến! Nhưng . . .

Đã gần 50 lượt khách ghé thăm mà chưa bác nào giúp được. vậy là không có cách nào thì phải. Buồn thật.
Mình dùng con dao mổ này :
PHP:
Option Explicit
Sub LietKeTrangTinh()
 Dim Sh As Worksheet
 
 Sheets("Main").Select:    On Error Resume Next
 For Each Sh In Worksheets
   With Sh.Cells.SpecialCells(xlCellTypeFormulas, 23)
      .Interior.ColorIndex = 34 + Sh.Index Mod 11
   End With
 Next Sh
End Sub
Thì thấy file 'VinhLoi' của bạn đa số là công thức SUMIF(); Tuy nhiên có đến 43 trang tính đầy công thức thì cũng năng thật.

Hơn nữa bạn mới cài công thức thôi; Các công thức này chưa lấy số liệu từ đâu cả (Do bạn chưa nhập số liệu cho chúng). Nên chỉ có bạn mới biết các trang tính chúng vận hành nhanh hay chậm thế nào. Còn mình thì thua trong vấn đề này. Đã vậy thì làm sao có mốc thời gian để cải tiến hay cải lùi hở bạn?

Theo mình bạn chỉ nên đưa workbook VinhLoi lên thôi nhưng với khoảng 20-25 trang tính. Nhưng các trang đưa lên này có đầy đủ số liệu hay bạn fải mô tả cách nhập liệu vô 1 trang tính làm ví dụ.
Có những cái đó mới có cơ sở giúp bạn rút ngắn hay kéo dài thời gian vận hành trên workbook của bạn được.

Hướng mình gợi í là dùng macro thay cho toàn bộ các công thức SUMIF() trong các trang tính.

Chờ ý kiến của bạn!
 
Upvote 0
cảm ơn các bác đã quan tâm. em bổ sung thông tin theo yêu cầu các bác đây.

Em gửi lên 1 workspace , ở workspace này, file PNN_VT.xls em đã nhập 1 số dữ liệu rồi, các công thức sumif trong file này không quan trọng. quan trọng là các công thức trong các file CC_**** . Nặng là nặng ở các file CC_**** này. dữ liệu được nhập ở PNN_VT.xls và kết quả sẽ chạy sang các file CC_**

em còn gặp sự cố là nếu mở file CC_**** lên mà chưa mở file PNN_VT.xls thì máy chạy rất chậm. máy cấu hình yếu có thể bị treo. Nếu mở PNN_VT lên trước thì máy cấu hình yếu cũng chạy được, chỉ có điều chạy chậm.

đây là toàn bộ file bao gồm cả file workspace

http://www.mediafire.com/?6iz7c6rp4s92skg
 
Upvote 0
Nói thực đối với những file Excel thiết kế dạng này không khả thi, giống như trước đây tôi làm file Ke Toan cũng vậy. Khi chưa có dữ liệu nó chạy ro ro. Khi nhập dữ liệu nó đơ ra. Thời buổi này mà ngồi chờ máy tính thì thật buồn.
Giải pháp tình thế là tạm tắt tính toán tự động để làm việc khác. Còn giải quyết triệt để phải áp dụng trích rút dữ liệu bằng VBA kết hợp công cụ Excel hay ADO. Anh Ptm0412, HYen là các tiền bối về vấn đề này đã đề cập. Bạn tham khảo và kết hợp sự trợ giúp của anh em thì mới giải quyết được.
 
Upvote 0
140 lượt khách rồi, vẫn không có tiến triển gì. buồn!
Lại "nóng trong người" rồi.
Cái thằng CC_*** được link đến PNN_VT và sử dụng toàn công thức mảng (SUMPRODUCT), cái này không chậm mới là lạ.
Như sealand đã góp ý, cần phải chuyển chèo thành cải lương.
 
Upvote 0
Bạn nên thử nhốt chung các workbooks vô trong workbook PNN_VT.xls

Bằng cách thêm từng workbook khác vô workbook PNN_VT.xls; Mỗi lần như thề ta đều điền công thức cho đủ vô 9 trang tính của workbook đang thêm vào.

Như vậy đến lúc nào máy chạy rùa thi bạn báo lên diễn đàn;
Sẽ có người chuyển sang dùng macro để tìm dữ liệu thay cho các công thức dài ngoằng của bạn
Cũng có thể fương án này khả dĩ hơn fương cách mà bạn đang làm!

Chúc tuần làm việc hiệu quả.
 
Upvote 0
Bằng cách thêm từng workbook khác vô workbook PNN_VT.xls; Mỗi lần như thề ta đều điền công thức cho đủ vô 9 trang tính của workbook đang thêm vào.

Như thế có nghĩa là đưa các sheet 10-11, 11-12,... của các file CC_*** vào file PNN_VT.xls phải không. Em đã từng để thế, nhưng quá chậm nên em mới chuyển các sheet 10-11, 11-12.. ra files khác. Em tưởng 1 workbook là 1 file.xls chứ.

việc tách các sheet 0-11, 11-12,...ra giúp tăng tốc độ xử lý bằng cách khi xử lý dữ liệu liên quan đến xã nào thì bật file "CC_tênxa" xã đó lên. các xã còn lại sẽ đóng lại. như thế khi làm việc với 1 xã thì tốc độ xử lý gần bằng bình thường. Chỉ khi nào tính toán số liệu toàn huyện thì phải mở toàn bộ các xã thì excel mới chạy như rùa.
 
Lần chỉnh sửa cuối:
Upvote 0
Việc này thì mình cho là bác Sa hoàn toàn đúng, Link dữ liệu trong cùng Workbook bao giờ cũng nhanh hơn khác workbook, tất nhiên khi mở file lớn cũng se chậm đi, nhưng lợi thế sẽ updatelink nhanh hơn nhiều.
 
Upvote 0
Việc tách các sheet 0-11, 11-12,...ra giúp tăng tốc độ xử lý bằng cách khi xử lý dữ liệu liên quan đến xã nào thì bật file "CC_tênxa" xã đó lên. các xã còn lại sẽ đóng lại. như thế khi làm việc với 1 xã thì tốc độ xử lý gần bằng bình thường. Chỉ khi nào tính toán số liệu toàn huyện thì phải mở toàn bộ các xã thì excel mới chạy như rùa.
Vậy bạn mô tả kỹ càng thêm cách tính toán số liệu toàn huyện giúp đi; Thật tình mình chưa rõ bạn tính như thế nào.

Thường thì file năng do công thức thì thay những công thức nặng nề đó bằng cách tính của macro.

Mong tin từ bạn & thân ái!
--=0 --=0 --=0
 
Upvote 0
Vậy bạn mô tả kỹ càng thêm cách tính toán số liệu toàn huyện giúp đi.
--=0 --=0 --=0

Từ các file CC_xã sẽ tổng hợp lên file CC_huyện . File CC_toàn huyện này chỉ là tổng của các xã do đó chỉ sử dụng phép tính cộng bình thường thôi. Ví dụ ô F16 của huyện bằng F16 xã 1 + F16 xã 2 + F16 xã 3.... F16 xã cuối.

xem file CC_huyện mới thấy được chỉ tiêu nào cao chỉ tiêu nào thấp so với quy định từ đó mới biết đường điều chỉnh dữ liệu . Việc điều chỉnh bắt từ bảng dữ liệu ở file PNN_VT.xls dữ liệu điều chỉnh này tự động chạy vào file CC_xã và sau đó và chạy vào CC_Huyện.

nói vậy các bác hiểu chưa?
 
Upvote 0
Mình vừa có í tưởng : Nhốt chung 43 trang tính tại PNN_VT vào 1 trang tính với điều kiện sẽ cách nhau 350 dòng;
 
Upvote 0
em giờ mới tự tìm hiểu về VBA được it ngày nên ko hiểu. bác HYen17 có thể nói rõ hơn không?
 
Upvote 0
Ý mình là cùng với bạn làm 1 cuộc cách mạng lỡ đất

em giờ mới tự tìm hiểu về VBA được it ngày nên ko hiểu. bác HYen17 có thể nói rõ hơn không?

Vì trang tính có số dòng nhiều nhất trong 43 trang tính trên chếm là 317 dòng;

Nếu dồn chung chúng vô 1 trang tính, thì mình sẽ bỏ công sức ra làm cho bạn 2 báo cáo bằng macro;

1 cái của xã & 1 cái của huyện. Tất nhiên chọn xã trong danh sách xã thì sau 1 lúc rung đùi ta sẽ có số liệu báo cáo trên trang BCXa & cũng vậy trên trang tính BCHn

Nếu vậy file của bạn chỉ 4 trang tính mà thôi. Viễn cảnh vậy có trở ngại gì cho bạn hay không?

Nếu có chi trở ngại hãy cho biết để ta còn xem xét tiếp.

Thân ái & chờ tin bạn!
 
Upvote 0
thế tốt quá. nhưng bác gia tăng số dòng cho em đi. file em gửi lên mới nhập 1 ít dữ liệu làm ví dụ. khi nhập đủ lên khoảng 500 -1000 dòng.

em cám ơn bác trước nha.
 
Upvote 0
Nhưng bạn chứ không fải mình tạo file đó, vì . . .

thế tốt quá. nhưng bác gia tăng số dòng cho em đi. file em gửi lên mới nhập 1 ít dữ liệu làm ví dụ. khi nhập đủ lên khoảng 500 -1000 dòng. em cám ơn bác trước nha.

Mình đã thử bằng 2 cách copy từ trang này sang trang kia, nhưng số liệu đều lệnh lạc hết tất cả;
Chúng lệch vì mình đoán rằng bạn đã cài công thức, nhứt là công thức SUMIF(),. . . , nên vậy.

Theo mình số liệu thô là số liệu nhập; Các trang tính này không nên cài công thức nào hết.

Nếu bạn muốn cài công thức trong trang nớ, thì bạn hãy lập nó. Mình hết cách rồi mà vẫn chưa giả lập được để thử thực hiện í tưởng.

Ta thống nhứt, mỗi vùng dữ liệu chiếm 1 ngàn dòng (Vùng 2 sẽ bắt đầu từ dòng thứ 1001 cho đến dòng thứ 2.000
 
Upvote 0
công thức sumif có thể xóa đi. công thức đó chỉ dùng để làm báo cáo cho từng chỉ tiêu 1. 43 báo cáo cho 43 chỉ tiêu này đơn giản nên em sẽ tự làm lấy từ file tổng hợp.
 
Upvote 0
Mình đã tạo file theo ý tưởng thỏa thuận rồi đây

Dùng 2 macro (có trong file) mình đã:

(*) Biến các ô chứa công thức thành dữ liệu; Khi đó 1 số dữ liệu trở thành dữ liệu sai #VALUE thì xóa đi
(*) Chép sang trang tính 'CSDL'

Như vậy 1 số số` liệu đã thay đổ hay bị xóa.

(1) Bạn soi xét file xem có ảnh hưởng đến việc tổng hợp theo xã hay huyện không? Nếu thấy cần fải sửa lại thì giúp mình cái nha.

(2) Hãy hướng dẫn cụ thể cách mà bạn làm báo cáo Xã giúp nha!

Xin cảm ơn nhiều!
 

File đính kèm

Upvote 0
cám ơn bác HYen17. Để em nghiên cứu xem thế nào. có vấn đề gì em lại nhờ bác. (hơi tham phải không, hi hi)
 
Upvote 0
Cách bố trí của bác HYen17 như vậy cũng được. Nhưng em đề xuất cách bố trí dữ liệu theo cách này có được không? Nếu tách các sheet CC_xã_năm thành từng workbook khác nhau được thì hay quá.
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom