
ขออธิบายเพิ่มเติมเพื่อท่านอื่น ๆ ที่ต้องการทำความเข้าใจกับสูตรลักษณะนี้ว่า ต้องเข้าใจพื้นฐานฟังก์ชั่น Index เสียก่อนจึงจะทำความเข้าใจสูตรนี้ได้ และแม้จะเข้าใจพื้นฐานมาพอควรแต่ทำความเข้าใจสูตรนี้ไม่ง่ายนักครับ
จากโจทย์นี้ ที่ต้องลำบากในการทำความเข้าใจเพราะแยกชีทเก็บข้อมูล เพื่อให้ง่ายต่อการทำรายงาน ข้อมูลหรือ Database ควรจะอยู่ในชีทเดียวกัน บันทึกต่อกันไปด้านล่างเรื่อย ๆ สามารถใช้สูตรเดียวหาค่าออกมาได้เลย นอกจากนี้สามารถสรุปเป็นรายงานด้วยความสามารถอื่น ๆ เช่น PivotTable ได้ด้วย จากตัวอย่างที่ถามมานี้ หากเพิ่มชีทออกไปอีกก็จะต้องแก้สูตรกันใหม่เรื่อยไป
กลับมาที่ Function Index จะมีไวยากรณ์คือ
=Index(ช่วงข้อมูล,บรรทัดที่ต้องการนำมาแสดง,คอลัมน์ที่ต้องการนำมาแสดง)
จะเห็นว่ามี 3 Arguments หรือ 3 ส่วนประกอบ ซึ่งสูตรที่ผมตอบไปก็มีลักษณะนี้เช่นกัน
จากสูตร =INDEX(INDIRECT(LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"})&"!"&"A:XFD"),MATCH($C2,INDIRECT(LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"})&"!"&"C:C"),0),MATCH(E$1,INDIRECT(LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"})&"!"&"1:1"),0))
ช่วงข้อมูลคือผลลัพธ์ที่ได้จากสูตร INDIRECT(LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"})&"!"&"A:XFD")
บรรทัดที่ต้องการนำมาแสดงคือผลลัพธ์ที่ได้จากสูตร MATCH($C2,INDIRECT(LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"})&"!"&"C:C"),0)
คอลัมน์ที่ต้องการนำมาแสดงคือผลลัพธ์ที่ได้จากสูตร MATCH(E$1,INDIRECT(LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"})&"!"&"1:1"),0)
เครื่องหมาย ! ในฟังก์ชั่น Indirect เป็นตัวชี้ว่า ก่อนหน้าเครื่องหมายนี้คือชื่อชีท หลังเครื่องหมายนี้คือชื่อเซลล์ คำว่า Indirect คือ เป็นทางอ้อม หรือ ไม่ใช่ทางตรง หากเขียนสูตรเป็น =Indirect("Sheet1!A5") หมายความว่าให้แสดงค่าในเซลล์ A5 ของ Sheet1
ดังนั้น จากสูตร INDIRECT(LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"})&"!"&"A:XFD") จึงสามารถแจกแจงเป็นดังนี้
- ผลลัพธ์จากสูตร LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"}) คือชื่อชีท ซึ่งสูตร LOOKUP(LEFT($C2),{"r","s"},{"rlot","slot"}) จะให้ผลลัพธ์เป็น rlot หรือ slot ก็ขึ้นอยู่กับอักขระแรกของ C2 ถ้าเป็น r ก็จะได้ชีท rlot ถ้าเป็น s ก็จะได้ชีท slot ถ้าไม่ใช่ทั้งสองอย่างก็จะเป็น #N/A ซึ่งต้องทราบความหมายของฟังก์ชั่น Lookup และ Left มาก่อนว่าทำงานอย่างไร และสามารถให้ผลลัพธ์อย่างไร
- ! คือเครื่องหมายที่บอกว่าก่อนหน้านี้คือชื่อชีทและหลังเครื่องหมายนี้คือตำแหน่งเซลล์
- A:XFD คือตำแหน่งเซลล์ ซึ่งไม่ได้ระบุบรรทัด เป็นช่วงเซลล์ของทั้ง Worksheet หากระบุเป็น 1:1 คือเฉพาะบรรทัดที่ 1 ของ Worksheet
นอกจากตามด้านบนแล้ว ต้องทำความเข้าใจว่าฟังก์ชั่น Match มีความหมายว่าอย่างไรและสามารถให้ผลลัพธ์อย่างไรอีกด้วย ซึ่งสามารถศึกษาทุกฟังก์ชั่นได้ที่
http://office.microsoft.com/th-th/excel ... aspx?CTT=1