อาจลองแบบนี้ครับ (หากใช้ไม่ได้ก็ขออภัยครับ ไม่มีคอมฯ ให้ลอง) เอาคอลัมน์ M, N, O มาช่วย
1. สร้างรายการ location ที่เข้าเงื่อนไข คือ OnHand ไม่เป็น 0 และดูจากยอดขายมากที่สุดก่อน แต่เนื่องจากยอดขายมีซ้ำกันด้วยจึงเอาเลขแถวมาช่วยครับ
ที่ M2 คีย์
Code: Select all
=IFERROR(INDEX($E$2:$E$20,MATCH(LARGE(IF($C$2:$C$20>0,--(ROUND($D$2:$D$20*100,0)&TEXT(ROW($D$2:$D$20),"000"))),ROWS(M$2:M2)),--(ROUND($D$2:$D$20*100,0)&TEXT(ROW($D$2:$D$20),"000")),0)),"")
กด Ctrl+Shift ค้าง แล้วกด Enter
2. จากนั้น หาว่า location ดังกล่าว อยู่ในตำแหน่งที่เท่าไรใน database
ที่ N2 คีย์
Code: Select all
=IFERROR(MATCH(M2,$E$2:$E$20,0),"")
3. นับจำนวน location ที่เข้าเงื่อนไขในคอลัมน์ M
ที่ N1 คีย์
4. จัดลำดับชื่อ location ในคอลัมน์ M
ที่ O2 คีย์
Code: Select all
=IF(ROWS(O$2:O2)>10,"",SUMPRODUCT(--(M2>OFFSET(M$1,1, ,$N$1)))+1)
5. คัดลอกสูตรที่ M2, N2 และ O2 ลงไปถึงแถวที่ 11 ครับ
6. ที่ G2 คีย์
Code: Select all
=IFERROR(INDEX(A$2:A$20,INDEX($N$2:$N$11,MATCH(ROWS(G$2:G2),$O$2:$O$11,0))),"")
แล้วคัดลอกสูตรที่ G2 ไปจนถึง K11 ครับ
ปล. หากสูตรใช้ไม่ได้ตั้งแต่ข้อ 1 ก็หยุดทำเลยครับ ในมือถือมันกดแบบอาร์เรย์ไม่ได้
