Page 1 of 1

สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 3:16 pm
by Student01
ต้องการสรุปการรับสินค้าของพนักงานแต่ละคน
จากข้อมูลตารางด้านซ้ายมือ เป็นตารางด้านขวามือ
หากมีการรับรหัสสินค้าเดียวกันในวันเดียวกันก็ให้รวมจำนวนเป็นยอดเดียว

Re: สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 3:27 pm
by puriwutpokin
ที่ J4=IF(H4="","",SUMIFS($D$4:$D$30,$B$4:$B$30,H4,$C$4:$C$30,I4)) แล้วคัดลอกสูตรไปยังเซล คอลัมน์ที่เป็จจำนวนสินค้า เช่น M4 ... แล้วคัดลอกลงครับ

Re: สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 3:58 pm
by Student01
แต่ต้องการให้ดึงข้อมูลทั้งรหัสพนักงาน รหัสสินค้าและวันที่รับสินค้า จากตารางด้านซ้ายมือ มาใส่ในตารางด้านขวามือด้วยอะครับ


ต้องขอโทษด้วยที่บอกความต้องการมาไม่ครบถ้วน

Re: สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 4:39 pm
by Bo_ry
H4
=IF(G4="","",IFERROR(INDEX($B:$D,AGGREGATE(15,6,ROW($A$4:$A$22)/($A$4:$A$22=$G4),INT((COLUMNS($H4:H4)+2)/3)),MOD((COLUMNS($H4:H4)-1),3)+1),""))

ลากขวาลากลง

Re: สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 4:49 pm
by Student01
Bo_ry wrote: Mon Mar 25, 2019 4:39 pm H4
=IF(G4="","",IFERROR(INDEX($B:$D,AGGREGATE(15,6,ROW($A$4:$A$22)/($A$4:$A$22=$G4),INT((COLUMNS($H4:H4)+2)/3)),MOD((COLUMNS($H4:H4)-1),3)+1),""))

ลากขวาลากลง

ข้อมูลยังไม่ถูกต้องตามที่ต้องการนะครับ
รบกวนอีกหน่อยนะครับ

ตอนนี้ข้อมูลของพนักงาน C ซึ่งมีรหัสสินค้าเดียวกัน ต้องรวมเป็นรหัสเดียวกันนะครับ
ข้อมูลพนักงาน D ต้องแสดงเป็นช่องเดียวกันเพราะรหัสสินค้าเดียวกัน

ตามตัวอย่างที่แนบมาให้ครับ

Re: สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 7:03 pm
by Bo_ry
H4
=IF($G4="","",IFERROR(IF(MOD((COLUMNS($H4:H4)),3),INDEX($B:$D,AGGREGATE(15,6,ROW($A$1:$A$99)/(($A$1:$A$99=$G4)*MATCH($A$1:$A$99&$B$1:$B$99&$C$1:$C$99,INDEX($A$1:$A$99&$B$1:$B$99&$C$1:$C$99,),)=ROW($A$1:$A$99)),INT((COLUMNS($H4:H4)+2)/3)),MOD((COLUMNS($H4:H4)-1),3)+1),1/(1/SUMIFS($D:$D,$A:$A,$G4,$B:$B,F4,$C:$C,G4))),""))

อันนี้ไม่มีใน Data เลยเติมให้เหมือน
A 1006 2/1/2019 8

Re: สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 9:06 pm
by Student01
ขอบคุณมากครับ ใช้ได้ตรงความต้องการแล้วครับ

ขอสอบถามเพิ่มเติม
ข้อมูลมีอยู่ประมาณ 1,500 แถว (Rows)
ประมวลผลนานมากๆ เลยครับ

พอจะมีวิธีไหนที่สามารถ ลดการประมวลผลให้เร็วกว่านี้ไหมครับ

Re: สรุปการรับสินค้าของพนักงาน

Posted: Mon Mar 25, 2019 10:05 pm
by Bo_ry
ต้องใช้ column ช่วย

E4 ลากลง
=MATCH(B4&C4,INDEX($B$1:$B$2000&$C$1:$C$2000,),)

H4
=IF($G4="","",IFERROR(IF(MOD((COLUMNS($H4:H4)),3),INDEX($B:$D,AGGREGATE(15,6,ROW($E$1:$E$2000)/(FREQUENCY($E$4:$E$2000*($A$4:$A$2000=$G4),ROW($E$1:$E$2000))>0),INT((COLUMNS($H4:H4)+5)/3)),MOD((COLUMNS($H4:H4)-1),3)+1),1/(1/SUMIFS($D:$D,$A:$A,$G4,$B:$B,F4,$C:$C,G4))),""))

Re: สรุปการรับสินค้าของพนักงาน

Posted: Tue Mar 26, 2019 8:46 am
by Student01
ขอบคุณครับ ใช้ได้ตามตรงการแล้วครับ