ทำแผนที่ด้วย Power BI สไตล์นักภูมิศาสตร์

ปัจจุบัน Power BI ได้รับความนิยมอย่างมากในการทำ Dashboard เพื่อนำเสนอให้กับผู้บริหาร หัวหน้างาน หรือผู้ที่มีส่วนได้ส่วนเสีย(Stakeholder) ที่สำคัญใช้ฟรีนะ

จะดีกว่าไหม ถ้า Dashboard นั้นมีแผนที่(Maps) เข้าไปด้วย เพราะว่าแผนที่มีข้อดี คือ ทำให้ผู้บริหาร, หัวหน้างาน หรือคนที่อ่าน Dashboard เราเห็นภาพมากยิ่งขึ้น ชัดขึ้นในเชิงพื้นที่ ตอบคำถามได้ว่า ที่ไหนยอดขายดี ที่ไหนยอดขายตก อยู่ตรงไหนของประเทศ

Photo by Atypeek Dgn on Pexels.com

อ่านมาถึงตรงนี้ ใครอยากทำแผนที่ให้แสดงบน Power BI ได้ขอให้ยกมือขึ้น 55555555+ หยอกเล่นนะครับ

มาต่อกันครับ แผนที่ที่สร้างมานั้น เราสามารถคลิกที่พื้นที่ไหน ข้อมูลก็เปลี่ยนตามเลยนะ เจ๋งไหม เราว่าเจ๋งนะ เพราะแต่ก่อนทำในโปรแกรม ArcMap แล้ว Capture มาใส่ Power Point ทีละ short เพื่อนำเสนอ (งานหยาบไหมล่ะ 555)

ดีหน่อย Power BI เข้ามาแล้ว ซึ่งเราอยากได้พื้นที่ไหน เราสามารถ Custom เองได้เลย ไม่ว่าจะเป็น แสดงตามจังหวัด, อำเภอ, ตำบล, ภาค เฉพาะจังหวัด, กรุงเทพและปริมณฑล เป็นต้น

เกริ่นซะยืดยาว มาเริ่มทำกันเลยดีกว่า ลุยยยยยยยยยยยยยยยยยยยย !!!

ให้ดูภาพสุดท้ายที่เราจะได้

เนื้อหา Table of content

ขั้นตอนการทำ

สิ่งที่เราต้องใช้จะมีด้วยกันทั้งหมด 3 ไฟล์นะครับ 1. Shape File เพื่อแปลง 2. Topo JSON และ 3. Excel File มาเริ่มกันเลย

1. เตรียม Shape File และ Excel File

1.1 เตรียม Shape File (.shp)

เลือกขอบเขตการปกครอง หรือพื้นที่ที่เราต้องการ ในบทความนี้ขอยกตัวอย่างง่ายๆ ก่อน เริ่มจากเตรียม Shape File ดังนี้

ขอบเขตการปกครองระดับจังหวัด (Province)

ซึ่งเราสามารถโหลดได้หมดเลยนะครับ จาก Website เหมือนภาพด้านล่างนี้ จะมีทั้ง จังหวัด อำเภอ ตำบล หรือใครอยากทำประเทศอื่นก็มี ลองเลือกหากันดูได้

ที่มาไฟล์ โหลดได้ฟรี >> https://data.humdata.org/dataset/cod-ab-tha?

โหลดมาแล้ว ให้ทำการ Delete Fields ที่ไม่ได้ใช้ออก แต่ขอให้เหลือไว้ ADM1_EN กับ ADM1_TH ที่เหลือจะลบหรือไม่ลบก็ได้ จากนั้นให้ Export ออกมาเป็น Text File(.txt) เพื่อจะแปลงเป็น Excel ต่อไป

ADM1_EN กับ ADM1_TH ชื่อ Fields(Column) สามารถเปลี่ยนได้ ไม่จำเป็นต้องตรงกันกับ Shape File หรือ Topo JSON File แต่ข้อมูลในตัวอย่างรูปด้านล่าง ชื่อจังหวัดทั้งภาษาไทยและภาษาอังกฤษห้ามเปลี่ยนนะครับ ตัวนี้ต้องตรงกัน

ข้อมูลใน Attribute

สรุปขั้นตอนเตรียม Shape File เราแค่ลบ Fields(Colum) ที่ไม่ได้ใช้ออก แล้วไปแปลงเป็น Topo JSON และ Export ข้อมูลใน Attribute เป็น Excel รอเอาไว้

1.2 เตรียม Excel File

ต่อมาเรามาทำข้อมูลใน Excel กัน เริ่มจากเปิด Open ไฟล์ Text นามสกุล .txt มาจากนั้นให้กด Save as เป็น .txt ตั้งชื่ออะไรก็ได้ให้ไม่ซ้ำกับของเดิม ส่วนใหญ่ผมจะใส่ต่อจากชื่อเดิมเป็น 2 แทน เช่น province2.txt

แล้วกดบันทึก มาปรับตรง Encoding ก่อน เพื่อให้อ่านภาษาไทยได้ เลือกเป็น UTF-8 with BOM เหมือนภาพด้านล่าง

เคล็ดลับทำให้อ่านภาษาไทยออกตอนแปลงไฟล์

จากนั้นก็กดเปิดไฟล์ที่บันทึกไว้ล่าสุด ให้คลิกขวา Open with Excel แล้วจากนั้นก็บันทึกเป็นไฟล์ Excel นะครับ

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

Excel ที่เตรียมไว้เบื้องต้น

2. แปลง Shape File เป็น Topo JSON

เราอยากได้ Polygon แบบไหนให้เราจัดการใน ArcMap หรือ QGis ให้เรียบร้อย เช่น อยากได้แบบภาคตะวันออก ภาคกลาง กรุงเทพปริมณฑล ให้ทำการ Dissolve ให้เสร็จ แล้วให้ข้อมูลใน Attribute ชื่อตรงกันกับ Excel File

ต่อมาทำการแปลง Shape File ให้เป็น Topo JSON

ขั้นตอนกด Import files >> Select file >> shape file ที่จะทำการแปลง

คลิกเลย >>> https://mapshaper.org

เมื่อได้ตามภาพด้านล่างแล้ว ให้ไปที่มุมขวาด้านบน มองหาคำว่า Export

เลือก File format >> Topo JSON >> Export >> เลือกที่เก็บในเครื่องเรา

เป็นอันเสร็จเรียบร้อย ไปขั้นตอนต่อไปได้เลย

3. เปิดสิทธิ์ให้ Power BI มองเห็นแผนที่ก่อน

ไปที่เมนู File >> Options and Settings >> Options >> Preview Features >> Shape map visual เลือกให้ขึ้นเครื่องหมายถูกดังภาพด้านล่าง

เปิดสิทธิ์ให้ Power Bi เห็นแผนที่ (1)

จากนั้นให้มองไปที่เครื่องมือ Visualizations จะปรากฎเมนู Shape map เพิ่มเติมขึ้นมา เหมือนภาพด้านล่างนี้เลย ถ้าขึ้นแบบนี้แล้วไปขั้นตอนต่อไปเลยนะ

เปิดสิทธิ์ให้ Power BI เห็นแผนที่ (2)

4. ทำแผนที่ Power BI

ใกล้แล้วทุกคน ใกล้เสร็จแล้ว ต่อมาเราจะทำให้แผนที่แสดงบน Power BI แล้วนะ ตื่นเต้น ตื่นเต้น อีกนิดเดียวนะครับ มาลุยกันต่อ

4.1 Connect Excel File

ทำการ Import Data จาก Excel เข้ามา ซึ่งไฟล์นี้จะเป็นไฟล์ที่ชื่อว่า province ข้อมูลระดับจังหวัดนั่นเอง ซึ่งไฟล์นี้ ทุกคนสามารถไปเพิ่มข้อมูลด้านอื่นๆเข้ามาใส่ได้ เช่น ยอดขาย รายได้ หรือ ข้อมูลอื่นเข้ามา

ไปที่แถบ Home >> Excel workbook >> เลือกไฟล์ที่เราเตรียมไว้ >> Open ดังภาพด้านล่าง

ต่อมาให้เรากดในแถบด้านซ้ายขึ้นเครื่องหมายถูกสีเขียว จากนั้นกด Load เข้ามา หรือจะกด Transform Data เพื่อทำการ Prep Data เดี๋ยวจะเขียนในโอกาสต่อไปนะครับ

ไฟล์นั้นก็จะจะปรากฎในแถบ Data และชื่อ province ซึ่งเราสามารถเปลี่ยนได้นะครับ

4.2 เลือก Map

จากนั้นไปที่ Tab Visualizations >> Shape Map

จะปรากฎแบบในกรอบสีแดงนะครับ

จากนั้นไปที่ Tab Data >> Province >> Province_TH มาใส่ใน Tab >> Tab Visualizations >> Location (คลิกค้างแล้วลากวาง) เหมือนในภาพด้านล่าง

จากนั้นแผนที่ก็จะแสดงเป็นประเทศสหรัฐอเมริกา(ตามกรอบสีแดง) แต่ไม่ต้องตกใจ เดี๋ยวเราจะแก้ให้ประเทศไทย หรือตามไฟล์ของเรา

ต่อมาไปที่ Tab Visualizations >> Format your visual สัญลักษณ์ที่มีพู่กันและมีกราฟแท่งสีเขียว เหมือนภาพด้านล่าง แล้วเลือก Map settings

ต่อมาเลือกตรงที่ USA: states ปรับเป็น Custom map (Map Type)

ต่อมา Add a map type >> Browse >> เลือกไฟล์ JSON ของเรา

ก็จะได้แผนที่ประเทศไทยที่แสดงขอบเขตการปกครองระดับจังหวัดเรียบร้อย ต่อมาเราก็สามารถปรับแก้ความสวยงาม สี ได้แล้ว

ทีนี้ก็ลองทำ Dashboard โดยใส่ข้อมูลตัวเลข ค่าต่างๆ เข้ามาประกอบ ลองใส่กราฟแท่ง กราฟเส้น กราฟวงกลม หรือใส่ card ดูนะครับ

เมื่อเราคลิกที่จังหวัดใดจังหวัดหนึ่งข้อมูลก็จะเปลี่ยนตามที่เราคลิก ในภาพผมคลิกที่จังหวัดขอนแก่น ข้อมูลก็จะแสดงเน้นเฉพาะที่เราเลือกเลยครับ

สรุป

มาถึงตรงนี้ เราจะเห็นแผนที่สวยๆ ใน Dashboard แล้วซึ่งการเตรียมไฟล์นี้เราก็จะเตรียมแค่ครั้งเดียวนะครับสำหรับไฟล์ JSON ส่วน Excel เราปรับแก้ข้อมูลได้หากข้อมูลมีการเพิ่มหรือลบออก ก็แค่กด Refresh Data

หรือใครอยากจะแสดงขอบเขตจังหวัดนั้นๆ แล้วแสดงขอบเขตเป็นอำเภอ หรือ ตำบลนั้นก็ได้ เช่น ต้องการแสดงจังหวัดขอนแก่นแค่ 1 จังหวัดแต่ขอบเขตการปกครองให้แสดงอำเภอต่าง หรือ ตำบล ต่างๆ ก็ได้

หรือใครมีข้อมูลที่เป็นพิกัด Latitude Longitude ก็เอามาแสดงซ้อนกับแผนที่นี้ได้ด้วยนะครับ จะทำให้เห็นภาพไปอีก จะเห็นความสัมพันธ์เชิงพื้นที่เบื้องต้น

เป็นไงบ้างใครทำได้หรือไม่ได้ Comment บอกกันได้นะครับ ลุยยยยย !!!! หวังว่าจะเป็นประโยชน์นะครับ ขอบคุณที่อ่านมาถึงตรงนี้

Downloads File

แสดงขอบเขตระดับจังหวัด (Province) >> DOWNLOAD

แสดงขอบเขตระดับอำเภอ (District) >> DOWNLOAD

ขอบคุณแหล่งที่มา ศึกษาเพิ่มเติมได้

https://learn.microsoft.com/en-us/power-bi/visuals/desktop-shape-map?source=recommendations

https://learn.microsoft.com/en-us/power-bi/visuals/power-bi-map-tips-and-tricks