เทคนิคนี้ผมได้มาตอนที่มีความต้องการซอฟท์แวร์ตัวหนึ่งในการ monitor เหตุการณ์ผิดปรกติในระบบ โดยใช้ Event Log ของระบบมาเป็นข้อมูลเริ่มต้น แต่เนื่องจากซอฟท์แวร์ตัวนี้ราคาแพงมาก ผมเลยใช้วิธี export system log ออกมาทำกราฟมา monitor เองเป็นรายสัปดาห์
ความน่าเบื่อของงานนี้ก็คือเจ้าหน้าที่ที่ทำหน้าที่ตรวจสอบกราฟ
ต้องมานั่ง export system log ออกมาทุกสัปดาห์ หลังจากนั้นแล้วเอามาเข้า
excel (ดูตัวอย่างข้อมูลในรูปที่ 1) เพื่อเลือกเอาข้อมูลในแต่ละสัปดาห์มานับความถี่เป็นวัน แล้ว copy เจ้าข้อมูลใน 1 สัปดาห์มาทำกราฟอีกทอดหนึ่ง
(ดูรูปที่ 2) ผมเลยพยายามลดงานให้โดยใช้ Task Schedule ใน server เป็นตัว
export system log ให้อัตโนมัติ ซึ่งสามารถทำได้เป็นรายวัน
แต่การเอาข้อมูลมาสร้างกราฟให้มันเป็นรายสัปดาห์อย่างอัตโนมัตินี่จะทำอย่างไร คำตอบมีในเทคนิคนี้แล้วครับ
เริ่มแรกเราต้องสร้างตารางที่จะใช้เป็นข้อมูลในการแสดงผล (ดูรูปที่ 3) ซึ่งตารางนี้จะดึงข้อมูลมาจากตารางข้อมูลดิบในรูปที่ 1 (ตารางข้อมูลชื่อ EventLog) โดยเราจะตั้งชื่อตารางแสดงผลเป็น EventGraph จะเห็นว่าที่เซล I2 ผมจะกำหนดให้เป็นวันที่ปัจจุบันโดยใช้สูตร =TODAY() ที่ต้องกำหนดไว้ถัดจากขอบตารางเพราะเราจะทำรางข้อมูลย้อนหลัง 7 วันครับ
ใส่สูตรต่อไปนี้ลงไปที่คอลัมน์ถัดมาทางซ้ายในแถวเดียวกัน (ดูรูปที่ 4)
=I2-1
ก๊อปปี้สูตรไปทางด้านซ้ายจนครบ 7 วัน (ดูรูปที่ 5)
ขั้นตอนต่อไปคือสร้างสูตรเพื่อ
ดึงข้อมูลจากตาราง EventLog มาใส่ในตารางที่ EventGraph โดยให้จำนวน Error
ที่เกิดขึ้นในแต่ละวันด้วย สูตรที่ผมใช้คือ (ดูรูปที่ 6)
=COUNTIF(EventLog!$A:$A,EventGraph!C$2)
ผมใช้ COUNTIF() ในการนับจำนวนเซลอย่างมีเงื่อนไข โดยพารามิเตอร์แรกคือช่วงของข้อมูลที่จะนับ ในกรณีนี้เป็นคอลัมน์วันที่ของ EventLog แต่ละวัน (Transaction Date) ซึ่งเนื่องจากตาราง EventLog จะมีการใส่ข้อมูลต่อท้ายทุกวัน ผมจึงกำหนดช่วงข้อมูลเป็นคอลัมน์ A ทั้งคอลัมน์ (EventLog!$A:$A)
ส่วนพารามิเตอร์ที่สองเป็นเงื่อนไขในการนับซึ่งผมใส่ให้สูตรทำการเปรียบเทียบค่าในคอลัมน์ A กับค่าวันที่ในเซลที่บรรทัดที่ 2 ซึ่งเป็นค่าวันที่เช่นกัน ถ้าตรงกันก็ให้นับรวมไว้
จากนั้นให้พล็อตกราฟแท่งใส่ไว้ด้านล่างของตาราง ซึ่งขั้นตอนการพล็อตกราฟขอข้ามไป เพราะถึงระดับนี้แล้วเชื่อว่าเพื่อนๆน่าจะทำได้ เราจะได้กราฟหน้าตาดังรูปที่ 7 ตามข้อมูลที่เรามี
กราฟรูปนี้จะเลื่อนไปทางซ้ายทุกวัน เพราะเราใช้ค่าตั้งต้นที่เซล I2 เป็นวันปัจจุบันเสมอ หากต้องการดูข้อมูลย้อนหลังก็เพียงแต่เปลี่ยนวันที่เซล I2 เป็นวันในอดีต ตามรูปที่ 8 ผมลองเปลี่ยนเป็นวันที่ 10-Sep-09 แทน
ลองนำไปดัดแปลงใช้กับการนำเสนอในข้อมูลแบบอื่นๆได้ตามสะดวกครับ