คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
ข้อกำหนดและขีดจำกัดของ Excel
https://support.microsoft.com/th-th/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3
จำนวนแถวและคอลัมน์ทั้งหมดในเวิร์กชีต
1,048,576 แถว คูณ 16,384 คอลัมน์
อยากรู้ ก็ต้องลอง
test system: I5 gen 11/ ram 32GB / SSD M.2
- ทดลองใส่ตัวอักษร 1 ตัวใน A1 -> copy ไปถึง row 1,048,576
ตอนนี้ยังไม่ค้าง, เซฟไฟล์ได้ขนาด 5.xx MB, เฉพาะโปรแกรมใช้หน่วยความจำอยู่แถวๆ 200 MB
* ผมจะใช้ column นี้เป็นต้นฉบับเริ่มต้น, copy เพิ่ม column ไปเรื่อยๆ แล้วดูความเปลี่ยนแปลง
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
- ทดลอง copy column A:A -> CV:CV
คือสำเนาเพิ่มไป +99 column = ตอนนี้มี 100 column
ตอนนี้มี 1,048,576 * 100 = 1,048,576,000 cell
ยังพอทำงานได้ไม่ค้าง, เซฟไฟล์ได้ขนาด 29x.xx MB, โปรแกรมใช้หน่วยความจำอยู่แถวๆ 2.5 GB
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
- ทดลองทำซ้ำไปเรื่อย (select 100 col + copy/paste เพิ่มทีละ 100 col) จนกว่ามันจะทำต่อไม่ได้
200 col (209,715,200 cell) = ram usage 4.9x GB / file size 58x.xx MB
300 col (314,572,800 cell) = ram usage 7.3x GB / file size 87x.xx MB
400 col (419,430,400 cell) = ram usage 9.7x GB / file size 1.07 GB
500 col (524,288,000 cell) = ram usage 12.x GB / file size 1.36 GB
600 col (629,145,600 cell) = ram usage 14.6 GB / file size 1.63 GB *เริ่มมีอาการ not respond เป็นระยะๆ ตอนเซฟ -แต่ยังเซฟได้
700 col (734,003,200 cell) = ram usage 17.x GB / file size 1.89 GB
800 col (838,860,800 cell) = ram usage 19.x GB / file size 2.20 GB
900 col (943,718,400 cell) = ram usage 21.8 GB / file size 2.48 GB
*เริ่มหน่วงตั้งแต่ตอน copy, ram ระบบทั้งหมดใช้ไปแล้ว 25.xx/32 GB (~80% เหลือใช้ราว 6.xx GB)
1000 col (1,048,576,000 cell) = ram usage 24.xx GB / file size 2.80 GB / ram ระบบเหลือ ~4.0 GB
1100 col (1,153,433,600 cell) = ram usage 26.6x GB / file size 3.10 GB / ram ระบบเหลือ ~2.3 GB
1200 col (1,258,291,200 cell) = *ram usage 15.7x/28.8x GB / file size 3.37 GB / ram ระบบเหลือ #12.xx/0.7x GB
*/# เริ่มมีการสลับ ram จริง<>pagefile, แรมจริงเลยมีการใช้ลดลงช่วงสั้นๆ -> ทำงานต่ออีกก็กลับมาใช้แรมจริงอีก
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
ถึงตรงนี้ เริ่มจะทำงานต่อไม่ไหวแล้ว (ยังไม่ค้าง, ยังไม่แฮงค์ แต่ว่ามันเริ่มใช้เวลามากขึ้นเรื่อยๆ)
คงจะทำจนกว่าจะแฮงค์, ค้าง หรือ ไปจนถึงลิมิต 16,384 คอลัมน์ ไม่ไหวจริง
สรุปสั้น
ที่ทำไป ไม่ได้มีการใส่สูตรเลยแม้แต่นิดเดียว แค่การทำแต่ละ step จะใช้เวลาเพิ่มขึ้นเรื่อยๆ (ตามจำนวนข้อมูลที่มี)
ถ้าข้อมูลมีหลากรูปแบบ เช่นมีทั้งตัวอักษร, ตัวเลข, วันที่ +การจัดรูปแบบ +มีการใส่สูตรด้วย +มีการ link ข้อมูลไปมาข้าง workbook ด้วย
ข้อมูลจะยิ่งซับซ้อนเพิ่มขึ้นไปอีก = ต้องใช้ทรัพยากร+เวลา ในการประมวลผลเพิ่มขึ้น
แน่นอนว่า ไม่มีทางที่จะมีใครทนรอไหว
หากมีข้อมูลจำนวนมาก (มีเป็นล้านเรคคอร์ด++ แน่นอน)
แนะนำให้เปลี่ยนไปใช้ระบบจัดการฐานข้อมูลใดๆ แทนการใช้ excel
https://support.microsoft.com/th-th/office/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3
จำนวนแถวและคอลัมน์ทั้งหมดในเวิร์กชีต
1,048,576 แถว คูณ 16,384 คอลัมน์
อยากรู้ ก็ต้องลอง
test system: I5 gen 11/ ram 32GB / SSD M.2
- ทดลองใส่ตัวอักษร 1 ตัวใน A1 -> copy ไปถึง row 1,048,576
ตอนนี้ยังไม่ค้าง, เซฟไฟล์ได้ขนาด 5.xx MB, เฉพาะโปรแกรมใช้หน่วยความจำอยู่แถวๆ 200 MB
* ผมจะใช้ column นี้เป็นต้นฉบับเริ่มต้น, copy เพิ่ม column ไปเรื่อยๆ แล้วดูความเปลี่ยนแปลง
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
- ทดลอง copy column A:A -> CV:CV
คือสำเนาเพิ่มไป +99 column = ตอนนี้มี 100 column
ตอนนี้มี 1,048,576 * 100 = 1,048,576,000 cell
ยังพอทำงานได้ไม่ค้าง, เซฟไฟล์ได้ขนาด 29x.xx MB, โปรแกรมใช้หน่วยความจำอยู่แถวๆ 2.5 GB
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
- ทดลองทำซ้ำไปเรื่อย (select 100 col + copy/paste เพิ่มทีละ 100 col) จนกว่ามันจะทำต่อไม่ได้
200 col (209,715,200 cell) = ram usage 4.9x GB / file size 58x.xx MB
300 col (314,572,800 cell) = ram usage 7.3x GB / file size 87x.xx MB
400 col (419,430,400 cell) = ram usage 9.7x GB / file size 1.07 GB
500 col (524,288,000 cell) = ram usage 12.x GB / file size 1.36 GB
600 col (629,145,600 cell) = ram usage 14.6 GB / file size 1.63 GB *เริ่มมีอาการ not respond เป็นระยะๆ ตอนเซฟ -แต่ยังเซฟได้
700 col (734,003,200 cell) = ram usage 17.x GB / file size 1.89 GB
800 col (838,860,800 cell) = ram usage 19.x GB / file size 2.20 GB
900 col (943,718,400 cell) = ram usage 21.8 GB / file size 2.48 GB
*เริ่มหน่วงตั้งแต่ตอน copy, ram ระบบทั้งหมดใช้ไปแล้ว 25.xx/32 GB (~80% เหลือใช้ราว 6.xx GB)
1000 col (1,048,576,000 cell) = ram usage 24.xx GB / file size 2.80 GB / ram ระบบเหลือ ~4.0 GB
1100 col (1,153,433,600 cell) = ram usage 26.6x GB / file size 3.10 GB / ram ระบบเหลือ ~2.3 GB
1200 col (1,258,291,200 cell) = *ram usage 15.7x/28.8x GB / file size 3.37 GB / ram ระบบเหลือ #12.xx/0.7x GB
*/# เริ่มมีการสลับ ram จริง<>pagefile, แรมจริงเลยมีการใช้ลดลงช่วงสั้นๆ -> ทำงานต่ออีกก็กลับมาใช้แรมจริงอีก
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
ถึงตรงนี้ เริ่มจะทำงานต่อไม่ไหวแล้ว (ยังไม่ค้าง, ยังไม่แฮงค์ แต่ว่ามันเริ่มใช้เวลามากขึ้นเรื่อยๆ)
คงจะทำจนกว่าจะแฮงค์, ค้าง หรือ ไปจนถึงลิมิต 16,384 คอลัมน์ ไม่ไหวจริง
สรุปสั้น
ที่ทำไป ไม่ได้มีการใส่สูตรเลยแม้แต่นิดเดียว แค่การทำแต่ละ step จะใช้เวลาเพิ่มขึ้นเรื่อยๆ (ตามจำนวนข้อมูลที่มี)
ถ้าข้อมูลมีหลากรูปแบบ เช่นมีทั้งตัวอักษร, ตัวเลข, วันที่ +การจัดรูปแบบ +มีการใส่สูตรด้วย +มีการ link ข้อมูลไปมาข้าง workbook ด้วย
ข้อมูลจะยิ่งซับซ้อนเพิ่มขึ้นไปอีก = ต้องใช้ทรัพยากร+เวลา ในการประมวลผลเพิ่มขึ้น
แน่นอนว่า ไม่มีทางที่จะมีใครทนรอไหว
หากมีข้อมูลจำนวนมาก (มีเป็นล้านเรคคอร์ด++ แน่นอน)
แนะนำให้เปลี่ยนไปใช้ระบบจัดการฐานข้อมูลใดๆ แทนการใช้ excel
แสดงความคิดเห็น
ถ้าเราใส่ข้อมูลเต็มทุกช่องใน excel จะมีขนาดไฟล์เท่าไหร่และ spec คอมต้องประมาณไหนถึงจะใช้งานได้แบบไม่สะดุดครับ