วันเสาร์ที่ 25 มิถุนายน พ.ศ. 2554

การใช้ excel คิดค่าไฟฟ้าเพื่อประหยัดไฟฟ้า

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

  1. ทำรายการอุปกรณ์ไฟฟ้าในบ้าน
  2. จดบันทึกกำลังไฟฟ้าของอุปกรณ์ไฟฟ้าแต่ละรายการ

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

P = E/t (1)

เมื่อ P คือกำลัง(watt) E คือพลังงาน (J) t คือ เวลา (sec.)

โดยทั่วไปข้อมูลด้านเทคนิคของอุปกรณ์ไฟฟ้าที่ท่านผู้อ่านต้องพิจารณาเมื่อจะซื้ออุปกรณ์ไฟฟ้ามีดังนี้ครับ

  1. ความต่างศักดิ์
  2. กระแสไฟฟ้า
  3. ความถี่
  4. กำลังไฟฟ้า

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

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

Unit = 1,000 (watt)* 1 hr = 1 kWh ( kWh อ่านว่า kilo-watt-hour) (2)

1 Unit = 1 kWh

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

พลังงานไฟฟ้าที่ใช้ต่อวัน (kWh) = Pอุปกรณ์(watt)*จำนวนอุปกรณ์*ชั่วโมงการใช้ต่อวัน/1,000

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

คิดค่าไฟฟ้า

ภาพที่ 1 รูปแบบการใช้ excel ก่อนการคิดค่าไฟฟ้า

การใส่สูตร excel เพื่อคิดค่าไฟฟ้า

ในช่อง F2 ให้ท่านผู้อ่านใส่สูตร excel ดังนี้ครับ = C2*D2*E2/1000

จากนั้นก็ copy สูตรการคิดค่าไฟฟ้าไปยังแถวด้านล่างต่อไปจะได้ผลดังแสดงในภาพที่ 2

ประหยัดพลังงาน

ภาพที่ 2 ผลการคิดค่าไฟฟ้าด้วยสูตร excel

พลังงานไฟฟ้าที่คำนวณได้ ท่านผู้อ่านต้องนำไปเทียบกับตารางการคิดค่าไฟฟ้า ซึ่งเป็นการคิดแบบขั้นบันได ต่อไปครับ

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

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

วันอังคารที่ 21 มิถุนายน พ.ศ. 2554

การใช้ excel : ใส่ลำดับเลขอัตโนมัติกรณีรายการแต่ละแถวเรียงกันแบบไม่ต่อเนื่องโดยใช้สูตร excel if

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


ภาพที่ 1 ผลการใช้สูตร excel if เดิม IF(B3 <>"",A2+1,””)

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

COUNT(value1,value2,….) โดยสูตร excel COUNT จะคืนจำนวนเซลล์ที่มีค่าเป็นตัวเลขกลับคืนมาให้

เรามาปรับการใช้สูตร excel กันใหม่ดังนี้ครับ

IF(B3<>””,COUNT($A$2:A2)+1,””)

$A$2 เป็นการกำหนดจุดเริ่มต้นในการนับจำนวนแถว

ทำการ copy สูตร excel ใน A3 ลงไปให้ครอบคลุมช่วงใช้งานในหลัก A ครับ

ผลการใช้สูตร excel if เป็นไปดังภาพที่ 2 ครับ


ภาพที่ 2 ผลการแก้ไขสูตร excel if

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

วันพฤหัสบดีที่ 16 มิถุนายน พ.ศ. 2554

การใช้ excel : การใส่ลำดับเลขแบบอัตโนมัติด้วยการใช้สูตร excel if

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

ตัวอย่างการใช้สูตร excel if

ภาพที่ 1 ตัวอย่างการบันทึกรายการค่าใช้จ่าย

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

จากภาพที่ 1 หากต้องการเพิ่มหมายเลขลำดับแบบอัตโนมัติอันดับแรกจะต้องตรวจสอบข้อมูลใน หลัก C โดยหากข้อมูลหลัก C ไม่ว่างก็ให้บวกลำดับเลขก่อนหน้านี้ด้วย 1 เอาหล่ะครับ เรามาดูการใส่สูตร excel กันเลยครับ

ก่อนอื่นจะต้องกำหนดค่าลำดับเลขในแถวที่ สองก่อน จากนั้นใน Cells A3 จะใส่สูตร excel ได้ดังนี้

= IF(C3 <> “” , A2 + 1 , “”)

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

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

บทความที่เกี่ยวข้อง

การคำนวณอัตราการสิ้นเปลืองพลังงาน โดยใช้สูตร Excel if

วันอาทิตย์ที่ 12 มิถุนายน พ.ศ. 2554

การใช้ excel ช่วยวิเคราะห์อัตราการสิ้นเปลืองน้ำมันของรถยนต์ (Fuel Consumption)

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

การใส่สูตร excel

ภาพที่ 1 ระดับน้ำมันเชื้อเพลิง

เมื่อต้องการคำนวณอัตราการสิ้นเปลืองเชื้อเพลิง จะเริ่มจากเมื่อรถยนต์มีน้ำมันในระดับที่ 1 ให้นำรถยนต์เข้าไปเติมน้ำมันให้เต็มถังในสภาวะที่ 2 ในสภาวะนี้ให้ผู้ใช้รถยนต์บันทึกเลขไมล์ระยะทางการใช้ ณ เวลานั้น ผมกำหนดให้เป็นค่า D1 (หากเป็นรถยนต์รุ่นใหม่ๆอาจจะมีตัวเลือก Set zero เพื่อวัดระยะทางการใช้ในแต่ละครั้ง) จากนั้นผู้ใช้ก็นำรถยนต์ไปใช้งานตามปกติครับจนกระทั่งถึงเวลาที่ต้องเติมน้ำมันอีกครั้ง สมมุติว่าระดับน้ำมันอยู่ในสภาวะที่ 3 เมื่อน้ำรถยนต์เข้าปั๊มน้ำมันอีกครั้งให้ท่านผู้ใช้รถยนต์บันทึกเลขไมล์ระยะทางการใช้ ณ เวลานั้น ผมกำหนดให้เป็นค่า D2 จากนั้นให้ท่านเติมน้ำมันจนเต็มถังอีกครั้งหนึ่ง เราจะทราบปริมาณของการใช้น้ำมันครั้งที่ผ่านได้ โดยปริมาณน้ำมันที่ใช้จะเท่ากับขนาดของแท่งสีเขียวในสภาวะที่ 4 นั่นเอง ปริมาณน้ำมันที่ใช้ผมจะกำหนดให้เป็นค่า V ดังนั้นเราสามารถคำนวณอัตราการสิ้นเปลืองน้ำมันของรถยนต์ได้ตามสมการที่ 1 ครับ

อัตราการสิ้นเปลืองน้ำมันหรือเชื้อเพลิง = (D2-D1) /V (1)

หน่วยเป็น กิโลเมตรต่อลิตร

จากที่ได้อธิบายมาเราสามารถใช้ excel ช่วยในการคำนวณได้ โดยการใส่สูตร excel มาดูกันเลยครับ

เนื่องจากในการเติมน้ำมันแต่ละครั้งท่านผู้อ่านอาจจะเติมน้ำมันเชื้อเพลิงต่างชนิดกัน ดังนั้น การใส่สูตร excel ของผมจะคำนึงถึงชนิดของน้ำมันด้วยครับ สมมุติว่าเราจะเติมน้ำมันเชื้อเพลิงแค่ 2 ชนิดคือ โซล์ฮอล์ 95 และ 91 ดังนั้นเราจะใช้การใส่สูตร excel if มาช่วยในการคัดกรองชนิดของน้ำมันเชื้อเพลิงกันครับ มาดูการใส่สูตร excel ของเรากันเลยครับ ดังภาพที่ 2

การใส่สูตร excel-1

ภาพที่ 2 ผลการคำนวณอัตราการสิ้นเปลืองพลังงาน

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

วันเสาร์ที่ 11 มิถุนายน พ.ศ. 2554

การใช้ excel : การใช้สูตร excel if ใน vba

การใช้ Excel ในบทความนี้จะเป็นบทความต่อจากการใช้คำสั่งควบคุม For…Next และ Do While….Loop จากที่ได้กล่าวไว้ก่อนจบบทความที่ผ่านมา หากมีเงื่อนไขให้หาผลรวมเฉพาะค่าใน Cells ที่เป็นบวกเท่านั้น หากกล่าวถึงเงื่อนไข ใน excel เราจะพบการใช้สูตร excel if เข้ามาช่วยในการจัดการโดย สูตร excel if มีรูปแบบดังนี้

IF(condition,value if true,value if false) ซึ่งท่านผู้อ่านจะพบว่าสูตร excel if จะตรวจสอบเงื่อนไขก่อน เพื่อแยกดำเนินการตามเงื่อนไขจริงหรือเท็จ ดังนั้น ในการใช้สูตร if ใน vba ก็จะมีรูปแบบคล้ายกัน มาดูโค้ดกันเลยครับ

dim sum as double

for i = 1 to 3

sum = 0

for j = 1 to 3

if Cells(i,j) > 0 then sum = sum + Cells(i,j)

next j

Cells(i,j) = sum

next i

ลอง รันมาโคร ดูครับ

จะได้ผลลัพธ์ดังภาพที่ 1

การใช้สูตร excel ifภาพที่ 1 ผลการรันมาโคร การใช้สูตร if

รูปแบบของสูตร if มีสามรูปแบบดังนี้

กรณีมีสองเงื่อนไขและต้องดำเนินการทั้งสองเงื่อนไข

If (condition) then

‘หากเงื่อนไขสูตร if เป็นจริง

else

‘หากเงื่อนไขสูตร if เป็นเท็จ

endif

กรณีมีหลายเงื่อนไข

If (condition) then

‘หากเงื่อนไขสูตร if เป็นจริง

elseif (condition) then

‘หากเงื่อนไขสูตร elseif เป็นเท็จ

else

‘หากเงื่อนไขสูตร if เป็นเท็จ

endif

กรณีมีสองเงื่อนไขและต้องดำเนินการทั้งสองเงื่อนไข

If (condition) then ‘หากเงื่อนไขสูตร if เป็นจริง

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

สุดท้ายเฉลยโจทย์ที่ฝากไว้ครับ มาดูการใช้สูตร excel if กันเลย

dim sum_pos as double

dim sum_nag as double

for i = 1 to 3

sum_pos = 0

sum_nag = 0

for j = 1 to 3

if Cells(i,j) >= 0 then

sum_pos = sum_pos + Cells(i,j)

else

sum_nag = sum_nag + Cells(i,j)

endif

next j

Cells(i,j) = sum_pos

Cells(i,j+1) = sum_nag

next i

วันพฤหัสบดีที่ 9 มิถุนายน พ.ศ. 2554

การใช้ excel : Reading and writing data from Cells (2)

การใช้ excel ตอนนี้จะต่อจากบทความเรื่อง การใช้ excel : Reading and writing data from Cells in vba ครับ บทความนี้จะมาว่าถึงการใช้ คำสั่งควบคุมใน vba excel ในการเข้าถึงข้อมูลในเซลล์ครับ โดยจะใช้ฟังก์ชัน Cells กันครับ

คำสั่งควบคุมคำสั่งแรกที่ใช้ก็คือ For…Next มีรูปแบบการใช้งานดังนี้ครับ

For initial value To End value Step stepvalue

‘Do some thing

Next

สมมุติผมมีข้อมูลใน worksheet ดังภาพที่ 1 ครับ หากต้องการหาผลบวกในแต่ละแถวต้องทำอย่างไร หากคิดแบบมนุษย์ก็คงคิดได้ดังนี้ครับ เข้าไปอ่านค่าในเซลล์ที่ 1 และหาผลบวกรวมจนสิ้นสุดที่เซลล์ C1 จากนั้นนำผลลัพธ์ที่ได้ไปแสดงที่เซลล์ D1 จากนั้นก็ดำเนินการในแถวที่ 2 และ 3 ในทำนองเดียวกัน

จะเห็นว่าเป็นการคำนวณแบบซ้ำๆกัน แบบนี้เราสามารถใช้ For…Next ได้ ไปดูโค้ดใน vba กันครับ

Dim sum As Integer

For i = 1 To 3 Step 1

sum = 0 ‘กำหนดให้ตัวแปร sum เป็นศูนย์ทุกครั้งที่ขึ้นแถวใหม่

For j = 1 To 3 Step 1 ‘ท่องไปตามหลักต่างๆ ตั้งแต่ A-C

sum = sum + Cells(i,j)

Next j

Cells(i,j) = sum ‘แสดงผลลัพธ์ในเซลล์ Di

Next i

การใช้ Excel ภาพที่ 1 ข้อมูลใน excel

ผลการคำนวณด้วย vba excel ครับ

ผลการใช้ excel

ภาพที่ 2 ผลการคำนวณใน excel

จากตัวอย่างท่านผู้อ่านจะเห็นว่าในปัญหานี้เราทราบจำนวนของข้อมูลที่แน่นอนดังนั้น For..next จึงใช้งานได้ง่าย ปัญหาคือหากเราไม่ทราบจำนวนของข้อมูลที่ต้องการคำนวณแต่เราทราบจุดเริ่มต้นของชุดข้อมูลดังกล่าว คำสั่ง Do While…Loop เป็นตัวเลือกที่ดีในการใช้งาน excel ครับมาดูโค้ดใน vba excel กันเลย

Dim sum As Integer
j = 1
i = 1
Do While Cells(i, j) <> ""
sum = 0
Do While Cells(i, j) <> ""
sum = sum + Cells(i, j)
j = j + 1
Loop
Cells(i, j) = sum
i = i + 1
j = 1
Loop

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

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

วันพุธที่ 8 มิถุนายน พ.ศ. 2554

การใช้ excel : Reading and writing data from Cells in vba excel (1)

การใช้ excel ในบทความนี้จะกล่าวถึงการอ่านและการบันทึกข้อมูลลง Cells ใน worksheet ของไฟล์ excel โดยการเขียนโปรแกรมใน vba ตามที่ได้กล่าวถึงแนวคิดและหลักการ vba excel ไปแล้วในบทความก่อนๆ ซึ่งสิ่งหนึ่งที่ต้องนำเข้าไปดำเนินการภายในฟังก์ชันหรือมาโครก็คือ ข้อมูล(Data) จาก Cells และเมื่อฟังก์ชันหรือมาโครดำเนินการเสร็จแล้วอาจจะต้องแสดงผลให้ผู้ใช้ได้ทราบผ่าน Cells ใน worksheet วิธีการอ้างถึง worksheet และ การอ้างถึง workbook ผมได้นำเสนอไปแล้วในบทความที่ผ่านมาเช่นกัน หากมองโคงสร้างข้อมูลใน excel file เราจะพบว่า Cells เป็นระดับข้อมูลที่อยู่ต่ำสุด เมื่อนำทุกๆ Cells มารวมกันก็จะเกิดเป็น Worksheets และ Worksheets หลายๆแผ่นมารวมกันก็จะกลายเป็น Workbook (Excel file) การเข้าถึงข้อมูลใน Cells ใช้ฟังก์ชันใน vba ได้สองฟังก์ชันคือ

  1. Range(Cellsname)
  2. Cells(Rowindex,Columnindex)

การใช้ฟังก์ชัน Range

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

Range(“A1”).Activate

ActiveCell.Value = 15

‘เป็นการกำหนดให้เซลล์ A1 มีค่าเท่ากับ 15

a = ActiveCell.Value

‘เป็นการอ่านข้อมูลในเซลล์ A1 และนำมาเก็บไว้ที่ตัวแปร a

บางครั้งเราใช้ฟังก์ชัน Range ในการกำหนดคุณสมบัติของเซลล์นั้นๆได้ เช่น

Range(“A1:A10”).Activate

ActiveCell.Font.Bold = True

‘เป็นการกำหนดให้เซล์ A1 – A10 มีคุณสมบัติของ Font เป็นตัวหนา

การใช้ฟังก์ชัน Cells

ฟังก์ชันนี้ใช้ง่ายเลยครับเหมาะสำหรับการเขียนมาโครเพื่อทำงานมาก ตามรูปแบบของฟังก์ชันเราจะอ้างถึงเซลล์ด้วยหมายเลขแถวและหมายเลขหลักครับ ในการใช้ excel เราจะพบว่า excel จะกำหนดตำแหน่งของหลักด้วยตัวอักษรครับ โดยเรียงลำดับไปเรื่อยๆตั้งแต่ A ซึ่งจะหมายถึงหลักที่ 1 ในขณะที่แถวจะใช้ตัวเลขในการกำหนดตำแหน่ง ดังนั้นหากเรากล่าวถึงเซลล์ B3 จะหมายถึงเซลล์ในหลักที่ 2 แถวที่ 3 ซึ่งหากใช้ฟังก์ชัน Cells ก็สามารถเขียนได้ดังนี้

Cells(3,2) ‘ หมายถึง B3

มาดูการใช้งานกันครับ

การกำหนดข้อมูลลงในเซลล์ B3 ให้เท่ากับ 15

Cells(3,2) = 15

การอ่านข้อมูลในเซลล์ B3 และนำมาเก็บไว้ในตัวแปร a

a = Cell(3,2)

จะเห็นว่าฟังก์ชัน Cells ดูไปดูมามันก็คืออาเรย์นั่นเองครับ พอเป็นอาเรย์ก็ง่ายขึ้นเยอะครับในการจัดการเพราะเราจะอ้างถึงมันด้วย Index นั่นเอง เอาหล่ะครับมาถึงตอนนี้เราก็สามารถเข้าไปถึงข้อมูลในระดับต่ำสุดของ excel แล้วนะครับ เดี๋ยวบทความต่อไปผมจะนำเสนอการเขียนมาโครเพื่อเข้าไปจัดการข้อมูลต่างๆในแต่ละเซลล์โดยอาศัยคำสั่งควบคุมของ vba ก็พวก for next ,do while ทำนองนั้นหล่ะครับ ซึ่งจะทำให้มาโครของเรามีประสิทธิภาพสูง

Yahoo bot last visit powered by  Ybotvisit.com