Praneat Blog

Geeratad Thaiprasansap
Project Manager
20 Apr 2020
77939.png

Date format - Google Sheets for labour work!!

เชื่อว่าหลายๆคนน่าจะคุ้นเคยกับการทำงานกับ Google Sheets กันอยู่แล้ว ถ้าเปรียบเทียบกับโปรแกรม Client บนเครื่องคอมพิวเตอร์ก็จะเป็น Microsoft Excel หรือ Apple Numbers

ว่าด้วยเรื่อง Date Format ผมเป็นคนหนึ่งที่ชอบมีปัญหากับ Date Format ของข้อมูลที่ต้องเอามาทำงานต่ออย่างมาก เพราะ Date Format จะเป็น Format ข้อมูลที่ถูก Export มาจากระบบ หรือเป็นไปตามเครื่องที่ทำงานก่อนจะมาถึงเรา ไม่ได้ฝังอยู่ในไฟล์ที่ใช้งาน

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

วิธีแก้มีหลากหลาย การเลือกใช้แล้วแต่ความเหมาะสมของงานนั้นๆ ลองดูครับ

แก้ Format ก่อนนำข้อมูลเข้า

ก็ถูกแล้วนิ Format ผิดมาก็แก้ให้ถูกซะ ทำไมต้องคิดเยอะด้วย

  • แต่ถ้า Source file ที่ต้องต้องเอามาทำงานต่อ มีคนถือหลายคน การเปลี่ยน Format ของวันที่ในไฟล์ที่ น่าจะดูไม่ค่อยเหมาะเท่าไหร่ ยิ่งถ้าไฟล์นั้นใช้แบบ Real-time Collaboration คือทำงานพร้อมๆกันกับคนอื่นได้ ยิ่งไม่ควรเข้าไปใหญ่
  • หากต้องทำ Process นี้ซ้ำๆเวลามีข้อมูลอัพเดต ก็ดูไม่ใช่เรื่องที่ควรทำเท่าไหร่(เสียเวลา งานถึก งานกรรมกร ตามชื่อหัวข้อเลย)

แก้ Sheet Format ที่ปลายทาง (ไฟล์ที่เราทำงานต่อ)

ในเมื่อเราแก้ที่คนอื่นไม่ได้ ก็แก้ที่ตัวเองซะ(ตัดพ้อทำไม) ไปที่ File > Spreadsheet Setting… > Locale การเลือก Locale ขึ้นอยู่กับการใช้งานค่าอื่นๆด้วยนะครับ

This affects formatting details such as functions, dates, and currency.

ถ้าเปลี่ยนเป็น Thailand สิ่งที่ต้องเจอแน่ๆคือ

  • หน่วยเงินใน Sheet นั้นจะเปลี่ยนเป็น THB(฿)
  • Date Format แบบแสดงชื่อเดือนจากคำภาษาอังกฤษจะเปลี่ยนเป็นคำไทย เช่น Aug => ส.ค. ส่วนมากถ้าต้องเปลี่ยน Locale จริงๆผมจะเปลี่ยนเป็น Australia ซึ่งจะได้หน่วยเงินและวันที่เป็นคำภาษาอังกฤษเหมือนเดิม

ประกอบ Date ใหม่เองเลย

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

LEFT

=LEFT(C2,SEARCH("/",C2,1)-1)

MID

=MID(C3,SEARCH("/",C3)+1,SEARCH("/",C3,SEARCH("/",C3)+1)-SEARCH("/",C3)-1)

RIGHT

=RIGHT(C4,LEN(C4)-SEARCH("/",C4,SEARCH("/",C4)+1))

ค่าที่เราได้มาจะเป็นค่า วัน เดือน และปี จากนั้นนำมาประกอบใหม่

DATEVALUE

=DATEVALUE(RIGHT(C5,LEN(C5)-SEARCH("/",C5,SEARCH("/",C5)+1))&"-"&MID(C5,SEARCH("/",C5)+1,SEARCH("/",C5,SEARCH("/",C5)+1)-SEARCH("/",C5)-1)&"-"&LEFT(C5,SEARCH("/",C5,1)-1))

Format ของผลที่ได้ก็จะเป็นแบบเดียวกับ Format ของ Sheets นั้นๆเลย

เพิ่มเติมอีกหน่อย หากวันและเวลาที่เราได้มา ไม่ใช่เวลาประเทศไทย หรือเราต้องการเปลี่ยน Time zone ของเวลา ให้ดูว่า เวลาที่เราได้มาเป็นอะไรก่อน เช่นถ้าของเดิมเป็นเวลา +-0 แล้วต้องการเปลี่ยนเป็นไทย +7 ก็ให้เรา เอาค่าเวลาเดิม +7/24 หรือก็คือ 7 ชั่วโมง หารด้วย 24 ชั่วโมง

=B2+7/24

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

P.S. ผิดพลาดส่วนไหนขออภัยด้วยนะครับ