Page 1 of 1
อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Mon Oct 17, 2011 6:11 pm
by prawitj
Question1
พอดีใน Column P ผมได้เช็ค PO index (col A) ไว้ Count ย้อนกลับ แล้วมากกว่า 1 ให้มันขึ้น msg error แต่พอลองแล้วมันไม่ขึ้นน่ะครับ รบกวนอาจารย์ช่วยแนะนำด้วยครับ
Question 2
อีกประการที่อยากขอร้องให้ช่วยคือ พอดีใน col E (P/O ถูก Revise(Y=Yes, N= No)) ผมอยากให้ใบ max ของ Runnumber ใดๆที่ ถูก Revised ขึ้นว่า N แล้วกลับไปแก้ใบ สุดท้ายก่อน Revised เป็น Y ซึ่งตอนนี้ผมใช้วิธี Count เช็คไปข้างหน้าน่ะครับ ซึ่งติดปัญหา 1 ประการ คือถ้า Sorting แล้วใบ revised น้อยกว่าโดนดีดขึ้นไปข้างบน Program เพี้ยนทันทีครับ
และสุดท้ายนี้ทั้ง 2 Question เลยนะครับ พอดี File จริงผมมีการดึงข้อมูลจาก Report อื่นด้วย Vlookup โดยใช้ PO index ดูดมา ซึ่งช้ามากกกกก และกำลังหาวิธีแก้ไขอยู่ เช่น ใน คอลัมภ์ R ก็มีการดึงข้อมูลรถจาก Col Q หรือข้อมูล finance ต่างๆก็ดึงจาก File ของ Finance (ไม่ได้แสดง) เลยกลัวว่าถ้าไปใช้ Countif อีกจะทำให้ Program ช้าไปใหญ่ (Fie นี้ไม่ช้าครับ แต่ File จริง มี PO ประมาณ 2000 แถว เวลา Filter หรือ Save ทีรอนานมากกกกกก)
ผมเลยอยากจะลองใช้ For loop ใน VBA ดูเผื่อจะเร็วขึ้น นี่ก็ซื้อหนังสือมาแต่หนังสือมันสอน Basic มาก แล้ว เรื่อง Coding VBA นี่ผมไม่ค่อยรู้อยู่แล้ว หนังสือเลยช่วยไม่ค่อยได้เลย
รบกวนอาจารย์อย่างสูงครับ ขอบคุณมากกกก
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Mon Oct 17, 2011 7:00 pm
by snasui

อ่านแล้วไม่เข้าใจครับ
prawitj wrote:Question1
พอดีใน Column P ผมได้เช็ค PO index (col A) ไว้ Count ย้อนกลับ แล้วมากกว่า 1 ให้มันขึ้น msg error แต่พอลองแล้วมันไม่ขึ้นน่ะครับ รบกวนอาจารย์ช่วยแนะนำด้วยครั
ผมไม่พบว่าคอลัมน์ P มีค่าหรือสูตรใด ๆ ให้ตรวจสอบ
prawitj wrote:Question 2
อีกประการที่อยากขอร้องให้ช่วยคือ พอดีใน col E (P/O ถูก Revise(Y=Yes, N= No)) ผมอยากให้ใบ max ของ Runnumber ใดๆที่ ถูก Revised ขึ้นว่า N แล้วกลับไปแก้ใบ สุดท้ายก่อน Revised เป็น Y ซึ่งตอนนี้ผมใช้วิธี Count เช็คไปข้างหน้าน่ะครับ ซึ่งติดปัญหา 1 ประการ คือถ้า Sorting แล้วใบ revised น้อยกว่าโดนดีดขึ้นไปข้างบน Program เพี้ยนทันทีครับ
ตัวหนังสือที่ผมระบายสีแดงไว้หมายความว่าอย่างไรครับ มีวิธีการทำงานอย่างไร ช่วยจับภาพปัญหา และคำตอบที่ต้องการมาจะช่วยได้เยอะครับ เนื่องจากอ่านแล้วไม่เข้าใจว่า
- ใบ max ของ Runnumber ใดๆ
คืออะไร
- แล้วกลับไปแก้ใบ สุดท้ายก่อน Revised เป็น Y
ดูจากอะไรว่าใบสุดท้าย แก้ตอนไหน
- Sorting แล้วใบ revised น้อยกว่าโดนดีดขึ้นไปข้างบน Program เพี้ยนทันทีครับ
ใบ Revised น้อยกว่าดูจากไหน
การใช้ Vlookup กับข้อมูลปริมาณมากช้าแน่นอนครับ แต่ Countif และ Sumif ไม่ช้าครับ
หากใช้ Vlookup แล้วมีการ Filter ด้วยโปรแกรมจะมีการคำนวณทุกครั้งที่มีการ Filter ควรปรับการคำนวณเป็น Manual เสียก่อนที่จะทำการ Filter จะช่วยให้ทำงานเร็วขึ้นครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Tue Oct 18, 2011 8:48 am
by prawitj
Q1: ขอโทษครับ ผมตัด Col แล้วลืมแก้ จริงๆตอนนี้จาก P มันย้ายมาอยู่ที่ H ครับ col ที่ชื่อว่า "Is Index redundant "
Q2: ใบ Revised ของ Runnumber ใดๆ ดูที่ col D (จำนวนครั้งที่ Revise) เช่น Runnumber ที่ 5400288 ใบ New เข้ามาครั้งแรก จำนวนครั้งที่ Revise จะเป็น "00" PO index จะเกิดจาก Runnumber&Revised number (C&D) = 5400288 และ col E () เริ่มต้นจะเป็น "N" (No revised) พอ PO runnumber 5400288 ถูก Revised เช่นเปลี่ยนรุ่นรถ ทางผมต้องการเก็บ Record แรกไว้ดูว่าเค้าเปลี่ยนจากรุ่นอะไรเป็นอะไร เลยต้องขึ้นแถวใหม่ แต่ Runnumber เก่า ดังนั้น จำนวนครั้งที่ถูก Revised จะเปลี่ยนเป็น 01 (Revised ครั้งที่1) Index คือ 540028801 P/O ถูก Revise(Y=Yes, N= No) เป็น "N" ดังนั้น ต้องกลับไปเปลี่ยน col E (P/O ถูก Revise(Y=Yes, N= No)) ของ PO index 540028800 เป็น "Y" ซึ่งตอนแรกผม hadle ด้วยคน แต่ไม่ไหวเวลานำไปใช้ทำ Report จำนวนมันไม่ตรงซักที เพราะ Human error เยอะเหลือเกิน เช่นลืมไปเปลี่ยนเลยอยากให้เปลี่ยนอัตโนมัติ แต่ดันอยาก Sorting ด้วยน่ะสิครับ
คำถามเพิ่มเติม
หากใช้ Vlookup แล้วมีการ Filter ด้วยโปรแกรมจะมีการคำนวณทุกครั้งที่มีการ Filter ควรปรับการคำนวณเป็น Manual เสียก่อนที่จะทำการ Filter จะช่วยให้ทำงานเร็วขึ้นครับ ปรับเป็น manual ยังไงครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Tue Oct 18, 2011 8:49 am
by prawitj
File ใหม่ที่ปรับแล้วครับ ให้ดูที่ sheet PO นะครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Tue Oct 18, 2011 10:13 am
by snasui

ค่อย ๆ ถามตอบกันไปนะครับ
ตามความเข้าใจผม เมื่อมีการสร้าง PO index ขึ้นมาใหม่ ให้รายการเดิมแสดง Y ส่วนรายการใหม่แสดงเป็น N
ที่เซลล์ E2 คีย์
=IF(COUNTIF(A$2:A2,A2)<COUNTIF($A$2:$A$9,A2),"Y","N")
Enter > Copy ลงด้านล่าง
สำหรับการปรับเป็น Manual ให้เข้าที่เมนู Tools > Options > Calculation > Manual
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Wed Oct 19, 2011 9:06 am
by prawitj
ปัญหาเรื่อง Revised แก้ได้แล้วครับ ขอบคุณมาก
แล้วอีกปัญหาที่บอกว่าให้ขึ้น Msg box เตือนว่า Index eror ถ้าขึ้น Record ใหม่แล้วพบว่า มี Index ซ้ำซ้อนล่ะครับ หรือจริงๆ จะแก้ได้โดยที่ พิมพ์ Runnumber เช่น 5409031 มันวิ่งกลับไปตรวจเช็คทุก Record แล้วเจอว่ามี 5409031 Revision 00 มันเติมให้อัตโนมัติว่าใน้เป็น 01 ดีครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Wed Oct 19, 2011 10:34 am
by snasui

คิดว่าแนวทางที่สองตามด้านล่างนี้ดีกว่าครับ
prawitj wrote:หรือจริงๆ จะแก้ได้โดยที่ พิมพ์ Runnumber เช่น 5409031 มันวิ่งกลับไปตรวจเช็คทุก Record แล้วเจอว่ามี 5409031 Revision 00 มันเติมให้อัตโนมัติว่าใน้เป็น 01 ดีครับ
ลองตามนี้ ที่เซลล์ D2 คีย์
=TEXT(COUNTIF(C$2:C2,C2)-1,"00")
Enter > Copy ลงด้านล่าง แล้วปรับใช้ตามต้องการครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Wed Oct 19, 2011 11:21 am
by prawitj
ได้แล้วครับ ขอบคุณอาจารย์มากครับ อยากเลี้ยงข้าวจังครับ ไม่ได้อาจารย์นี่แย่เลย
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Wed Oct 19, 2011 11:42 am
by prawitj
เอ๊ะ แต่ถ้ามันมีการ Sorting Revision ก้เพี้ยนสิครับ
อีกคำถามครับ การ Calculate แบบ Auto ผมเข้าใจว่ามันจะ Cal ทุกครั้งเวลา Filter แล้วถ้าเราไปใช้แบบ Manual แล้วหากเราต้องการ Get Data ต้องทำอย่างไรครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Wed Oct 19, 2011 11:48 am
by snasui

การใช้สูตรลักษณะดังกล่าว ถ้าไม่จำเป็นเราไม่ Sort ครับ ถ้าจะ Sort ควร Copy แบบ Value ไปทำที่ชีทอื่น ๆ แทน เพื่อป้องกันสูตรเสียหาย
สำหรับการคำนวณใหม่หลังจากปรับการคำนวณเป็น Manual ให้กดแป้น
F9 ครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Wed Oct 19, 2011 12:25 pm
by prawitj
ขอบคุณครับ
ถามครับ แล้วการปรับเป็น manual มันจะไปกระทบกับการ Refresh ของ pivot หรือไม่ครับ
Re: อยากให้excel มันขึ้น msgbox index error แต่มันไม่ขึ้น
Posted: Wed Oct 19, 2011 1:03 pm
by snasui

ถ้าข้อมูลใน PivotTable มีการคำนวณก็จะกระทบครับ ก่อนการ Refresh PivotTable ควรที่จะกดแป้น F9 ก่อนครับ