วันศุกร์ที่ 27 พฤษภาคม พ.ศ. 2554

LibreOffice สามารถอ้างอิงข้อมูลทั้งคอลัมน์ด้วย $A:$A ได้แล้ว

ก่อนหน้านี้การอ้างอิงข้อมูลของ OpenOffice.org นั้นต้องบอกข้อมูลเป็นช่วง เช่นถ้าต้องการจะอ้างอิงข้อมูลในคอลัมน์ A ทั้งหมด ต้องบอกเซลล์เริ่มต้นและเซลล์สุดท้ายให้ครบถ้วน เช่น A1:A1048576 ซึ่งยุ่งยาก ไม่สามารถอ้างอิงแบบ Excel คือ A:A ได้

ใน LibreOffice สามารถตั้งค่าได้ว่าการอ้างอิงนั้นจะใช้แบบ OpenOffice.org เดิม หรือเลือกใช้แบบ Excel

ปัญหานี้เป็นข้อข้องใจของผมมานานมากเพราะผมจะเอาสูตรนี้ไปประยุกต์ใช้กับ vlookup โดยใช้สูตรเพื่อสร้าง dynamic range ให้กับ vlookup
เหตุผลที่ต้องใช้วิธีนี้เพราะสูตร vlookup มีขั้นตอนนึงให้เราเลือกข้อมูลทั้งหมดที่จะใช้ทำ vlookup ถ้าคลุมข้อมูลทั้งหมดแบบปกติ และมีการเพิ่มข้อมูลที่แถวสุดท้าย สูตร vlookup จะไม่เห็นข้อมูลที่เพิ่มเข้ามาเพราะเราไม่ได้คลุมไว้ตั้งแต่แรก
จากตัวอย่างมีข้อมูลอยู่ถึงเซลล์ C6 ตัวอย่างผมใช้วิธีคลุมข้อมูล ถ้ากรณีใช้สูตรแบบนี้ แล้วเพิ่มข้อมูลในแถวที่ 7 สูตร vlookup นี้จะไม่เห็นข้อมูลในแถวที่ 7 นี่คือปัญหา

ผมเลยจำเป็นต้องสร้าง dynamic range เพื่อจะขยายช่วงข้อมูลหากมีการเพิ่มข้อมูลเข้ามา vlookup จะได้มองเห็นข้อมูลนั้น ซึ่งใน OpenOffice.org ผมจะใช้วิธีนี้
การทำ dynamic range ของผมใช้ฟังก์ชัน OFFSET ร่วมกับ COUNTA แต่ผมต้องกำหนดตำแหน่งเริ่มต้นและตำแหน่งสุดท้าย ผมคิดว่าวิธีนี้ไม่เวิร์ก เพราะไม่ต่างอะไรกันถ้าผมจะคลุมข้อมูลแบบวิธีแรกโดยคลุมเผื่อไว้กรณีมีข้อมูลเพิ่มเข้ามา และวิธีนี้ถ้าตำแหน่งที่ผมกำหนดไว้ไม่พอ ผมก็ต้องมาขยายข้อมูลอีกครั้ง ซึ่งผมว่าไม่เหมาะ

ใน LibreOffice แก้ปัญหานี้โดยการสามารถเลือกวิธีการอ้างอิงสูตรได้ โดยไปที่เมนู Tools - Options - LibreOffice Calc - Formula ด้านขวาให้เลือกแบบ Excel A1 แล้วกด OK
เมื่อเลือกเสร็จก็จะสามารถอ้างอิงแบบนี้ได้ครับ
ซึ่งผมมองว่าการอ้างอิงแบบนี้สะดวกกว่าแบบเก่า และ LibreOffice ดีตรงที่ว่าถ้าเครื่องผมตั้งแบบนี้ไว้ ไปเปิดกับเครื่องที่ตั้งเป็นรูปแบบของ OpenOffice.org โปรแกรมจะแปลงค่าให้สามารถใช้งานกับเครื่องนั้นทันที

การอ้างอิงแบบนี้สามารถไปใช้ประโยชน์อย่างอื่นได้อีกมากมายครับ

เพิ่มความรักให้แก่กันด้วยการสัมผัส

ก่อนหน้านี้ผมเคยได้ยินผู้เชี่ยวชาญพูดว่า การสัมผัสเป็นการเพิ่มความรู้สึกที่ดีให้แก่กัน ตอนแรกผมไม่ได้ใส่ใจกับคำแนะนำนี้สักเท่าไร และบอกเลยว่าสิ่งที่ผมทำ และจะเล่าให้ฟังนี้ก็ไม่ได้ทำตามทฤษฎีนี้หรอก แต่พอมานึกย้อนดูมันก็ตรงกับทฤษฎีจริงๆ

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

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

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

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

ผมว่าสาเหตุที่คนทะเลาะกัน มีปัญหากันแล้วเลิกลากันไป นั่นเพราะเขาไม่รู้จักที่จะใช้การสัมผัส เพื่อปรับความเข้าใจกัน พอทะเลาะกันก็ไม่มองหน้ากัน ตบ ตี กัน คงมีคนไม่มากนัก ที่เวลาทะเลาะแล้วมานั่งจับมือกันเหมือนผม ^__^ คงมีลูกอีกหลายคนที่เวลาป่วย นอนรอการสัมผัสจากพ่อแม่ แต่พ่อแม่กลับทำแต่งานจนไม่มีเวลาแม้แต่จะถามลูกสักคำว่าเป็นอย่างไรบ้าง

ผมถือว่าโชคดีที่ได้รับการสัมผัสจากพ่อแม่ด้วยความรัก และผมก็พร้อมที่จะใช้การสัมผัสเพื่อบอก และเพิ่มความรู้สึกดีให้กับคนที่ผมรักต่อไป

วันเสาร์ที่ 7 พฤษภาคม พ.ศ. 2554

การใช้ Advanced Filter ใน LibreOffice

ส่วนใหญ่ในการสอน OpenOffice.org/LibreOffice ของผม มักจะไม่ค่อยได้มีโอกาสสอน Advanced Filter เท่าไร เพราะการทำงานของ AutoFilter และ Standard Filter ก็เพียงพอ และใกล้เคียงกับการทำ Advanced Filter แล้ว จึงข้ามเรื่องนี้ไป แต่ก็มีคนถามบ่อยๆ ว่ามันใช้งานอย่างไร

วันนี้มีเวลาว่างจึงขอเขียนวิธีการใช้งาน Advanced Filter แบบที่ไม่ต้องไปกำหนดค่าอะไรมากมายแล้วกันนะครับ

เริ่มจากต้องมีข้อมูลก่อน
และส่วนต่อมาคือเงื่อนไขที่จะใช้กรองข้อมูล โดยสร้างเป็นอีกตารางหนึ่ง โดยมีหัวตารางเหมือนกัน
หลังจากนั้นก็เริ่มทำการกรองข้อมูลด้วย Advanced Filter ได้ โดยการคลุมข้อมูลทั้งหมด ในที่นี่คือตั้งแต่ A1:D13 แล้วไปที่เมนู Data > Filter > Advanced Filter
ในช่องที่ให้กรอก criteria ให้เลือกข้อมูลที่เป็นเงื่อนไขที่จะใช้กรอง ในที่นี้คือเซลล์ G1:J2 แล้วกด OK ก็จะได้ผลลัพธ์จากการกรองข้อมูล
สังเกตเงื่อนไขจากตัวอย่างข้างต้น เงื่อนไข "อายุ" กับ "ส่วนสูง" อยู่ที่บรรทัดเดียวกัน มีความหมายว่า อายุ มากกว่าหรือเท่ากับ 11 และ ส่วนสูง มากกว่า 140 แต่หากลองปรับเปลี่ยนให้เงื่อนไขอยู่คนละบรรทัดกัน ความหมายก็จะเปลี่ยนทันที
จากรูปด้านบน เงื่อนไขจะเปลี่ยนเป็น อายุ มากกว่าหรือเท่ากับ 11 หรือ ส่วนสูง มากกว่า 140 ซึ่งจะได้ผลลัพธ์ดังนี้
โดยผลลัพธ์แล้ว การใช้งาน Advanced Filter จะแสดงผลลัพธ์ไม่ต่างกับ AutoFilter ธรรมดา เพียงแต่ Advanced Filter สามารถสร้างเงื่อนไขได้มากกว่าการใช้ AutoFilter หรือ Standard Filter เท่านั้นเอง

วันศุกร์ที่ 6 พฤษภาคม พ.ศ. 2554

แค่ยอมรับ ก็ยิ่งใหญ่ได้

คุณเคยยอมรับว่าตนเองผิดพลาดไหม? ถ้าวันนี้คุณทำอะไรลงไปสักอย่าง แล้วไม่ประสบความสำเร็จ คุณเคยยอมรับไหมว่าสิ่งที่คุณทำลงไปมันผิด

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

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

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

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