Tại sao file của em có khoảng 5 name, 250kb (1/4mb) thôi mà mở ra máy tính đọc lâu (5 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyenmanhnam

Thành viên tiêu biểu
Tham gia
24/7/10
Bài viết
434
Được thích
266
Em đã kiểm tra bằng các chương trình Tname...file của em dung lượng cũng không phải lớn (0.25MB), khoảng 5 name thôi, mà sao em dùng máy nào mở ra khi đưa số vào cũng phải 30' máy mới tính xong. Xin kinh chuyển nhờ các bác giúp cho em nguyên nhân tại sao ạh.
 
Em đã kiểm tra bằng các chương trình Tname...file của em dung lượng cũng không phải lớn (0.25MB), khoảng 5 name thôi, mà sao em dùng máy nào mở ra khi đưa số vào cũng phải 30' máy mới tính xong. Xin kinh chuyển nhờ các bác giúp cho em nguyên nhân tại sao ạh.
Name không có vấn đề ---> Vấn đề nằm ở chổ mấy công thức liên quan đến hàm LOOKUP, nó thuộc dạng HẠNG NẶNG ----> Bạn cứ thử xóa hết những chổ có LOOKUP thì sẽ thấy nhẹ liền
Từ đó suy ra: Không nên dùng công thức mảng với dữ liệu lớn
 
Đó là do Name tính toán trong cả cột (F:F, A:A, B:B, ...)
Trường hợp này đâu cần match 9E307 làm gì, chỉ cần count(F4:F1000) là được.

Lookup Array thì thay bằng index
 
Lần chỉnh sửa cuối:
Đó là do Name tính toán trong cả cột (F:F, A:A, B:B, ...)
Trường hợp này đâu cần match 9E307 làm gì, chỉ cần count(F4:F1000) là được.
Không phải đâu sư phụ ơi! Mấy cái name ấy, cho dù sư phụ có sửa lại thành "không động" thì file vẫn nặng
 
Anh thử rồi mà, sau khi sửa name bằng count, cải thiện 1/2, nếu thay lookup Array bằng index, cải thiện 9/10
 
Các sư phụ ơi, đệ tử vừa học được mấy cái hàm đó, làm được thấy vui lắm, nay gặp hiện tượng này thật khó cho đệ quá, phiền sư phụ cụ thể giúp cho làm thế nào thay công thức tương đương mà kết quả nó vẫn như vậy không ah. Dữ liệu của em trong mối bảng thường 1 năm phát sinh khoảng 1000 dòng thôi, vì ngày thứ 2 đệ tử phải báo cáo rồi, kiến thức vẫn còn hạn hẹp không xử lý nhanh được. Xin đuợc các thày chỉ cho cụ thể vào file, xin đa tạ các sư phụ
 
Lần chỉnh sửa cuối:
File đây, nhanh hơn lúc trước rồi, nhưng chưa tối ưu lắm.
 

File đính kèm

File đây, nhanh hơn lúc trước rồi, nhưng chưa tối ưu lắm.

Nó đã giảm được chút rồi sư phụ ạh, nhưng không đáng kể; giả sử đánh thêm số 10 vào nữa nó phải đợi đến 3 giây, hay là do virut sư phụ nhỉ; bởi em đã tải một số file trên diễn đàn về họ có khoảng 10 name có sao đâu vẫn chạy ngon, đằng này mình có 5 name thôi sao lại thế nhỉ?
 
Nó đã giảm được chút rồi sư phụ ạh, nhưng không đáng kể; giả sử đánh thêm số 10 vào nữa nó phải đợi đến 3 giây, hay là do virut sư phụ nhỉ; bởi em đã tải một số file trên diễn đàn về họ có khoảng 10 name có sao đâu vẫn chạy ngon, đằng này mình có 5 name thôi sao lại thế nhỉ?
Chẳng phải virus gì đâu! Vấn đề nằm ở các công thức mảng mà bạn đã dùng trong file ấy (Name của bạn hoàn toàn không có vấn đề, thậm chí là RẤT CHUẨN)
Với dữ liệu lớn mà dùng công thức mảng là xem như... TREO CỔ
 
Ý thày mình chỉ có thể dùng VBA thôi phải không ạh, chứ nếu làm thủ công thì em teo mất. Thày cho em hỏi có cách nào lọc tự động không dùng VBA, không dùng Name không ạh. Em mới học hỏi name đang khoái vì bắt đầu khám phá mà lại bị hạn chế trong TH này, nản quá thày ạh.
 
Ý thày mình chỉ có thể dùng VBA thôi phải không ạh, chứ nếu làm thủ công thì em teo mất. Thày cho em hỏi có cách nào lọc tự động không dùng VBA, không dùng Name không ạh. Em mới học hỏi name đang khoái vì bắt đầu khám phá mà lại bị hạn chế trong TH này, nản quá thày ạh.
Lý ra định khuyên bạn dùng PivotTable nhưng xem kỹ thì có vẽ không dùng được!
Còn VBA đương nhiên là dùng được rồi (khỏi bàn)... Tôi cũng định làm giúp bạn nhưng xem file thấy.. rối quá! Có lẽ tôi chưa hiểu được ý đố trong file (tại sao nơi nhập liệu cũng có công thức và tại sao nơi trích lọc cũng có dữ liệu nhập) nên cũng... nhát tay
Quay lại bài toán này tôi nghĩ bạn nên suy nghĩ về cách bố trí dữ liệu:
- Vùng nhập liệu là vùng chỉ có dữ liệu thô, chẳng nên đặt bất cứ công thức nào
- Ngoài ra, đã là dữ liệu thì ít nhất cũng nên có TIÊU ĐỀ chứ nhỉ (để xem còn biết cột nào mang ý nghĩa gì)
 
Làm sao Excel hiểu tự động điền dữ liệu

Thưa thày, tối hôm qua em nghĩ nhiều về cách bố trí cách làm sao cho đơn giản vấn đề, không dùng hàm. Mục đích của em là so sánh 2 chỉ tiêu A và B trong tất cả các ngày trong năm (trong đó A và B thay đổi theo từng ngày); sau đó lọc ra các ngày có A khác B. Số liệu đầu vào của A em có dưới dạng theo không đầy đủ (Ví dụ 1/1/2010 là 100; 31/1/2010 là 500; 15/2/2010 là 600). Mục đích của em là trong tất cả 360 ngày làm cho excel hiểu theo quy luật những ngày từ 1/1/2010 đến 30/1/2010 giá trị của A là 100 (bằng giá trị ngày 1/1/2010); từ ngày 31/1/2010 đến 14/12/2010 là 500 (tức nếu chưa gặp số mới thì nó tự động lấy theo số trên). Em xin gửi file đính kèm mong thày giúp đỡ em (nếu cố gắng không dùng name thì càng tốt ạh).
 
Dùng hàm sumif & cột phụ là OK

Thưa thày, tối hôm qua em nghĩ nhiều về cách bố trí cách làm sao cho đơn giản vấn đề, không dùng hàm. Mục đích của em là so sánh 2 chỉ tiêu A và B trong tất cả các ngày trong năm (trong đó A và B thay đổi theo từng ngày); sau đó lọc ra các ngày có A khác B. Số liệu đầu vào của A em có dưới dạng theo không đầy đủ (Ví dụ 1/1/2010 là 100; 31/1/2010 là 500; 15/2/2010 là 600). Mục đích của em là trong tất cả 360 ngày làm cho excel hiểu theo quy luật những ngày từ 1/1/2010 đến 30/1/2010 giá trị của A là 100 (bằng giá trị ngày 1/1/2010); từ ngày 31/1/2010 đến 14/12/2010 là 500 (tức nếu chưa gặp số mới thì nó tự động lấy theo số trên). Em xin gửi file đính kèm mong thày giúp đỡ em (nếu cố gắng không dùng name thì càng tốt ạh).
Giải pháp dùng hàm sumif theo tôi cũng khá hay, ngắn gọn. Tuy nhiên cần tạo thêm 01 cột phụ, tôi nghĩ mãi chưa ra được cách bỏ cột phụ đi; vậy nhưng tôi nghĩ đây cũng là hướng đi tốt. phiền các bác trên diễn đàn nghĩ cách nào có thể bỏ cột phụ đi được không
 

File đính kèm

Giải pháp dùng hàm sumif theo tôi cũng khá hay, ngắn gọn. Tuy nhiên cần tạo thêm 01 cột phụ, tôi nghĩ mãi chưa ra được cách bỏ cột phụ đi; vậy nhưng tôi nghĩ đây cũng là hướng đi tốt. phiền các bác trên diễn đàn nghĩ cách nào có thể bỏ cột phụ đi được không
Sao bạn không dùng VLOOUP nhỉ
PHP:
=VLOOKUP(E1,$A$12:$B$17,2)
Không cần cột phụ luôn
 
Lý ra định khuyên bạn dùng PivotTable nhưng xem kỹ thì có vẽ không dùng được!
Còn VBA đương nhiên là dùng được rồi (khỏi bàn)... Tôi cũng định làm giúp bạn nhưng xem file thấy.. rối quá! Có lẽ tôi chưa hiểu được ý đố trong file (tại sao nơi nhập liệu cũng có công thức và tại sao nơi trích lọc cũng có dữ liệu nhập) nên cũng... nhát tay
Quay lại bài toán này tôi nghĩ bạn nên suy nghĩ về cách bố trí dữ liệu:
- Vùng nhập liệu là vùng chỉ có dữ liệu thô, chẳng nên đặt bất cứ công thức nào
- Ngoài ra, đã là dữ liệu thì ít nhất cũng nên có TIÊU ĐỀ chứ nhỉ (để xem còn biết cột nào mang ý nghĩa gì)
Th­ưa thày em công tác trong ngành Ngân hàng, hàng năm của bọn em phát sinh khoảng 200 hợp đồng, đối với mỗi hợp đồng có ngày huy động (vay của KH) và ngày trả nợ (trả nợ cho KH), hợp đồng huy động từ khách hàng (KH) có thể là 3 tháng, 6 tháng, 9 tháng (ví dụ KH A huy động 3 tháng ngày 1/1/2010 vay thì đến ngày 1/4/2010 là trả). Hàng ngày em phải cập nhật lịch cho vay, trả nợ. Khi học được lọc dữ liệu bằng name em rất mừng vì có thể thống kê ra ngay, tuy vậy TH cập nhật mấy trăm dòng thì file quá nặng. Em chưa biết thiết kế bảng kiểu gì để trả lời cho câu hỏi:
1) Hiện nay còn bao nhiêu hợp đồng còn hiệu lực (huy động chưa trả nợ cho KH); số tiền huy động tính đến hiện giờ là bao nhiêu (không kể số đã trả cho KH rồi)?
2) Từ đầu năm huy động được bao nhiêu tiền rồi, trong tháng vừa rồi là bao nhiêu...
Em đang nghĩ thiết kế làm sao cho hợp lý. Cảm ơn thày đã giúp đỡ em rất nhiều, chúc thày luôn khoẻ mạnh, hạnh phúc.
 
Thưa thày, tối hôm qua em nghĩ nhiều về cách bố trí cách làm sao cho đơn giản vấn đề, không dùng hàm. Mục đích của em là so sánh 2 chỉ tiêu A và B trong tất cả các ngày trong năm (trong đó A và B thay đổi theo từng ngày); sau đó lọc ra các ngày có A khác B. Số liệu đầu vào của A em có dưới dạng theo không đầy đủ (Ví dụ 1/1/2010 là 100; 31/1/2010 là 500; 15/2/2010 là 600). Mục đích của em là trong tất cả 360 ngày làm cho excel hiểu theo quy luật những ngày từ 1/1/2010 đến 30/1/2010 giá trị của A là 100 (bằng giá trị ngày 1/1/2010); từ ngày 31/1/2010 đến 14/12/2010 là 500 (tức nếu chưa gặp số mới thì nó tự động lấy theo số trên). Em xin gửi file đính kèm mong thày giúp đỡ em (nếu cố gắng không dùng name thì càng tốt ạh).

Làm như vậy không biết có đúng ý bạn không?, xem file:
 

File đính kèm

Web KT

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

Back
Top Bottom