วันอังคารที่ 30 ตุลาคม พ.ศ. 2555

ถั่วลิสง ไม่ดี

ไม่ใช่เฉพาะถั่วลิสงเท่านั้นนะครับ แต่รวมความหมายถึงพืชตระกูลถั่วต่าง ๆ (legumes) เช่น ถั่วเหลือง ถั่วแดง ถั่วแขก เป็นต้น

ถั่วลิสงมีข้อดีหลายอย่าง แต่ก็มีข้อควรระวังไว้ด้วย
 
ในสภาพที่ยังดิบ พืชตระกูลถั่วมีธรรมชาติเป็นพิษ (toxic) คือ กินดิบไม่ดี ถั่วจะมีประโยชน์ดีต้องผ่านกระบวนการทำสุก ทำให้งอก หรือหมักดองเสียก่อน เช่น ต้ม นึ่ง ทำเป็นเต้าเจี้ยว เพาะเป็นถั่วงอกเป็นต้น ซึ่งจะช่วยลดสาร  lectin และ phytate ที่มีอยู่ในอาหารหลายชนิด แต่มีมากในถั่วต่าง ๆ ให้ลดน้อยลง

Lectin จะไปกำจัดเมือก (mucous) ในลำไส้เล็ก ซึ่งทำหน้าที่ช่วยปกป้องเนื้อเยื่อ และในที่สุดก็จะส่งผลให้เกิดโรคภูมิแพ้ (autoimmune diseases) นอกจากนี้ lectin ยังทำให้เกิดอาการอาหารเป็นพิษได้อีกด้วย

สำหรับ Phytate หรือกรดไฟเตท เป็นตัวต้านการดูดซึมแคลเซี่ยม แมกนีเซียม ธาตุเหล็ก และสังกะสี ซึ่งเชื่อว่าเป็นเหตุของโรคกระดูกพรุน (osteoporosis) นอกจากนี้ กรดไฟเตทยังขัดขวางการทำงานของน้ำย่อยในการย่อยอาหาร เช่น pepsin และ amylase เป็นต้น

ข้อเสียของถั่วลิสงอย่างหนึ่งก็คือ มีสาร aflatoxins ซึ่งเพิ่มความเสี่ยงต่อโรคมะเร็ง อีกด้วย

ปัจจุบันมีแนวโภชนาการใหม่อย่างหนึ่ง คือ Paleo Diet หรือ โภชนาการมนุษย์ถ้ำ ซึ่งเชื่อกันว่าเป็นโภชนการเพื่อสุขภาพที่ดี เน้น การบริโภคอาหารธรรมชาติ เช่น ปลา ไก่ เนื้อสัตว์ ไข่ ผัก และผลไม้ เป็นต้น เน้นการไม่รับประทาน อาหารสำเร็จที่ผ่านกระบวนการผลิด เช่น ธัญพืช น้ำมัน เกลือ น้ำตาล นม และแอลกอฮอล์ เป็นต้น

โภชนาการมนุษย์ถ้า ไม่สนับสนุนการรับประทานถั่วทุกชนิด แต่ให้รับประทานอาหารทะเล (Seafood) แทน

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


อ้างอิง
http://livingsuperhuman.com/superhuman30-day-29-why-are-legumes-not-paleo/
http://www.paleoplan.com/2011/12-29/peanuts-are-not-paleo/
http://www.cbc.ca/player/AudioMobile/Mainstreet+Cape+Breton/ID/2256808426/?page=5
http://robbwolf.com/what-is-the-paleo-diet/

วันพฤหัสบดีที่ 25 ตุลาคม พ.ศ. 2555

Msgbox อ่านไม่ออก ไม่แสดงภาษาไทย ใน Access 2010 Windows 7

ใช้ VBA เขียนโค้ด เรียกให้แสดง message box โดยใช้ MsgBox() แสดงข้อความแต่อ่านไม่ออก ไม่เป็นภาษาไทย ดังภาพ



สาเหตุ

ต้นเหตุไม่ได้อยู่ที่ Access 2010 แต่เป็นที่ Windows ที่ตั้งค่าภาษา ที่ไม่ใช่ Unicode โดยไม่ได้ตั้งให้เป็นภาษาไทย


วิธีการแก้ไข

1.ไปที่ ปุ่ม Start > Control Panel (แผงควบคุม)
2. เลือก Clock, Language, and Region เพื่อเปลี่ยนภาษา
3. เลือก Change display language

4. ไปที่แถบ Administrative ที่ส่วน Language for Non-Unicode Program จะเห็นว่าไม่ใช่ภาษาไทย เช่น English (United States)
5. ให้คลิกปุ่ม Change system local...


6. เลือกภาษาไทย  Thai(Thailand)
7. กดปุ่ม OK
8. การเปลี่ยจะเกิดผลก็ต่อเมื่อมีการปิดและเปิด Windows ใหม่ เครื่องจะถามให้ปิดเครื่อง
9. ให้ตอบตกลง โดยคลิกปุ่ม Restart Now
10. เมื่อเปิด Windows ขึ้นมาใหม่ และใช้งาน Access 2010 ข้อความใน MsgBox จะเป็นภาษาไทย ดังภาพ



วันอังคารที่ 16 ตุลาคม พ.ศ. 2555

excel คำนวณวันเกษียณ ด้วย Datedif()

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


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

การคำนวณอายุ เราใช้ฟังก์ชัน Datedif()

รูปแบบการใช้งาน มีดังนี้
=DATEDIF(Date1, Date2, Interval)
  • Date1 คือ วัน เดือน ปี เริ่มต้น ข้อมูลต้องเป็นวันที่นะครับ เช่น 15/6/2551 ถ้าคำนวณหาอายุ ตัวนี้จะใช้เป็น วัน เดือน ปี เกิด
  • Date2 คือ วัน เดือน ปี สิ้นสุด ถ้าคำนวณอายุ ตัวนี้ก็คือวันที่ในปัจจุบัน ส่วนมากจะใช้ฟังก์ชัน today() แต่ดูให้ดีนะครับ ถ้ากำหนดรูปแบบเป็นแบบตะวันตก ต้องบวกด้วย 543 แต่ถ้า Excel2010 กำหนดรูปแบบวันที่เป็นแบบไทย ปีพุทธศักราช ก็แล้วไป สำหรับในแบบฟอร์ม ใช้วันที่ที่กำหนดในเซลล E2 ก็เลยไม่ต้องวิตกเรื่องนี้ (แนะนำให้ ดาวน์โหลดไฟล์ มาศึกษาดูด้วยก็ดี)
  • Interval เป็นรูปแบบที่ต้องการ เช่น จะให้เป็นปี เป็นเดือน หรือ เป็นวัน ก็ กำหนดที่นี่ เช่น "y" หมายถึง ปี "ym" หมายถึงเศษของเดือนในปีที่เหลือ และ "md" คือ วันที่เหลือจากเศษของเดือน เป็นต้น 
ถ้า Date1 มากกว่า หรือเลย Date2 ฟังก์ชัน DATEDIF() จะแสดงค่าผิดพลาดเป็น #NUM! และถ้าเขียนไม่ถูกรูปแบบวันที่ ไม่ว่าจะเป็น Date1 หรือ Date2 ก็ตามจะเกิดข้อผิดพลาด  #VALUE
 
ค่า Interval ที่ใช้ได้ มีดังนี้
 
ค่าความหมายอธิบาย
mเดือนจำนวนเดือนทั้งหมด ที่มีในระหว่างวันที่ ที่กำหนด
dวันจำนวนวันทั้งหมด ที่มีในระหว่างวันที่ ที่กำหนด
yปีจำนวนปีทั้งหมด  ที่มีในระหว่างวันที่ ที่กำหนด
ymเศษเดือนที่เหลือเศษของเดือนที่เหลือไม่ถึงปี
ydเศษวันที่เหลือปีเศษของวันที่เหลือไม่ถึงปี (เอาเศษเดือนมาคิดเป็นวัน)
mdเศษวันที่เหลือเดือนเศษของวันที่เหลือไม่ถึงเดือน

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

ค่า Interval ถ้าใส่โดยตรง ต้องอยู่ในเครื่องหมายคำพูด เช่น

=DATEDIF(Date1,Date2,"m")

แต่ถ้าอ้างอิงมาจากเซลล์อื่น ก็ไม่ต้องมีเครื่องหมายคำพูด เช่น

=DATEDIF(Date1,Date2,A1)

ในแบบฟอร์ม ใน Sheet2 บอกว่า ขอให้เอาข้อมูลมารวมกันในเซลล์เดียว ดังนั้นจึงต้องมีการรวม วัน เดือน ปี ที่คำนวณได้มาไว้ในเซลล์เดียวกัน โดยใช้เครื่องหมาย & เชื่อม เช่น

=DATEDIF(A1,B1,"y") & " ปี " & DATEDIF(A1,B1,"ym") & " เดือน "& DATEDIF(A1,B1,"md") & " วัน"

ซึ่งจะแสดง ดังนี้ เช่น   12 ปี 8  เดือน 14 วัน

ลองดาวน์โหลด แล้วศึกษาดูนะครับ

อ้างอิง
http://www.cpearson.com/excel/datedif.aspx

 

วันจันทร์ที่ 1 ตุลาคม พ.ศ. 2555

การใส่จุดหลังหัวข้อ ใน Excel 2010

โดยปกติ เราไม่สามารถใส่จุดหลังตัวเลขใน Excel ได้โดยตรง โดยเฉพาะในกรณีที่เราต้องการให้หัวข้อ ตัวเลขเรียงลำดับหัวข้อ ถ้ามีจุดต่อท้าย จะทำให้ดูง่ายขึ้น

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

ดูวีดีโอประกอบ นะครับ