ตอนนี้กำลังเผา Term Project ของวิชา Social Network ครับ ลองเอา json ที่ได้จาก Graph API ของ Facebook มาแสดงผลด้วย Tableau โดยกำหนดโจทย์ขึ้นมาว่า อยากรู้ว่า Post ที่ถูกแชร์มากที่สุดเนี่ย มันถูก Post ในช่วงเวลาไหนกันนะ โดยข้อมูลที่ได้จาก Facebook อยู่ในรูปแบบ
ปี-เดือน-วัน เวลา
แต่เวลาอย่าลืม + 7 กลับเข้าไปด้วย เพราะข้อมูลที่ได้จาก Graph API มันมีลักษณะอยู่รูปแบบเวลาสากลครับ สำหรับใน Tableau สามารถแก้ได้โดย
- ใน Tab Data Source >> เลือก Column >> คลิกขวา เลือกเมนู Create Calculated Field
- จากนั้นใส่สูตร ดังนี้
--ตัวอย่าง --DATEADD('hour', 7, [ชื่อ Column]) --การใข้งานจริง DATEADD('hour', 7, [Created Time (Posts.Data)])
- ใส่สูตรลงในหน้าจอ Popup
- กด OK
ถัดมาอยากได้อีกว่า - เวลามันเป็น 17:30:23 แต่ผมอยากให้มันแสดง 5 PM หละ สามารถโดยใช้ชั้นตอน ดังนี้
- ใน Tab Data Source >> เลือก Column >> คลิกขวา เลือกเมนู Create Calculated Field
- จากนั้นใส่สูตร ดังนี้
--ตัวอย่าง --DATEPART('hour',[ชื่อ Column]) --การใช้งานจริง IF DATEPART('hour',[PostCreateDateTime]) == 1 THEN '1 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 2 THEN '2 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 3 THEN '3 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 4 THEN '4 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 5 THEN '5 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 6 THEN '6 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 7 THEN '7 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 8 THEN '8 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 9 THEN '9 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 10 THEN '10 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 11 THEN '11 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 12 THEN '12 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 13 THEN '1 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 14 THEN '2 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 15 THEN '3 AM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 16 THEN '4 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 17 THEN '5 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 18 THEN '6 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 19 THEN '7 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 20 THEN '8 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 21 THEN '9 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 22 THEN '10 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 23 THEN '11 PM' ELSEIF DATEPART('hour',[PostCreateDateTime]) == 24 THEN '12 AM' END
- ใส่สูตรลงในหน้าจอ Popup
- กด OK
ผลลัพธ์ที่ได้ครับ
แต่พอมาทำงานกับพวก Data จริง ทำไป/ทำมา เริ่มรู้สึกว่าตัวเอง ไม่ใช่สาย Data นะ
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.