snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการตั้งค่า, การจัดรูปแบบและปัญหาทั่วไป
Milddy
Member
Posts: 9 Joined: Thu Jan 29, 2015 7:44 pm
#1
Post
by Milddy » Wed Feb 18, 2015 10:33 am
รบกวนช่วยดู file ที่แนบมาให้หน่อยค่ะ คือเปิดและปิด file ช้ามาก และถ้ามีการแก้ไขอะไรนิดหน่อยก็จะขึ้น calculating : 4 processor xx%
ขออนุญาตลบข้อมูลที่เป็นตัวเลขออกนะคะ โดยโครงสร้างของ file จะเป็นดังนี้ค่ะ
1. เป็น file ที่ใช้สำหรับทำข้อมูลเป็นรายเดือน และรายปีค่ะ
2. ข้อมูลเริ่มจาก sheet ที่เป็นชื่อเดือน 12 เดือน (APR14 จนถึง MAR15) จะเป็นข้อมูลที่ load มาจากระบบอื่นเพื่อนำมาเป็น database ที่จะใช้สำหรับ sheet Temp TB
3. sheet ที่ชื่อ Temp TB จะเป็นการดึงข้อมูลจาก sheet ที่เป็นชื่อเดือนทั้ง 12 sheet มารวมกัน และใช้เป็น database ของ sheet TB_PL และ TB_BS
4. sheet ที่เหลือก็จะเป็นการดึงข้อมูลจาก sheet TB_PL และ TB_BS
5. สูตรที่ใช้เกือบทั้งหมดจะเป็น sumif ค่ะ ก่อนหน้านี้ใช้ vlookup ช้ากว่านี้มากก็เลยลองเปลี่ยนมาใช้ sumif
ช่วยแนะนำด้วยค่ะ ว่าควรทำอย่างไร เกิดจากอะไรคะ หรือควรจะเปลี่ยนสูตรในการคำนวณ ขอบคุณค่ะ
แนบ file ไม่ได้ค่ะ มีขนาดใหญ่เกิน ลอง zip แล้วประมาณ 33 MB ค่ะ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#2
Post
by bank9597 » Wed Feb 18, 2015 1:14 pm
ให้ทำการเปลี่ยนการคำนวนจาก Auto เป็น Manual ครับ
ไปที่ File > option > formula > เลือก manual
เวลาต้องการให้สูตรคำนวน ค่อยปรับให้เป็น Automatic
การแก้ปัญหาที่ดีกว่านี้ ควรเปลี่ยนจากการใช้สูตรกับข้อมูลมากๆ มาเป็นการเขียนโค๊ด หรือ ไม่ก็ปรับวิธีการใช้สูตรใหม่ ให้กะทัดรัด ตามความจำเป็น
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
menem
Silver
Posts: 549 Joined: Mon Jan 26, 2015 11:02 am
#3
Post
by menem » Wed Feb 18, 2015 1:36 pm
เปลี่ยนการคำนวณจาก Automatic เป็น Manual
สำหรับการคำนวณ ให้ใช้คำนวณเป็น Sheet แทนการคำนวณทั้งไฟล์ในคราวเดียว
ด้วยการกด Shift-F9 ไล่เรียงจาก Temp TB ก่อน จากนั้นค่อยไปต่อที่ TB_PL , TB_BS
และ Sheet อื่น ๆ ที่เหลือ
ในกรณีที่ไม่ต้องการสั่งคำนวณเอง อาจจะต้องเขียน VBA เพื่อปรับปรุงค่าใน Temp TB
แทนการใช้สูตรครับ เนื่องจาก Function xLookup , SumIF ค่อนข้างจะทำงานช้า
หากพื้นที่ข้อมูลมีจำนวนมาก
Milddy
Member
Posts: 9 Joined: Thu Jan 29, 2015 7:44 pm
#4
Post
by Milddy » Wed Feb 18, 2015 2:34 pm
ขอบคุณค่ะ คุณ bank9597, คุณ menem เดี๋ยวลองไปทำดูนะคะ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Wed Feb 18, 2015 3:18 pm
การที่ไฟล์ช้าเข้าใจว่าใช้สูตรในไฟล์จำนวนมาก
สำหรับการใช้สูตรควรใช้เพื่อการคำนวณ สรุปข้อมูลมาทำรายงาน ชีทใดที่เป็น Database เราไม่ควรมีสูตรในชีทนั้น หากจำเป็นต้องมีก็เพียงบรรทัดแรกของข้อมูล บรรทัดที่เหลือให้ Copy แล้ววางเป็น Value เพื่อลดภาระการคำนวณของไฟล์ครับ
Milddy
Member
Posts: 9 Joined: Thu Jan 29, 2015 7:44 pm
#6
Post
by Milddy » Thu Feb 19, 2015 11:10 am
คุณ snasui คะ
ลักษณะการทำงาน คือ ต้อง update ข้อมูลอยู่เป็นประจำ โดยจะนำ database มาจากระบบอื่น แยกเป็นรายเดือน ดังนั้นจะมี database อยู่ทั้งหมด 12 sheet โดยทั้ง 12 sheet นี้ไม่มีสูตรค่ะ
1. จะทำการดึงข้อมูลจากทั้ง 12 sheet ให้มาอยู่ใน sheet เดียวกัน แยกคอลัมน์เป็นรายเดือน เพื่อเป็นการตรวจสอบเบื้องต้นว่าข้อมูลที่ทำการ load มาจากระบบอื่นนั้นถูกต้อง ครบถ้วน (ชื่อ sheet : Temp TB) file นี้จะมีเฉพาะสูตร sumif อย่างเดียวค่ะ
2. จะทำการดึงข้อมูลจาก sheet : Temp TB มาจัดอยู่ในรูปแบบที่ต้องการ แยกเป็น 2 sheet ลักษณะคล้ายกันคือ แยกคอลัมน์เป็นรายเดือน (ชื่อ sheet : TB_PL และ TB_BS) จะใช้ sumif อย่างเดียวทั้ง 2 sheet ค่ะ
Sheet ที่เหลือก็จะเป็นการดึงข้อมูลจาก sheet TB_PL และ TB_BS ไปใช้งานค่ะ ถ้าจะให้ไม่มีสูตร จะทำให้ทำงานได้ยากค่ะ ถ้าลักษณะงานที่ต้องการ update ข้อมูลอยู่ตลอดแบบนี้ มีวิธีไหนแนะนำได้อีกบ้างคะ ขอบคุณค่ะ
โดยตอนนี้ได้แก้ไขให้ไม่ต้องคำนวณแบบ automatic ไปแล้วค่ะ ก็ดีขึ้นมาระดับหนึ่ง แต่ข้อเสียคือ sheet เยอะมากพอมาไล่ทีละ sheet บางทีลืมหรือข้ามไป ทำให้ข้อมูลไม่ update และข้อมูลค่อนข้างเยอะ ทำให้เช็คยากพอสมควรค่ะ
snasui
Site Admin
Posts: 31191 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#7
Post
by snasui » Thu Feb 19, 2015 2:23 pm
Milddy wrote: 1. จะทำการดึงข้อมูลจากทั้ง 12 sheet ให้มาอยู่ใน sheet เดียวกัน แยกคอลัมน์เป็นรายเดือน เพื่อเป็นการตรวจสอบเบื้องต้นว่าข้อมูลที่ทำการ load มาจากระบบอื่นนั้นถูกต้อง ครบถ้วน (ชื่อ sheet : Temp TB) file นี้จะมีเฉพาะสูตร sumif อย่างเดียวค่ะ
2. จะทำการดึงข้อมูลจาก sheet : Temp TB มาจัดอยู่ในรูปแบบที่ต้องการ แยกเป็น 2 sheet ลักษณะคล้ายกันคือ แยกคอลัมน์เป็นรายเดือน (ชื่อ sheet : TB_PL และ TB_BS) จะใช้ sumif อย่างเดียวทั้ง 2 sheet ค่ะ
ควรทำ Database อยู่ในชีทเดียวกัน ต่อลงไปด้านล่างแทนการแยกเป็นชีท โดยใช้คอลัมน์ใดคอลัมน์หนึ่งระบุว่าข้อมูลนั้น ๆ เป็นของเดือนใด จากนั้นใช้ PivotTable สรุปข้อมูลแทนการใช้ Sumif เพื่อลดภาระการคำนวณครับ
Milddy
Member
Posts: 9 Joined: Thu Jan 29, 2015 7:44 pm
#8
Post
by Milddy » Fri Feb 20, 2015 1:01 pm
ขอบคุณนะคะ คุณ snasui เดี๋ยวลองทำดูค่ะ