Page 1 of 1
รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 2:28 pm
by wisit
รบกวนอาจารย์และเพื่อนๆ ช่วยทีครับ คิดมาหลายวันแล้วคิดไม่ออก คือ ผมต้องการที่จะรวมจำนวนสินค้าทั้ง 5 สินค้า คือ วอลนอก ผ้าม่านนอก ผ้าม่านใน วอลใน และผ้าม่านผลิตเอง
โดยให้แสดงผลรวมทั้งหมดของสินค้าทั้ง 5 ตัว โดยสูตรที่ต้องการจะมีเงื่อนไขว่า หากคีย์จำนวนอย่างเดียว ไม่คีย์รหัสสินค้า สูตรจะไม่คำนวณจำนวนนั้นลงไปด้วย
หมายเหตุ อยากได้สูตรแบบที่ทำให้เครื่องทำงานเร็วเพราะสูตรที่ผมทำเครื่องจะทำงานช้ามาก เพราะข้อมูลลูกค้าจะมีมากกว่านี้
Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 2:51 pm
by snasui

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

Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 3:05 pm
by wisit

ต้องขอโทษอาจารย์ด้วยครับ อาจารย์ครับผมต้องการให้แสดงผลในคอลัมน์ V, Y และ AB ครับ (ตามไฟล์ที่แนบครับ) คือ เมื่อเราคีย์ชื่อในคอลัมน์ A ในไฟล์ตัวอย่างผมคีย์ชื่อลูกค้าชื่อพี่อ๊อด คีย์บิลใบที่ 1 โดยผมกำหนดให้เป็น (1O) ครับ ซึ่งผลรวมจะแสดงในของจำนวนสินค้าจะแสดงในคอลัมน์ AB ครับ ซึ่งสูตรที่ผมทำ เวลาคีย์ข้อมูลเครื่องจะทำงานช้ามากเพราะสูตรที่ใช้มันเยอะมาก ผมจึงอยากได้สูตรแบบรวมจำนวนสินค้าที่สั่งทั้ง 5 ตัว โดยไม่ต้องรวมที่ละตัว แล้วค่อยมา SUM อีกครั้งครับ
Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 3:17 pm
by snasui

ถ้าต้องการแก้ปัญหาให้ทำงานเร็วต้องเปลี่ยนตารางข้อมูลให้เป็น Database ไม่ใช่แก้ด้วยการหาสูตรที่คำนวณเร็วแล้วจะแก้ปัญหาเช่นที่ถามมานี้ได้
สูตรธรรมดาหากใช้จำนวนมากก็ช้าได้เช่นกัน ยกตัวอย่างฟังก์ชั่นยอดฮิตเช่น Vlookup ฟังก์ชั่นเดียวไม่ต้องมีอย่างอื่นเจือปน หากใช้จำนวนมาก ไฟล์จะช้าลงอย่างมาก แต่ไฟล์นี้ใช้ Sumproduct โดยนำข้อมูลเป็นหมื่นบรรทัดมาใช้และมีหลายเงื่อนไข หากยังใช้ Excel 2003 คงจะเร็วขึ้นได้ยากหากไม่เปลี่ยนวิธีการเก็บข้อมูล
Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 3:45 pm
by wisit
ขอบคุณอาจารย์มากครับที่ให้คำแนะนำ

เดี๋ยวผมจะนำไปปรับปรุงครับ
แต่ตอนนี้ผมรบกวนอาจารย์อีกนิดครับ หากผมใช้สูตร
=SUMIF($S$3:$S$15036,V3,$D$3:$D$15036)
บ้างครั้งข้อมูลจะคำนวณผลลัพธ์ให้ผิด เช่น ผมคีย์รหัสสินค้าวอลนอก
รหัสสินค้า 05 จำนวน 50
รหัสสินค้า 03 จำนวน 50
รหัสสินค้า 09 จำนวน 50
รหัสสินค้า 15 จำนวน 50
ผลลัพธ์จะแสดงเพียงจำนวน 150 แทนที่จะแสดงจำนวน 200
เมื่อเช็คดูพบว่าข้อมูลที่คีย์เป็น Text
อาจารย์พอมีวิธีที่จะแก้สูตรข้างต้นให้สามารถแสดงผลลัพธ์ของจำนวนสินค้าให้ถูกต้อง หากข้อมูลที่คีย์จะเป็น Text ก็ตาม
Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 4:06 pm
by snasui

แก้ด้วยการคีย์จำนวนเป็น Number แทนเป็น Text ครับ หากแก้ด้วยสูตรต้องแก้ด้วย Sumproduct หรือ Sum แบบ Array ซึ่งจำทำให้ไฟล์ยิ่งช้าลงไปอีกครับ
Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 4:27 pm
by wisit
อาจารย์ครับในคอลัมน์ของจำนวน ผมได้กำหนดให้เป็น Number แทนเป็น Text โดยคลิ๊กขวามาที่ Format Cells แล้วมาที่แท็บ Number แล้วเลือกเป็น Number แต่เวลาคีย์ทำไมถึงแสดงผลลัพธ์ผิดครับอาจารย์ หรือผมเข้าไปตั้งค่าผิดครับ

Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 4:39 pm
by snasui

การเปลี่ยน Text ให้เป็น Number ด้วยการกำหนด Format จะยังไม่มีผลในทันที ต้องทำการ Edit เซลล์เสียก่อนครับ หากต้องการให้มผลในทันทีให้เปลี่ยนไปเป็นใช้ Text to columns ดูวิธีการทีนี่ครับ
wordpress/?p=315
Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 5:41 pm
by nattasiray
ผมเห็นตารางบันทึกข้อมูลแล้วพบว่าคุณใช้ตารางออกรายงาน (Crosstab) มาเก็บข้อมูล จึงสร้างปัญหามากมายกับคุณ เมื่อมีข้อมูลเพิ่มขึ้นในอนาคตต้องบันทึกไปทางขวาซึ่งผิดนิสัยการอ่านหนังสือของมนุษย์ที่ต้องอ่านขึ้นบรรทัดใหม่
ในทางปฏิบัติที่ถูกต้องควรจัดเก็บข้อมูลแบบบันทึกจากข้างบนลงข้างล่าง (ดูจากแฟ้มแนบ) แล้วแปลงเป็นตารางไดนามิกส์ด้วยคำสั่ง Data Create List หรือ Insert Table (ใน MS Excel 2007 ขึ้นมา)
รายการชื่อผู้สั่งสินค้าและรายการสินค้าควรใช้ Data Validation List เข้าช่วย เพื่อบังคับไม่ไห้กรอกข้อมูลไม่อยู่ในรายการครับ
เพิ่มฟิลด์วันเดือนปีที่สั่งของด้วยครับเผื่อในอนาคตจะสรุปว่าในแต่ละไตรมาสมีใครสั่งซื้ออะไรบ้าง ซื้อจำนวนเท่าไหร่ เป็นเงินเท่าไหร่
จากนั้นจึงใช้คำสั่ง Data PivotTable หรือ Insert PivotTable สรุปผล หรือสร้างรายงานแล้วใช้สูตร SUMIFS SUMPRODUCT สรุปผลอย่างมีเงื่อนไข
งานของคุณก็สามารถใช้ MS Access ได้ ครับ
ไม่ว่าคุณจะใช้ MS Access หรือ MS Excel เก็บข้อมูลในรูปแบบฐานข้อมูล คุณควรศึกษาวิธีการออกแบบฐานข้อมูลที่ถูกต้อง การจัดกลุ่มข้อมูล การทำนอร์มอลไลเชชัน (Normalization) ซึ่งเป็นหัวใจของการสร้างฐานข้อมูลทีเดียว
ลองหาหนังสือจัดการฐานข้อมูลด้วย Microsoft Excel 2010 มาอ่านด้วยครับ มีการสอนวิธีการออกแบบตารางบันทึกข้อมูลที่ถูกต้อง ตัวอย่างตารางบันทึกข้อมูลที่ดี การใช้ Data Validation List การสร้างตารางไดนามิกส์
Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 5:54 pm
by wisit
อาจารย์ครับ การทำ Text to columns คือ เราต้องคีย๋ข้อมูลก่อนใช่ไหมครับ และจะทำได้เพียงหนึ่งคอลัมน์ใช่ไหมครับ
ขอบคุณอาจารย์ และ คุณ nattasiray ที่ให้คำแนะนำดีๆ

Re: รวมจำนวนทุกรหัสสินค้า
Posted: Mon Jun 10, 2013 6:02 pm
by snasui
wisit wrote:อาจารย์ครับ การทำ Text to columns คือ เราต้องคีย๋ข้อมูลก่อนใช่ไหมครับ และจะทำได้เพียงหนึ่งคอลัมน์ใช่ไหมครับ

การทำ Text to columns จะต้องมีข้อมูลอยู่ก่อนครับ หากไม่มีข้อมูลไม่จำเป็นต้องทำ Text to columns เพราะทำไปก็ไม่เกิดผลใด ๆ สำหรับกรณีนี้ ที่ทำ Text to columns ก็เนื่องจากต้องการเปลี่ยน Text ให้เป็น Number เราสามารถทำได้ครั้งละ 1 คอลัมน์เท่านั้นครับ