Page 1 of 1

วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Fri Nov 23, 2012 5:56 pm
by steviep
สวัสดีครับอาจารย์ snasui

ผมต้องการคีย์ข้อมูลลงไปใน Sheet1 แล้วต้องการให้ข้อมูลใน sheet1 ไปแสดงใน sheet ของรถแต่ละรุ่นโดยอัตโนมัติ โดยการตั้งเงื่อนไขว่าถ้าเป็นรถรุ่น Fino ให้คัดลอกข้อมูลในคอลัมA,B,C,D,E,F (rowของรถแต่ละคัน) ไปใส่ในชีท Fino โดยอัตโนมัติเลย ถ้าเป็นรถรุ่น Wave ก็ให้ดึงข้อมูลไปใส่ในชีท Wave อย่างอัตโนมัติเลย โดยที่เรียงลำดับในการดึงข้อมูลตามลำดับวันที่ครับ

ขอรบกวนอาจารย์และผู้ที่มีความรู้ด้วยนะครับ

ขอบคุณครับ

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Fri Nov 23, 2012 7:12 pm
by joo
:D ลองตามนี้ดูครับว่าตรงกับที่ต้องการหรือไม่
ที่ซีท Fino เซลล์ B1 คีย์ =COUNTIF(Sheet1!B3:B53,"Fino")
ที่ A3 คีย์ =IF(ROWS(A$3:A3)>$B$1,"",INDEX(Sheet1!A$3:A$53,SMALL(IF($A$1=Sheet1!$B$3:$B$13,ROW(Sheet1!$B$3:$B$53)-ROW(Sheet1!$B$3)+1),ROWS(A$3:A3))))
กด Ctrl+Shift+Enter พร้อมกัน คัดลอกไปทางขวาและลงด้านล่าง
ที่ซีท Wave เซลล์ B1 คีย์ =COUNTIF(Sheet1!B3:B53,"Wave")
ที่ A3 คีย์ =IF(ROWS(A$3:A3)>$B$1,"",INDEX(Sheet1!A$3:A$53,SMALL(IF($A$1=Sheet1!$B$3:$B$53,ROW(Sheet1!$B$3:$B$53)-ROW(Sheet1!$B$3)+1),ROWS(A$3:A3))))
กด Ctrl+Shift+Enter พร้อมกัน คัดลอกไปทางขวาและลงด้านล่าง
ที่ซีท Nouvo เซลล์ B1 คีย์ =COUNTIF(Sheet1!B3:B53,"Nouvo")
ที่ A3 คีย์ =IF(ROWS(A$3:A3)>$B$1,"",INDEX(Sheet1!A$3:A$53,SMALL(IF($A$1=Sheet1!$B$3:$B$53,ROW(Sheet1!$B$3:$B$53)-ROW(Sheet1!$B$3)+1),ROWS(A$3:A3))))
กด Ctrl+Shift+Enter พร้อมกัน คัดลอกไปทางขวาและลงด้านล่าง
ที่ B3:J24 อย่าลืมจัดรูปแบบเซลล์ให้เป็นแบบทั่วไปด้วยครับ

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 10:47 am
by steviep
ขอบคุณนะครับคุณ joo

สูตรที่ให้าฝช้ได้เลยแหละครับ แต่ไม่เข้าใจว่าทำไมบางชีทเมื่อใส่สูตรไปแล้วถึงขึ้น #N/A

ตอนนี้ผมกำลังศึกษาสูตรที่คุณ joo ให้มาอยู่

ยังไงก็ขอบคุณคุณ joo อีกครั้งนะครับ :D

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 10:59 am
by snasui
:D
steviep wrote:แต่ไม่เข้าใจว่าทำไมบางชีทเมื่อใส่สูตรไปแล้วถึงขึ้น #N/A
แนบตัวอย่างไฟล์ที่เป็นปัญหามาดูกันครับ

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 11:14 am
by steviep
ในชีท fino ครับที่แสดงค่า #N/A รบกวนด้วยนะครับ

ขอบคุณครับ

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 11:26 am
by snasui
:D จากเดิมสูตรที่ A3 คือ

=IF(ROWS(A$3:A3)>$B$1,"",INDEX(Sheet1!A$3:A$53,SMALL(IF($A$1=Sheet1!$B$3:$B$13,ROW(Sheet1!$B$3:$B$53)-ROW(Sheet1!$B$3)+1),ROWS(A$3:A3))))

ปรับเป็นด้านล่างครับ

=IF(ROWS(A$3:A3)>$B$1,"",INDEX(Sheet1!A$3:A$53,SMALL(IF($A$1=Sheet1!$B$3:$B$53,ROW(Sheet1!$B$3:$B$53)-ROW(Sheet1!$B$3)+1),ROWS(A$3:A3))))

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 11:42 am
by steviep
ได้แล้วครับ ขอบคุณมากเลยครับอาจารย์

แต่อยากทราบต่อว่า ถ้าเราจะใช้สูตรอื่นทำได้รึป่าวครับ แล้วทำไมถึงต้องใส่สูตร countif ในช่อง B1ด้วยล่ะครับ

จะได้เป็นการเพิ่มพูนความรู้ด้วยครับ ขอบคุณครับ :mrgreen:

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 11:46 am
by snasui
:D ทำด้วยสูตรอื่นได้แต่ต้องใช้อาศัยคอลัมน์ช่วย สูตรที่คุณ joo เขียนมาให้นี้ช่วยลดคอลัมน์ช่วยเหล่านั้นลงได้ แต่ยากต่อการทำความเข้าใจครับ

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 12:06 pm
by steviep
ขอบคุณอาจารย์ snasui มากเลยนะครับ

ผมจะขอลองทำความเข้าใจสูตรที่คุณ joo ให้มากก่อนนะครับ

ถ้าติดขัดอะไรจริงๆเดี๋ยวจะมาถามอาจารย์อีกทีนะครับ :D

Re: วิธีการคัดลอกข้อมูลอย่างมีเงื่อนไขข้ามsheet

Posted: Sat Nov 24, 2012 6:13 pm
by snasui
:o
steviep wrote:แล้วทำไมถึงต้องใส่สูตร countif ในช่อง B1ด้วยล่ะครับ
มาอ่านดูใหม่พบว่าตอบขาดอีก 1 ประเด็น ที่ต้องเขียน CountIf ที่ B1 เพื่อช่วยให้ไม่ต้องเขียนเข้าไปในสูตรทุกสูตร เพราะการทำเช่นนั้นทำให้การคำนวณช้าลงหากใช้สูตรจำนวนมากครับ