You are currently viewing Join Excel กับ QGIS

Join Excel กับ QGIS

  • Post category:QGIS

join excel กับ qgis หรือจะเป็น Access กับ QGIS (หรือ ArcMap) ทำได้ง่าย ๆ เพียงไม่กี่คลิก

มีท่านหนึ่งสอบถามเรื่อง การเชื่อม ราคาประเมินทุนทรัพย์ที่ดิน ที่ได้รับจาก กรมธนารักษ์ กับ ข้อมูลทะเบียนที่ดินและ Shapefile ที่ได้รับจากกรมที่ดินจะเอามาเชื่อมต่อกันได้อย่างไร

เชื่อมบัญชีราคาประเมินทุนทรัพย์ กับ shapefile

ในขั้นแรก เรามีข้อมูล 2 ประเภท คือ ข้อมูลราคาประเมินฯ จะเป็น Excel ข้อมูลที่ดิน เป็น Text File (ซึ่งจะนำเข้า Excel หรือ Access ก็ได้) และ Shapefile

ทุกสิ่งอย่าง จะเชื่อมโยงกันได้ ก็ต้องมีจุดเชื่อมโยงให้เชื่อมกันได้ก่อน ซึ่งจากที่ผู้ปรึกษาถามนั้น ตอบได้ว่า อย่างแรก ต้องหา key สำหรับเชื่อมโยงระหว่างกัน ต้องดูว่ามีอะไรเป็นจุดร่วมที่เอามาเชื่อมกันได้ โดยเราจะต้องสร้างข้อมูลขึ้นมา 1 ชุด เพื่อใช้เป็นตัวเชื่อมโยงระหว่างข้อมูลแต่ละตาราง ซึ่งในเรื่องนี้พิจารณาแล้วว่าควรจะสร้างตัวเชื่อมโยงจาก “ระวางภูมิประเทศ-ระวางยูทีเอ็ม-แผ่น-มาตราส่วน-เลขที่ดิน” เช่น  “5135I-1478-15-1000-965”

ต้องอธิบายก่อนว่า ทางกรมธนารักษ์ จะมีข้อมูลราคาประเมิน ที่มีเลขโฉนด กับ ที่ไม่มีเลขโฉนด (ที่เรียกว่า บัญชีเรียงเลขที่ดิน) ดังนั้นจึงไม่สามารถใช้เลขโฉนดเป็นตัวเชื่อมข้อมูลได้ เพราะราคาบางแปลงจะไม่มีเลขโฉนดเอาไปเชื่อมกับข้อมูลของกรมที่ดิน ซึ่งจะอัปเดตข้อมูลล่าสุดมากกว่าของกรมธนารักษ์แน่นอน

เมื่อพิจารณาข้อมูลทั้งหมดแล้ว สิ่งที่มีเหมือนกันทุกตารางข้อมูลคือ ระวางแผนที่ มาตราส่วน และเลขที่ดินในแผนที่ ดังนั้นจะยึดเอาระวางแผ่นเลขที่ดินเหล่านี้เป็น key ในการเชื่อมข้อมูล โดยตั้งสมมติฐานว่า จะไม่มีการให้เลขที่ดินซ้ำกัน

โดยจะต้องจัดให้เป็นรูปแบบเดียวกันเพื่อความสะดวก และจัดการต่อได้ง่ายในภายหลัง ซึ่งถ้าเป็นแผนที่มาตราส่วน 1:4000 จะไม่มีแผ่น ก็จะใส่ 00 แทน และช่องมาตราส่วนจะเอา “1:” ออกไป เพื่อไม่ให้ยาวเกินจำเป็น (เพราะที่ทำอยู่นี่ก็ยาวแล้ว)

สร้าง Key สำหรับการเชื่อมโยง

การทำคีย์ไม่ยาก ข้อมูลราคาประเมินที่ทางกรมธนารักษ์ส่งให้เป็นไฟล์ Excel อยู่แล้ว ก็ใช้การเชื่อมระหว่าง cell ด้วย “&” ธรรมดา ๆ นี่เอง (เช่น A1&”-“&A2 เป็นต้น)

 หรือ จะใช้ CONCATENATE ก็ได้ (ในตัวอย่างใช้ CONCATENATE)

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

ส่วนวิธีการนั้น จะใช้ Vlookup หรือว่า index and match หรือ Xlookup เพื่อดึงข้อมูลราคาประเมินเข้าไปเทียบกับข้อมูลทะเบียนที่ดินจากกรมที่ดิน ก็จะได้ข้อมูลทะเบียนที่ดินพร้อมราคาประเมินฯ

ตัวอย่างการใช้ index and match ในการดึงข้อมูลทะเบียนที่ดินกับราคาประเมินฯ

เมื่อได้แล้ว ก็ save as เป็น txt หรือ csv เพื่อใช้เชื่อมโยงเข้ากับ shapefile อีกครั้งหนึ่ง ตรงนี้จะใช้เป็น txt หรือ csv ก็ไม่ต่างกัน ถ้าเป็น txt อาจจะเลือกเป็นแบบ tab delimited ก็ได้ (ใช้ tab เป็นตัวคั่นกลาง)

หรือจะใช้ CSV มันก็เป็น text ประเภทหนึ่งที่ใช้จุลภาค (comma ,) เป็นตัวคั่นกลาง จะเลือกแบบไหนก็แล้วแต่ความชอบ เพียงแต่ว่าเวลาเปิดไฟล์ใน QGIS เวลานำเข้าให้เลือกตรงตามประเภทที่เราส่งออกจาก excel ก็พอ

Join Excel กับ QGIS

ขั้นต่อมาคือการ Join excel กับ qgis นั่นคือ จะเชื่อม Shepefile จากกรมที่ดิน กับ ราคาประเมินทุนทรัพย์ที่ดิน จากกรมธนารักษ์ (ซึ่งเชื่อมข้อมูลที่ดินแล้ว) โดยใช้ QGIS อันนี้วิธีการก็ไม่ต่างจากทำใน ArcGIS แต่เห็นว่า QGIS เป็นที่นิยมมากกว่าเพราะเป็นฟรีซอต์แวร์ ก็เลยแนะนำอันนี้

ก่อนอื่นต้องนำไฟล์ txt หรือ csv เข้า QGIS ก่อน กดตรง open data source manager แล้วเลือกตามประเภทไฟล์ที่จะนำเข้า ถ้าเป็น csv คลิกเลือก csv ถ้าเป็น text ให้เลือก Custom delimiter แล้วเลือกตรง tab หรืออะไรที่ใช้เป็นตัวคั่นคอลัมน์

สร้าง key ใน QGIS

นำ Shapefile เข้า QGIS คลิกขวาเปิด Attribute Table ขึ้นมา คลิก สร้าง Field ใหม่ สำหรับใช้เป็น key เพื่อเชื่อมโยงข้อมูล

Join Excel กับ QGIS

ใช้คำสั่งเชื่อมเช่นเดียวกับใน Excel ลองดูตัวอย่าง

Join ข้อมูล

จากนั้นก็เชื่อมข้อมูล โดยใช้ key ที่สร้างไว้  คลิกขวาที่ชั้น shapefile > เลือกแท็บ Join > คลิก + เพื่อเพิ่มการ join แล้วเลือกชั้นข้อมูล txt ที่ต้องการ join เลือก key หรือตัวเชื่อมข้อมูลที่ทำไว้ (ตัวอย่างตั้งชื่อหัวคอลัมน์หรือหัวฟิลด์ว่า key ทั้งสองตาราง) จากนั้นคลิก โอเค

เสร็จแล้ว จากที่เห็นนี้ แปลงที่ไม่มีราคาประเมินก็สามารถเทียบเคียงแปลงข้างเคียงได้ง่าย ๆ นี่คือตัวอย่างการ join excel – qgis แบบคร่าว ๆ หากยังมีข้อสงสัยตรงไหนสอบถามเพิ่มเติมได้