sitrapong wrote:ครับ ข้อมูลที่ต้องการคือเป็นตัวเลข มันจะมีตัวเลขทั่งหมดที่มีอยู่(คือฐานข้อมูล) และตัวที่จะเอามาเทียบคือตัวย่อย แต่ตัวย่อยพวกนี้อาจมีมากกว่า1จุดก็เลยอยากให้ตัวเลขที่มีมากกว่า1จุดsumรวมกัน แต่อยากได้ค่าที่สรุปจากตัวมันเองให้ตรงกันตามFileแนบไปก็เท่านั้นครับ
ส่วนสาเหตุของปัญหาผมหาเจอและคือ ตัวฐานข้อมูลมีตัวเลขไม่เพียงพอกับตัวเทียบ เลยทำให้ยอดที่ได้ไม่ตรงกับตัวที่sumมา
สรุปนะครับคือ ข้อมูลที่ต้องการหา มากกว่า ตัวที่มีอยู่ในฐานข้อมูลครับ เลยทำให้ยอดหายและไม่ตรง
ต้องขอขอบคุณอีกครั้งครับที่แนะนำ(ตั้งแต่เข้าเวปนี้มาไอ้ที่ไม่ค่อยรู้ก็รู้เยอะขึ้น ส่วนไอ้ที่ไม่รู้เลยก็พอได้รู้)
บางครั้งเห็น เพื่อนๆพี่ๆในกระทู้ถามสาเหตุที่ทำไม่ได้ พอเราเห็นหรือได้อ่านก็อยากลองศึกษาดูบ้าง บางครั้งก็สมมุติ มาถามบ้างลองดูเองบ้างก็ดีนะครับ

ถ้ายังไม่ได้คำตอบที่ต้องการ ลองแสดงโจทย์ที่ชัดเจนมาอีกครั้งครับ เบื้องต้นจากที่ดูไฟล์และอ่านปัญหามา ก็พอจะแนะนำได้ดังนี้
สร้าง Range Name เพื่อกำหนดช่วงข้อมูลที่มีอยู่จริง สามารถสร้างได้ดังนี้
ไปที่ Formula > Name Manager กด New
Range Name ที่ 1. ชื่อ main ใส่สูตร =OFFSET(Fileหลัก!$C$3,0,0,COUNTA(Fileหลัก!$C:$C)-1)
Range Name ที่ 2. ชื่อ main_qty ใส่สูตร =OFFSET(Fileหลัก!$E$3,0,0,COUNTA(Fileหลัก!$C:$C)-1)
Range Name ที่ 3. ชื่อ file_a ใส่สูตร =OFFSET(FileA!$B$3,0,0,COUNTA(FileA!$B:$B)-1)
Range Name ที่ 4. ชื่อ file_a_qty ใส่สูตร =OFFSET(FileA!$D$3,0,0,COUNTA(FileA!$B:$B)-1)
Range Name ที่ 5. ชื่อ file_b ใส่สูตร =OFFSET(FileB!$B$4,0,0,COUNTA(FileB!$B:$B)-2)
Range Name ที่ 6. ชื่อ file_b_qty ใส่สูตร =OFFSET(FileB!$D$4,0,0,COUNTA(FileB!$B:$B)-2)
ที่ชีท Fileรวม ใช้สูตรเดิม แต่เปลี่ยนช่วงข้อมูลเป็น RangeName
ที่ C2 คีย์ =SUMIF(main,$A2,main_qty) ดับเบิ้ลคลิ๊กที่มุมขวาล่างเซลล์ หรือจะคัดลอกลงมาก็ได้
ที่ D2 คีย์ =SUMIF(file_a,$A2,file_a_qty) ดับเบิ้ลคลิ๊กที่มุมขวาล่างเซลล์ หรือจะคัดลอกลงมาก็ได้
ที่ E2 คีย์ =SUMIF(file_b,$A2,file_b_qty) ดับเบิ้ลคลิ๊กที่มุมขวาล่างเซลล์ หรือจะคัดลอกลงมาก็ได้
หากข้อมูลที่ได้มายังไม่ถูกต้อง อาจจะมีสาเหตุจากการที่รหัสเดียวกัน แต่ถูกเก็บในรูปแบบที่ไม่เหมือนกัน ทำให้สูตรรวมค่าได้ผิดเช่นกันครับ สามารถแก้ไขได้ดังนี้ครับ
ที่ชีท Fileรวม
เซลล์ C2 คีย์ =SUM(IF(IFERROR(IF(main+0>=0,main+0),main)=IFERROR(IF(A2+0>=0,A2+0),A2),main_qty)) กด ctrl+shift+enter คัดลอกลงมา
เซลล์ D2 คีย์ =SUM(IF(IFERROR(IF(file_a+0>=0,file_a+0),file_a)=IFERROR(IF(A2+0>=0,A2+0),A2),file_a_qty)) กด ctrl+shift+enter คัดลอกลงมา
เซลล์ E2 คีย์ กด =SUM(IF(IFERROR(IF(file_b+0>=0,file_b+0),file_b)=IFERROR(IF(A2+0>=0,A2+0),A2),file_b_qty)) ctrl+shift+enter คัดลอกลงมา
You do not have the required permissions to view the files attached to this post.