Page 1 of 1

รวมจำนวนตามเงื่อนไขที่กำหนด

Posted: Tue Jul 10, 2018 12:15 am
by Rin
เมื่อ Code Stock ในคอลัมน์ I, K, M, O, Q, S ของชีตทำคอร์สดึงยอดชำระ+ค่ามือ ตรงกับ รหัสสินค้า ในคอลัมน์ A ของชีต Product

ให้ดึงใช้ Stock ในคอลัมน์ J, L, N, P, R, T มารวมให้ตรงกับช่องรหัสสินค้า (คอลัมน์ A ของชีต Product)

Re: รวมจำนวนตามเงื่อนไขที่กำหนด

Posted: Tue Jul 10, 2018 7:00 am
by snasui
:D ควรแปลงข้อมูลต้นทางให้เป็น Database การนำรายงานมาทำรายงานสูตรจะยากมาก อาจจะไม่สามารถแก้ไขได้ด้วยตัวเองได้ครับ

ตัวอย่างสูตรตามด้านล่างเป็นการแปลงข้อมูลและหาคำตอบครับ
  1. เปิดชีตใหม่ขึ้นมา 1 ชีตให้ชื่อว่า Sheet1
  2. ที่ A1:E1 คีย์ ประทับเวลา, รหัสลูกค้า, คอร์สที่ทำ, Stock และ ใช้ ตามลำดับ
  3. ที่ A2 คีย์
    ==IF(ROWS(A$2:A2)>ROWS('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$A$2:$A$6)*COUNTIF('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$I$1:$T$1,"Code*"),"",INDEX('ทำคอร์สดึงยอดชำระ+ค่ามือ'!A$2:A$6,INT(ROWS(A$2:A2)-1)/COUNTIF('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$I$1:$T$1,"Code*")+1))
    Enter > Copy ไปด้านขวาถึง C2 แล้ว Copy ลงด้านล่าง
  4. ที่ D2 คีย์
    =IF($A2="","",OFFSET('ทำคอร์สดึงยอดชำระ+ค่ามือ'!I$2,INT((ROWS(C$2:C2)-1)/(COUNTIF('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$I$1:$T$1,"Code*"))),2*MOD((ROWS(C$2:C2)-1),COUNTIF('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$I$1:$T$1,"Code*"))))
    Enter > Copy ไปด้านขวาถึง E2 แล้ว Copy ลงด้านล่าง
  5. ที่ชีต Product เซลล์ E2 คีย์
    =SUMIF(Sheet1!$D$2:$D$31,$A2,Sheet1!$E$2:$E$31)
    Enter > Copy ลงด้านล่าง

Re: รวมจำนวนตามเงื่อนไขที่กำหนด

Posted: Tue Jul 10, 2018 6:15 pm
by Rin
ทำตามที่อาจารย์บอกแล้ว

แต่ติดปัญหาที่ Sheet1 ดึงข้อมูลจาก ชีตทำคอร์สดึงยอดชำระ+ค่ามือ มาไม่ครบค่ะ

Re: รวมจำนวนตามเงื่อนไขที่กำหนด

Posted: Tue Jul 10, 2018 6:16 pm
by Rin
ภาพประกอบค่ะ

Re: รวมจำนวนตามเงื่อนไขที่กำหนด

Posted: Tue Jul 10, 2018 6:46 pm
by snasui
:D แนบไฟล์ Excel มาด้วยจะได้ช่วยดูให้ได้ครับ

Re: รวมจำนวนตามเงื่อนไขที่กำหนด

Posted: Tue Jul 10, 2018 6:51 pm
by Rin
ไฟล์แนบค่ะ :D

Re: รวมจำนวนตามเงื่อนไขที่กำหนด

Posted: Tue Jul 10, 2018 7:04 pm
by snasui
:D ปรับสูตรที่ A2 เป็นด้านล่างครับ

=IF(ROWS(A$2:A2)>ROWS('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$A$2:$A$6)*COUNTIF('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$I$1:$T$1,"Code*"),"",INDEX('ทำคอร์สดึงยอดชำระ+ค่ามือ'!A$2:A$6,INT(ROWS(A$2:A2)-1)/COUNTIF('ทำคอร์สดึงยอดชำระ+ค่ามือ'!$I$1:$T$1,"Code*")+1))

Enter > Copy ลงด้านล่าง

การ Copy ให้ Copy ไปจนเห็นผลลัพธ์เป็นเซลล์ว่าง ไม่เช่นนั้นจะได้ข้อมูลไม่ครบครับ สูตรในโพสต์ #2 ด้านบนไม่ Update ผมได้กลับไป Update ให้เรียบร้อยแล้วครับ