Category: Excel ในชีวิตประจำวัน

Excel tip: Dynamic Cell Reference

26 January 2010

หลังจากไม่ได้เขียนอะไรเกี่ยวกับ Excel มาพักใหญ่ เพราะว่ามัวแต่ไปทำ เว็บ SharePoint.in.TH อีกทั้งไม่ได้ใช้งาน Excel เท่าไหร่ด้วย  วันนี้ก็ถึงฤกษ์งามยามดี มีคำถามจากน้องในออฟฟิต เกี่ยวกับการทำ Dynamic Cell Reference พอดี ใครยังนึกภาพไม่ออก มาดูภาพกันก่อน

อ่านต่อ »

No Tags

Excel กับ SharePoint : รวม How to ภาคหนึ่ง

6 March 2009

หายไปนานอีกแล้วคับ แต่ไม่ได้หายไปไหนไกล ก็ไปอัพเดทบล็อกที่เพิ่งเปิดไป เมื่อวันเกิดผมที่ผ่านมานี่เอง และพอดีว่าเป็นบทความที่เกี่ยวข้องกับ Excel อยู่พอสมควร แต่จะพิเศษตรงที่ว่า เป็นการใช้ Excel ทำงานร่วมกับ SharePoint ครับ ซึ่ง ผมเลยรวบรวม Link มา

โดยบทความจะเป็นลักษณะ How to สอนให้ใช้งานเป็นแบบ เป็นขั้นตอนหวังว่า แฟนๆ excel ที่ต้องยุ่งกับ sharepoint คงจะชอบกันนะครับผม

, , ,

How to Use Excel – ตอบปัญหาน้องผึ้ง

18 April 2008

จริงๆแล้ววันนี้ไม่มีเรื่องอัปเดท แต่ว่าก็เหมือนฟ้าเป็นใจให้น้องผึ้งถามคำถามมาเลยเอามาแปะไว้ในเว็บซะเลย ตอนแรกจะแก้ปัญหาด้วย สูตรแต่ว่า คิดไปคิดมา เออมีวิธีง่ายกว่าลุยเลยแล้วกัน

 deleteblankcell_1.JPG

ดูกันต่อ คำบรรยายอยู่ในภาพแล้ว

 deleteblankcell_2.JPG

ขั้นสุดท้าย (เร็วมั๊ย???)

deleteblankcell_3.JPG

นี่อาจไม่ใช่วิธีที่ดีที่สุด เพื่อนๆ คนไหนที่มีวิธีเด็ดดวง (โห่ภาษาเก่าชะมัด) ก็ส่งมาแจมกันได้นะครับ มาดึงพลัง Excel ออกมากันเถอะ

, ,

Copy สูตรทันใจ ไม่ต้องลากให้เมื่อย

25 March 2008

หายไปนานเลยผม กลับมาคราวนี้เอา ทริ๊กดีๆ ง่ายๆมาฝากอีกแล้ว เป็นกันคัดลอกสูตร แบบรวดเร็วทันใจโดยไม่ต้องขยับเมาส์ ให้ข้อเสื่อม มาดูกันดีกว่า

โดยปกติแล้วเวลาที่เราต้องคัดลอกสูตรเราก็จะสร้างสูตรที่หัว คอลัมน์ใช่หรือเปล่าครับ แล้วก้อบรรจงเอาเมาส์ไปจิ้มแล้วลาก พรืดๆ ลงมา ปัญหาก็อยู่ทีว่า มันจะเกินบ้างขาดบ้าง (เพราะหยุดไม่ทัน)  แล้วยิ่งเวลามีแถวข้อมูลเยอะๆแล้วด้วย ยิ่งแย่ใหญ่ ลากเมาส์เกรงข้อมือกันจน ข้อแทบเสื่อม ปัญหาเหล่านี่จะหมดใจ ถ้าคุณ double click เมาส์เป็นครับ ยังไงกัน ยังไงกัน มาดูรูปดีกว่า อ่านต่อ »

No Tags

ว่าด้วยเรื่องการ Trim

11 November 2007

หลายๆคนที่ใช้ excel คงเคยเจอปัญหาที่ ข้อมูลในที่ import มาจาก Text File ประเภท Fixed Lenght มันจะมี ช่องว่างที่เราไม่ต้องการอยู่ (มักจะออกมาจากระบบ อื่นซะมากกว่าที่จะเกิดการการพิมพ์เข้าไป) มาดูตัวอย่างกันดีกว่า

trim1_12.JPG

จากรูปตัวอย่าง ด้านบน ใน item ที่ 1 มีการเคาะช่องว่าง สามครั้ง ให้สังเกตช่อง Length นะครับ ว่า มันนับได้ว่าข้อมูลในช่อง C4 มีความยาว 7 หน่วย ทั้งๆที่เราเห็นว่า มีแค่สีตัว ส่วน item ที่ 2 มีการเคาะ space ด้านหน้า สามครั้ง (อันนี้สังเกตง่ายหน่อย)

แต่ส่วนใหญ่แล้ว ข้อมูลแบบ item ที่ 1 จะเกิดได้มากกว่า ส่วนแบบ item ที่ 2 น่าจะเกิดจาก คนคีย์ข้อมูลเข้าไป หรือไม่ก็ก็อบมาแปะ

แต่คงจะไม่ดีแน่ ถ้าเราต้องมาจัดการ ค่อยๆ ลบที่ละตัวที่จะช่วยตัดช่องว่างทั้งด้านหน้า และด้านหลัง ของ ตัวหนังสือในเซลล์ที่เราต้องการ (ลองนึกดูนะคับว่า ถ้าข้อมูลมีเป็นหมื่นแถว จะมานั่งไล่ทีละตัว) โชคดีที่ มีคำสั่ง TRIM อยู่ มาดูการใช้เลยดีกว่า

trim1_2.JPG

รูปด้านบนก็เป็นผลลัพธ์ ครับ ถ้าเราดูที่ช่อง Length after Trim จะเห็นว่า ความยาวของตัวอักษรก็เท่ากับที่มันควรจะเป็นครับ

เจ้าช่องว่างพวกนี้เอง พอเราจะเอาข้อมูลไปใช้ด้วยการ match แบบต่างๆ ก็จะทำให้มีปัญหาไปด้วย เช่น ถ้าเราเอาต้องเอาค่าพวกนี้ไปเป็นตัวที่ใช้สำหรับ LookUP ในคำสั่ง VLookUP ครับ แต่Trim จะจัดการกับช่องว่าง (space) เท่านั้นนะครับ ส่วนตัวอักษณ พวกที่ทำตัว เหมือน space Trim จะจัดการไม่ได้ ซึ่งส่วน มากจะเป็นตัวอักษณ ที่มีค่าใน ASCII code เกิน 127 ครับ ซึ่งหน้าตาเป็นยังไงเนี๊ยะ คร่าวหน้าผมจะมาเล่าให้ฟังต่อนะครับ

,

กระโดดได้ดังใจ ไม่ต้องพึ่งหนู (เมาส์) – ภาคจบ

12 October 2007

สวัสดีครับ กลับมาแล้วครับ สำหรับใครที่อาจจะนั่งรอ ผมกลับมาคุยเรื่อง เจ้าโปรแกรม Excelกันต่อ หลังจากโดนเทศกาล Hello Ahmedabad แทรกตัวไปหลายตอน และผ่านการดองมานาน ไม่ให้เสียเวลาเริ่มกันเลยดีกว่า

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

จากคราวที่แล้วที่ผมทิ้งไว้ว่า ให้ไปลองเล่น ชีทที่สองของ ไฟล์ jumping.xls ได้ไปเล่นกันหรือยังครับ? ถ้าลองแล้วสังเกตอะไรกันได้บ้างหรือเปล่าเอ่ย?

จำไม่ได้แล้วหละสิ งั้นมาทำตามผมดีกว่านะ…

ตอนนี้ไฟล์ เริ่มจากจุด “B2″ นะครับ เอาหละ ผมอยากให้ลองเลือก บริเวณให้ครอบคลุม ไปถึง cell ที่เขียนว่า “คอลัมน์ขวาล่าง” ครับ
นั่นแน่ๆ ยังเอื้อมมือไปจับเมาส์กันอยู่หรือปล่าว ใช่แล้ว ปุ่ม Ctrl กับ ลูกศรก็พอนะครับ
ต้องกดลง กี่ครั้งครับ สองครั้งใช้มั๊ยครับ เอาใหม่ๆ

คราวนี้ลองย้ายไปจุดเริ่มต้นไปที่ “AD2″ ครับ ต่อไปลองเลือกพื้นที่ ให้คลุมไปถึง cell ที่เขียนว่า “บรรทัดสุดท้าย” ครับ
แปลกมั๊ยครับว่าทำไมกดลูกศรลงแค่ทีเดียว ก้อได้บริเวณพื้นที่เท่า ครั้งแรกเลย

ทำไมหละ???

เฉลย คือ เนื่องจากทางด้านซ้ายมือสุดนั้นมันมี “จุดสกัด” อยุ่ครับ คือ cell ที่ชื่อว่า “บรรทัดกลาง”
ฉะนั้นแล้วเพื่อเป็นการเพิ่มประสิทธิภาพในการ กระโดดของเรา เราอาจจะต้องจิตนาการภาพของตัวข้อมูลของเราด้วยนะครับว่า หน้าตาเป็นแบบไหน
หวังว่า หลายๆคนจะเริ่มใช้ excel ได้เร็วขึ้นไม่มากก้อน้อยนะครับ

สวัสดี

,

กระโดดได้ดังใจ ไม่ต้องพึ่งหนู (เมาส์) – ภาคหนึ่ง

4 September 2007

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

แล้วคุณเคยลำบากหรือหงุดหงิด กับการใช้เมาส์หรือเปล่าหละ???

แน่นอน ไม่ใช่เพราะเมาส์เสียหรือไปใช้ เมาส์แสงบนกระจกแน่นอน อ้าว แล้วจะหงุดหงิดเมื่อไหร่ดีหละ…. ผมให้เวลาคิดนิดนึง

เฉลยดีกว่า คุณเคยต้องใช้ ไฟล์ excel ที่มีข้อมูลที่มีบรรทัดเยอะๆหรือเปล่าคับ พอพูดถึงตรงนี้ หลายคงคงเริ่มขยาด กับการ ไถเมาส์ไป ไถเมาส์มาเพื่อเลือกข้อมูลบางหรือ ว่าถูกลูกกลิ้งไปเืพื่อไปให้ถึงบรรทัดสุดท้าย แล้วใช่มั๊ยหละ

ก่อนที่ผมจะบอกอะไรต่อ download ไฟล์นี้ไปก่อนดีกว่าครับ jumping.xls

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

เอาใหม่ครับ เรามากระโดดไปหากันดีกว่า ก่อนอื่นเอา เคอร์เซอร์ ไปวาง ไว้ที่จุดแรก ที่ผมวางไว้ก่อน ใครลืมแล้ว ก็ปิดไฟล์โดยไม่ต้อง save นะครับ (ผมล้อเล่น มันอยู่ที่ B2 ครับ)

ที่จะเขียนต่อไปคงต้องอ่านแล้วจำก่อน ไปทำนะครับ

เมื่อ เคอร์เซอร์ มาอยู่ที่จุดเริ่มต้นแล้ว ลองมองหา ปุ่ม Ctrl บนแป้นพิมพ์ครับ ใช่แล้ว กดมันค้างไว้แล้วกด ลูกศร ขวาครับ คุณจะกระโดดไปที่ คอลัมน์สุดท้ายทันที

เอาใหม่ครับ ผมถามใหม่ บรรทัดสุดท้าย ของ คอลัมน์ที่คุณ อยุ่ตอนนี้ครับ อย่าเพิ่งครับ อย่างเพิ่งเอามือไปขยับเมาส์ครับ ลองนึกดูดีๆครับ คุณกระโดดไปขวาสุดด้วย Ctrl + ลูกศรขวา แล้วถ้าจะไปล่างสุดหละ ผมให้เวลานึกนิดนึง ครับ Ctrl + ลูกศรลง

เริ่มสนุกแล้วใช่หรือเปล่าครับมาต่อกันดีกว่าผมถามว่าคอลัมน์แรก ของบรรทัดสุดท้ายเขียนว่าอะไรครับ? เร็วขึั้นแล้วใช่มั๊ยครับ? ยังเือื้อมมือไปจับเมาส์อีกหรือเปล่าครับ?

ยังจำได้หรือเปล่าคับว่า บรรทัดแรก ของคอลัมแรก ผมเขียนไว้ว่าอะไร? ถ้าคำถามนี้คุณไม่ขยับเมาส์แล้ว ก้อไป ชีทที่สองได้เลยครับ แล้วลองเล่นดูนะครับ

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

นี่ก็เป็นทริก ง่ายๆ ที่หลายๆคน อาจหลงลืมไป ถ้าเราฝึกใช้จนคล่องแล้วเนี๊ยะจะทำให้คุณ เพิ่มความเร็วในการใช้ excel อีกมากที่เดียวเีชียวหละ นั้นก็หมายความว่า งานคุณจะเสร็จเร็วขึ้นแล้วก็มีเวลามาอ่าน blog ไร้สาระ ของผมต่อไงครับ

,

ขึ้นบรรทัดใหม่ดังใจ ด้วย macro

28 August 2007

วันนี้มีงานที่ต้องให้พนักงานคีย์ข้อมูลช่วยคีย์ หน้าตาเป็นดังภาพ

direction.JPG

ซึ่งจาก จุดที่ลูกศรชี้ ปกติเราต้องใช้ ปุ่ม home ช่วยในการกลับไป (อันนี้ขึ้นอยู่กับการตั้งค่า Excel ของแต่ละคน) แต่ว่า เรามองว่า ถ้าเรามี เรคคอร์ดมากว่า หมื่นเรคคอร์ดที่จะต้องคีย์เท่ากับว่า เราต้องกด ปุ่ม Home มากกว่า หมื่นครั้ง ซึ่ง ไม่น้อยเลยทีเดียว จึงคิดว่า จะต้องช่วยถอมนิ้วของเราและคีย์บอร์ดไว้นานๆ จึงจัดการปรับแต่ง excel ของเราซะนิดนึง

ขั้นแรก ไปที่ เมนู Tools -> Options – Edit แล้วปรับ ดังกรอบสีแดง เพื่อให้ทุกครั้งที่เราคีย์เสร็จแล้วกด enter เคอร์เซอร์ จะวิ่งไปทางขวามือ

option_edit.JPG

จากนั้น เราก็ไปจัดการ เพิ่ม code VBA (Visual Basic for Application) อีกสองสามบรรทัดเพื่อให้ดักจับเหตุการการเลื่อนเคอร์เซอร์ ซึ่งในที่นี้เราประยุกต์ Event Worksheet Change มาใช้งาน ซึ่งแนวความก็คือ ถ้าเคอร์เซอร์ เลื่อนไปทางขวา เกิน คอลัมน์ C เมื่อไหร่ ให้มันเด้งกลับไปที่ คอลัมน์ A ของบรรทัดถัดไปโดยพลัน

vbacode.jpg

จากภาพจะเห็นว่า Event Worksheet_Change มี Argument หนึ่งตัวคือ Target ซึ่งเป็นถูกระบุเป็น Range โดย Range จะมี properties ที่จะมาช่วยเราในงานนี้อยู่สองตัว คือ .column และ .row ในการนี้เราต้องรู้ก่อนว่า คอลัมน์ C เท่ากับ 3 ซึ่งหลังจากเรากด Enter ตอนใส่ค่าใน คอลัมน์ C เจ้า Event worksheet_change จะทำงานทันที (แต่จริงๆแล้ว มันทำงานตลอดเวลาแต่ว่า ไม่เข้าเงือนไขเลยไม่สงผลอะไร) โดยจะทำการเช็คว่า .column (ตอนกด enter ที่ คอลัมน์ C มีค่า เป็น 3) มีค่า มากกว่า 2 หรือยัง ปรากฎว่ามากว่าแล้ว จึงจัดการทำ คำสั่ง Cell Select โดยอ้างค่า แถวปัจจุบันบวกด้วย 1 และ คอลัมน์ที่ 1 ทันใด

ปล. 1 VBA code นี้จะต้อง ใส่ไว้ใน worksheet ที่เรากำลังจะคีย์งานนะครับ
ปล. 2 ลืมนึกไปว่าบางคนยังไม่เคยเข้าไปที่ VBA editor ไว้คราวหน้าจะมาพูดถึงก็แล้วกัน
ปล. 3 มีไฟล์มาให้ ลองเอาไปเล่นด้วย แต่ตอนเปิด ต้อง enable macro ก่อนนะครับ (คลิ๊กขวาที่ชื่อแล้ว save as.. ได้เลย) autonextrecord.xls

, , ,