วันพุธที่ 9 มิถุนายน พ.ศ. 2553

Searching with Index Function (by Spreadsheet software)

xcช่วงนี้เข้าสู่ฤดูฝนเต็มตัวแล้ว รักษาสุขภาพกันด้วยนะครับ ตัวผมเองช่วงนี้เจออาการตาแดงสงสัยจะเป็นผลจากการย้ายห้องเมื่อตอนปลายเดือนที่ผ่านมา คงโดนฝุ่นเข้ามาทำให้ระคายเคือง วันนี้มีฟังก์ชันหนึ่งที่น่าสนใจและนำมาประยุกต์ใช้ในการค้นหาข้อมูลเพื่อนำไปประมวลผลต่อในโปรแกรมประเภท Spreadsheet โดยในบทความนี้จะอธิบายด้วย MS Excel
ฟังก์ชัน index ใน MS Excel จะคืนค่าในเซลล์ตามตำแหน่งของหลักและแถวที่กำหนดให้ โดยมีรูปแบบดังนี้
index(tableที่ค้นหาข้อมูล,หมายเลขแถว,หมายเลขหลัก)
สมมุติให้ tableที่จะค้นหาข้อมูลอยู่ใน Sheet ชื่อ table โดยมีข้อมูลดังแสดงในภาพ

หากเราต้องการค่าในหลักที่ 1 ของ table โดยต้องสัมพันธ์กับข้อมูลในหลัก B ของ sheet ชื่อ ค้นหา
โดยให้แสดงผลในเซลล์ C2โดยเขียนสูตรได้ดังนี้ =index(table!A$1:B$4,หมายเลขแถว,1)
จากสูตรจะพบว่ายังขาดหมายเลขแถวที่มีข้อมูลสัมพันธ์กับข้อมูลในหลัก B ดังนั้นจึงต้องหาตำแหน่งแถวให้ได้โดยใช้ฟังก์ชัน MATCH ซึ่งฟังก์ชัน match จะคืนค่าตำแหน่งที่สัมพันธ์กับข้อมูลที่ต้องการค้นหาโดยมีรูปแบบการใช้ดังนี้
match(ค่าที่จะค้นหา,ช่วงของเซลล์ที่จะค้นหา(ต้องติดกัน),format)
ดังนั้นหากจะหาตำแหน่งที่สัมพันธ์ของค่าในหลัก B โดยค้นในหลัก B ของตาราง จะเขียนได้ดังนี้
match(B1,table!B$1:B$4,0) ซึ่งจากคำสั่งนี้จะคืนค่าแถวที่ 3 มาให้
ดังนั้นหากใช้ร่วมกับฟังก์ชัน index ก็จะอธิบายได้ดังนี้
C1 = index(table!A$1:B$4,match(B1,table!B$1:B$4,0),1)
เมื่อ excel ประมวลผลจะดำเนินการภายในฟังก์ชัน MATCH ก่อนซึ่งจากตัวอย่างจะคืนค่า 3 มาให้ ดังนั้นในฟังก์ชัน index จะมีรูปแบบดังนี้
C1 = index(table!A$1:B$4,3,1)
และเมื่อประมวลผลฟังก์ชั่นนี้ต่อ excel ก็จะคืนค่าในเซลล์แถวที่ 3 หลัก ที่ 1 ของ table มาให้นั่นคือ 003 ให้กับ C1 ดังแสดงในภาพ



ท่านผู้อ่านจะเห็นว่าเราสามารถนำไปประยุกต์ใช้ในงานค้นหาข้อมูลได้อีกวิธีการหนึ่งนอกเหนือจากฟังก์ชัน VLOOKUP ท่านผู้อ่านสังเกตมั้ยครับว่าการค้นหาด้วยฟังก์ชัน Index มีอะไรแตกต่างจาก VLOOKUP ลองพิจารณาดูดีๆนะครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Yahoo bot last visit powered by  Ybotvisit.com