[Tableau] มาจัดการกับข้อมูลเวลากันเถอะ

ตอนนี้กำลังเผา 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.