Page 1 of 1

ดึงข้อมูลลงตามวันที่

Posted: Fri Jul 29, 2011 11:49 am
by chatsri999
เรียน อาจารย์

อาจารย์ครับผมได้รับความเดือดร้อนอีกแล้วครับ คือว่าผมแนบไฟล์ให้อาจารย์ดูด้วยครับ คือว่ามีไฟล์ชื่อดังนี้ครับ
1. SCHEDULE 2. SHIPPING
ครับ คือผมต้องการนำตัวเลขของตั้งแต่วันที่ 1 - 31/Jul/2011 จากไฟล์ที่ 2 มายังไฟล์ที่ 1 ครับโดยอ้างอิงจาก Part Code ทั้งหมดครับ ว่าถ้าตรงกับไฟล์ที่ 1 ก็ให้ดึงตัวเลขตามวันที่เลยครับ แล้วเดือนมีวันที่ไม่เท่ากัน มี 30 วันและ 31 วัน จะทำอย่างไรครับ หรือมีวิธีไหนที่อาจารย์พอจะแนะนำได้บ้างครับโดยสามารถดึงข้อมุลในลักษณะนี้ครับ

ขอบคุณมากครับ

Re: ดึงข้อมูลลงตามวันที่

Posted: Fri Jul 29, 2011 12:10 pm
by snasui
:D ลองตามนี้ครับ

1. เปิดไฟล์ทั้งสองขึ้นมาพร้อมกัน

2. ที่เซลล์ K3 ของไฟล์ SCHEDULE.xlsx คีย์สูตรตามด้านล่าง

=INDEX(SHIPPING.xls!$D$4:$AH$9,MATCH($D3,SHIPPING.xls!$A$4:$A$9,0),MATCH(K$2,SHIPPING.xls!$D$3:$AH$3,0))

Enter > Copy ไปทางขวา

Re: ดึงข้อมูลลงตามวันที่

Posted: Sun Jul 31, 2011 10:37 am
by kmb
ได้ความรู้เพิ่มเติมสำหรับการใช้ Index ขอบคุณครับ :D

Re: ดึงข้อมูลลงตามวันที่

Posted: Sun Jul 31, 2011 9:02 pm
by godman
อาจารย์ครับ สูตรของอาจารย์ข้างบน แตกต่างจาก INDEX(Sheet4!$C$2:$C$278,MATCH(1,IF($A2=Sheet4!$A$2:$A$278,IF($B2=Sheet4!$B$2:$B$278,1)),0)) ที่ผมเคยได้รับจากอาจารย์ อย่างไรบ้างครับ ใช้แทนข้างบนได้ไหมครับ

Re: ดึงข้อมูลลงตามวันที่

Posted: Sun Jul 31, 2011 9:22 pm
by snasui
:D แตกต่างกันตรง
snasui wrote:=INDEX(SHIPPING.xls!$D$4:$AH$9,MATCH($D3,SHIPPING.xls!$A$4:$A$9,0),MATCH(K$2,SHIPPING.xls!$D$3:$AH$3,0))
จะเป็นการ Lookup แบบสองทางคือทั้งบรรทัดและคอลัมน์ครับ สังเกตช่วงข้อมูลจะเป็น 3 มิติ $D$4:$AH$9 ครับ

ส่วนนี้คือการ Lookup ทางบรรทัด MATCH($D3,SHIPPING.xls!$A$4:$A$9,0) และส่วนนี้คือการ Lookup ทางคอลัมน์ MATCH(K$2,SHIPPING.xls!$D$3:$AH$3,0)

ส่วนตามด้านล่าง
godman wrote: INDEX(Sheet4!$C$2:$C$278,MATCH(1,IF($A2=Sheet4!$A$2:$A$278,IF($B2=Sheet4!$B$2:$B$278,1)),0))
เป็นการ Lookup ทางเดียวคือทางบรรทัดแต่ด้วยเงื่อนไข 2 เงื่อนไขครับ 8-)

Re: ดึงข้อมูลลงตามวันที่

Posted: Sun Jul 31, 2011 9:31 pm
by godman
อาจารย์ครับ อาจารย์เคยบอกว่า povot tabel เป็นวิธีที่รวดเร็วและสะดวกในการดูหลายมิติ ผมสนใจมากเรื่องความสามารถของ pivot table ผมก็ว่ามันสะดวกจริงๆแหละ แสดงว่าเราต้องเปลี่ยนข้อมูลไปเป็นลักษณะของ database ก่อนทุกครั้งใช่ไหมครับ แล้วสูตรที่ใช้ในการเปลี่ยนคือ พวก mod ต่างๆ ใช่ไหมครับ แล้ว pivot table มีข้อจำกัดด้านคำนวณไหมครับ หรือมีข้อจำกัดอะไรบ้างครับ

Re: ดึงข้อมูลลงตามวันที่

Posted: Sun Jul 31, 2011 10:05 pm
by snasui
:D ถูกต้องครับ เนื่องจาก PivotTable นั้นสร้างเพื่อการดูรายงานโดยเฉพาะ สามารถทำกราฟและเลือก Field จากกราฟได้โดยตรงโดยไม่ต้องมาเลือก Filed ที่ตาราง Pivot เลยก็ได้ ข้อมูลที่จะนำมาทำ PivotTable จำเป็นต้องเป็น Database และมีหัว Field ครบทุก Field จะขาด Field ใด Field หนึ่งไม่ได้

การเปลี่ยนข้อมูลให้เป็น Database ขึ้นอยู่กับข้อมูลต้นแหล่งครับว่าอยู่ในลักษณะใด Index, Mod, Int ก็เป็นฟังก์ชั่นกลุ่มหนึ่งสำหรับการนำ Report มาปรับเป็น Database ครับ เมื่อปรับเป็น Database แล้วก็ไม่ควรเก็บสูตรไว้ใน Database ควร Copy แล้วางเป็น Value เพื่อจะได้ไม่กินแรงเครื่องในการคำนวณ

ข้อจำกัดของ PivotTable หลัก ๆ ก็คงเป็นเรื่องการนำข้อมูลจากหลายแหล่งมาทำ PivotTable ครับ

เทคนิคการทำ PivotTable แบบมีประสิทธิภาพเมื่อต้องสร้าง PivotTable หลาย ๆ อันจากข้อมูลเดียวกัน คือ ให้สร้าง PivotTable จากอันที่เคยสร้างไว้แล้ว ปกติหากสร้าง PivotTable อันที่สองโปรแกรมจะถามว่าให้ใช้ต้นแบบที่มีหรือไม่ ซึ่งควรจะใช้ตามนั้น จะได้ประหยัดทรัพยากร และหากว่า PivotTable หลักมีการ Refresh PivotTable อื่น ๆ ก็จะ Refresh ตามเสมอ จะได้ไม่ต้องตาม Refresh กันทุก ๆ อัน

ปัจจุบันในรุ่น 2010 มี PowerPivot เข้ามาช่วยในการทำรายงานได้อย่างมีประสิทธิภาพเพิ่มขึ้นอย่างมหาศาล เพราะสามารถดึงข้อมูลโดยตรงมาจากฐานข้อมูล Microsoft ระบุว่าสามารถสร้าง PivotTable จากข้อมูล 100 ล้าน Record ได้อย่างไม่มีปัญหา สามารถตรวจสอบความสัมพันธ์ของตาราง สร้างความสัมพันธ์ของตารางเองได้ นอกจากนี้ยังมี Slicer เข้ามาช่วยในการทำรายงาน ทำให้การทำรายงานให้ดูสวยงามน่าใช้งานเป็นเรื่องง่ายดายขึ้นอย่างมากครับ 8-)