Page 1 of 1
สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 12:21 pm
by Totem

เรียนอาจารย์
ช่วยแก้ไขปัญหาสูตรและมีคำถามเกี่ยวกับสูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำ ดังต่อไปนี้
เงื่อนไขการนับจำนวนรายการสินค้า
1.ช่อง no + indate + name หากซ้ำมากกว่า 1 ให้นับเป็น 1
ปัญหาคำถามมีดังต่อไปนี้
1.คอลัมน์ model_name จะมี model 1,2 และ 3
1.1 กรณี model 1 ถ้ามีสินค้า A ในคอลัมน์ main_name หรือ supp_name ช่องใดช่องหนึ่ง ไม่นับรายการสินค้า A
1.2 กรณี model 2 ถ้ามีสินค้า A ในคอลัมน์ main_name และ supp_name ไม่นับรายการสินค้า A
1.3 กรณี model 3 ถ้ามีสินค้า A ในคอลัมน์ main_name และ/หรือ supp_name นับรายการสินค้าปกติ
ส่วนสินค้าอื่น ในคอลัมน์ main_name และ supp_name ที่ไม่ใช่ สินค้า A นับ ปกติ
2.ต้องการสูตรที่ นำข้อมูลสินค้าใน คอลัมน์ F (supp_name) มาใส่ คอลัมน์ P (supp_name) ตั้งแต่ช่อง P2 : P39
(หากสินค้าซ้ำกันนับแค่รายการเดียว)
3.เมื่อได้รายงานตามข้อ 2 เสร็จสมบูรณ์แล้ว ให้สามารถสรุปแยกรายการสินค้า และ model 1,2 และ 3 แบ่งตามภาคต่าง ๆ
โดยใช้ข้อมูลรายการสินค้าแบ่งตามภาคในการแยกรายการสินค้า ส่วน model 1,2 และ 3 ได้จาก Q2:Q39 ,R2:Q39,S2:S39
ตามลำดับ มาไว้ในรายงานที่แบ่งตามภาคที่สร้างไว้แล้ว
4.หากต้องการเปรียบเทียบรายการใน Cell จากหลายคอลัมน์ ระหว่าง ข้อมูลรายการสินค้าแบ่งตามภาค กับ คอลัมน์ P (supp_name)
ตั้งแต่ ช่อง P2 : P39 ถ้าสินคาไม่มีหรือไม่ซ้ำกันให้แสดงรายการสินค้าที่ไม่มีหรือไม่ซ้ำออกมา
ในเงื่อนไขการนับจำนวนรายการสินค้า นั้น ผมได้สูตรที่อาจารย์เคยตอบปัญหาไว้ในบอร์ดหัวข้อ นับจำนวนแบบมีหลายเงื่อนไข ผมปรับสูตรให้
เหมาะ สมกับรายงานผม ในเงือนไขนี้ได้ผลลัพธ์ตามต้องการแต่จะไปติดปัญหาที่คำถามที่ 1 ครับ
1.ช่อง no + indate + name หากซ้ำมากกว่า 1 ให้นับเป็น 1
ขอบคุณครับ

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 1:42 pm
by bank9597

รบกวนแยกตั้งคำถามไปทีล่ะเงื่อนไขครับ
ค่อยๆแก้ปัญหาไปเรื่อยๆ ครับ เนื่องจากโจทย์ยาวและยากต่อการทำความเข้าใจ ผู้ถามควรแยกเงื่อนไขมาตั้งคำถามทีล่ะเงื่อนไขให้ลุล่วงไปทีละขั้นตอนครับ
แสดง supp_name แบบไม่ซ้ำ
ที่ P2 ลองคีย์ =INDEX($F$2:$F$46, MATCH(0, COUNTIF($P$1:P1,$F$2:$F$46), 0)) กด ctrl+shift+enter คัดลอกลงมาครับ
เงื่อนไขอื่นๆ ลองตั้งคำถามทีละข้อครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 2:30 pm
by Totem
bank9597 wrote:
รบกวนแยกตั้งคำถามไปทีล่ะเงื่อนไขครับ
ค่อยๆแก้ปัญหาไปเรื่อยๆ ครับ เนื่องจากโจทย์ยาวและยากต่อการทำความเข้าใจ ผู้ถามควรแยกเงื่อนไขมาตั้งคำถามทีล่ะเงื่อนไขให้ลุล่วงไปทีละขั้นตอนครับ
แสดง supp_name แบบไม่ซ้ำ
ที่ P2 ลองคีย์ =INDEX($F$2:$F$46, MATCH(0, COUNTIF($P$1:P1,$F$2:$F$46), 0)) กด ctrl+shift+enter คัดลอกลงมาครับ
เงื่อนไขอื่นๆ ลองตั้งคำถามทีละข้อครับ
ขอบคุณครับ
เมื่อ p2 ได้แล้ว
ปัญหาต่อไปคือ คอลัมน์ model 1,2 และ 3 ช่อง Q2 , R2 มีเงือนไขคำนึงถึง สินค้า A
1.1 กรณี model 1 ถ้ามีสินค้า A ในคอลัมน์E main_name หรือ คอลัมน์F supp_name ช่องใดช่องหนึ่ง ไม่ต้องนับรายการสินค้า A คำตอบที่ได้คือ 0
1.2 กรณี model 2 ถ้ามีสินค้า A ในคอลัมน์E main_name และ ในคอลัมน์F supp_name ไม่นับรายการสินค้า A ไม่ต้องนับรายการสินค้า A คำตอบที่ได้คือ 0
กรณี 1.1 และ 1.2 ตามที่ระบายสีไว้ในช่อง D2:F2 , D3,F3 , D4,F4 , D6:F6 , D12,F12 เมื่อพบสินค้า A ไม่ต้องนับสินค้า A
1.3 กรณี model 3 ถ้ามีสินค้า A ในคอลัมน์ main_name และ/หรือ supp_name นับรายการสินค้าปกติ สูตรที่ผมทำไว้ได้ตามต้องการ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 3:30 pm
by bank9597

ที่ว่านับปกติ คือ นับอย่างไรครับ
เนื่องจากมีคอลัมน์ main_name และ supp_name ทั้งสองคอลัมน์มีข้อมูลสินค้าที่ไม่เหมือนกัน เช่น D5:F5 มีข้อมูลอยู่ในบรรทัดเดียวกันดังนี้
Model 3, สินค้า D, สินค้า T
ไม่ทราบว่าจะนับ model ออกมาอย่างไร จะได้คตอบที่ถูกต้องเท่าไหร่
รบกวนใส่ตัวอย่างคำตอบที่ถูกต้องมาให้ดูหน่อยครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 3:42 pm
by Totem
bank9597 wrote:
ที่ว่านับปกติ คือ นับอย่างไรครับ
เนื่องจากมีคอลัมน์ main_name และ supp_name ทั้งสองคอลัมน์มีข้อมูลสินค้าที่ไม่เหมือนกัน เช่น D5:F5 มีข้อมูลอยู่ในบรรทัดเดียวกันดังนี้
Model 3, สินค้า D, สินค้า T
ไม่ทราบว่าจะนับ model ออกมาอย่างไร จะได้คตอบที่ถูกต้องเท่าไหร่
รบกวนใส่ตัวอย่างคำตอบที่ถูกต้องมาให้ดูหน่อยครับ

คำนึงถึง คอลัมน์F supp_name เป็นหลัก ในสูตรที่ผมเขียนไว้ จำนวนสินค้าใน Q3:Q39 , R3:R39 , และ S2:S39 เป็นคำตอบที่ผมได้ตามต้องการแล้ว ที่ติดปัญหามีเพียงแค่ ถ้าเกิดพบสินค้า A เท่านั้น คำตอบใน ช่อง Q2 จะต้องได้ 0 ไม่ใช่ 3 และ ช่อง R2 จะต้องได้ 0 ไม่ใช่ 1 ตามที่ได้ระบายสีไว้แล้วครับ
ส่วนนับปกติ คือ นับแล้วได้ผลลัพธ์ตามสูตรที่ผมใส่ไว้แล้วค่าตามนั้นครับ
ขอบคุณครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 4:16 pm
by bank9597

ที่ Q2 ลองคีย์ =IF(AND(OR(Q$1="Model 1",Q$1="Model 2"),$P2="สินค้า A",SUMPRODUCT(--($D$2:$D$46=Q$1),--($F$2:$F$46=$P2))>=1),0,SUMPRODUCT(--($D$2:$D$46=Q$1),--($F$2:$F$46=$P2))) คัดลอกไปทางขวามือ แล้วลงล่างพร้อมกันครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 4:52 pm
by Totem
ขอโทษทีครับ มีเงื่อนไขที่ผมมองข้ามไปครับ ต้องการเพิ่มเติมเงือนไข คือ คอลัมน์ model_name Model 1 ช่อง D1 , คอลัมน์ main_name ช่อง E4=สินค้า A และ คอลัมน์ supp_name ช่อง F4=สินค้าS หากพบกรณีนี้ ช่อง Q3 จะต้องได้ค่าเท่ากับ 0 ไม่ใช่ 1 ครับ
- คอลัมน์ supp_name P1 ตั้งแต่ P2:P39 ต้องสัมพันธ์กับเงื่อนไขการนับจำนวนรายการสินค้า คือ ช่อง no + indate + name หากซ้ำมากกว่า 1 ให้นับเป็น 1
ขอบคุณครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 05, 2014 11:49 pm
by bank9597
คอลัมน์ supp_name P1 ตั้งแต่ P2:P39 ต้องสัมพันธ์กับเงื่อนไขการนับจำนวนรายการสินค้า คือ ช่อง no + indate + name หากซ้ำมากกว่า 1 ให้นับเป็น 1
ที่ G2 ลองคีย์ =SUMPRODUCT(--($A$2:A2=A2),--($B$2:B2=B2),--($C$2:C2=C2)) คัดลอกลงมา
ที่ P2 คีย์ =IFERROR(INDEX($F$2:$F$46,SMALL(IF($G$2:$G$46=1,ROW($G$2:$G$46)-ROW($G$2)+1),ROWS($P$2:P2))),"") กด ctrl+shift+enter คัดลอกลงมา
ต้องการเพิ่มเติมเงือนไข คือ คอลัมน์ model_name Model 1 ช่อง D1 , คอลัมน์ main_name ช่อง E4=สินค้า A และ คอลัมน์ supp_name ช่อง F4=สินค้าS หากพบกรณีนี้ ช่อง Q3 จะต้องได้ค่าเท่ากับ 0 ไม่ใช่ 1 ครับ
ที่ N2 ลองคีย์ =SUMPRODUCT(--($D$2:$D$46=$Q$1),--($E$2:$E$46=$P$2),--($F$2:$F$46=$P$3))
ที่ Q2 คีย์ =IF(AND(Q$1="Model 1",$P2="สินค้า S",$N$2>=1),0,IF(AND(OR(Q$1="Model 1",Q$1="Model 2"),$P2="สินค้า A",SUMPRODUCT(--($D$2:$D$46=Q$1),--($F$2:$F$46=$P2))>=1),0,SUMPRODUCT(--($D$2:$D$46=Q$1),--($F$2:$F$46=$P2)))) คัดลอกไปขวามือ แล้วลงล่างพร้อมกัน
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Thu Feb 06, 2014 11:31 am
by Totem
bank9597 wrote:คอลัมน์ supp_name P1 ตั้งแต่ P2:P39 ต้องสัมพันธ์กับเงื่อนไขการนับจำนวนรายการสินค้า คือ ช่อง no + indate + name หากซ้ำมากกว่า 1 ให้นับเป็น 1
ที่ G2 ลองคีย์ =SUMPRODUCT(--($A$2:A2=A2),--($B$2:B2=B2),--($C$2:C2=C2)) คัดลอกลงมา
ที่ P2 คีย์ =IFERROR(INDEX($F$2:$F$46,SMALL(IF($G$2:$G$46=1,ROW($G$2:$G$46)-ROW($G$2)+1),ROWS($P$2:P2))),"") กด ctrl+shift+enter คัดลอกลงมา
ต้องการเพิ่มเติมเงือนไข คือ คอลัมน์ model_name Model 1 ช่อง D1 , คอลัมน์ main_name ช่อง E4=สินค้า A และ คอลัมน์ supp_name ช่อง F4=สินค้าS หากพบกรณีนี้ ช่อง Q3 จะต้องได้ค่าเท่ากับ 0 ไม่ใช่ 1 ครับ
ที่ N2 ลองคีย์ =SUMPRODUCT(--($D$2:$D$46=$Q$1),--($E$2:$E$46=$P$2),--($F$2:$F$46=$P$3))
ที่ Q2 คีย์ =IF(AND(Q$1="Model 1",$P2="สินค้า S",$N$2>=1),0,IF(AND(OR(Q$1="Model 1",Q$1="Model 2"),$P2="สินค้า A",SUMPRODUCT(--($D$2:$D$46=Q$1),--($F$2:$F$46=$P2))>=1),0,SUMPRODUCT(--($D$2:$D$46=Q$1),--($F$2:$F$46=$P2)))) คัดลอกไปขวามือ แล้วลงล่างพร้อมกัน

ที่ P2:P33 มีรายการสินค้าซ้ำกันครับ
ส่วน
ต้องการเพิ่มเติมเงือนไข คือ คอลัมน์ model_name Model 1 ช่อง D1 , คอลัมน์ main_name ช่อง E4=สินค้า A และ คอลัมน์ supp_name ช่อง F4=สินค้าS หากพบกรณีนี้ ช่อง Q3 จะต้องได้ค่าเท่ากับ 0 ไม่ใช่ 1 ครับ
นั้น
ในช่องตั้งแต่ F2:F46 ไม่ว่าสินค้านั้นจะเป็นสินค้า S,A,T,W,....,AG..สินค้าใดๆ เมื่อเจอสินค้า A ในคอลัมน์ main_name อยู่ติดกับสินค้าใด ๆ
ไม่นับรายการ ยกตัวอย่างเช่น
-คอลัมน์ main_name สินค้า A -คอลัมน์ supp_name สินค้า S (ไม่นับรายการ)
-คอลัมน์ main_name สินค้า A -คอลัมน์ supp_name สินค้า T (ไม่นับรายการ)
-คอลัมน์ main_name สินค้า A -คอลัมน์ supp_name สินค้าใดๆไม่ว่าจะเป็น A,W,ก...AG (ไม่นับรายการ)

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Thu Feb 06, 2014 9:23 pm
by snasui

สมมุติว่าใช้ Excel 2010+
ลองตามนี้ครับ
- เซลล์ O2 คีย์สูตรเพือแสดงภาค
=INDEX($H$2:$M$2,MATCH(1,MMULT(--TRANSPOSE(ROW($M$3:$M$11)>0),--($H$3:$M$11=$P2)),0))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- เซลล์ P2 คีย์สูตรเพื่อแสดงรายการไม่ซ้ำ
=IFERROR(INDEX($F$2:$F$46,AGGREGATE(15,6,1/(MATCH($F$2:$F$46,$F$2:$F$46,0)=ROW($F$2:$F$46)-ROW($F$2)+1)*(ROW($F$2:$F$46)-ROW($F$2)+1),ROWS(P$2:P2))),"")
Enter > Copy ลงด้านล่าง
- เซลล์ Q2 คีย์สูตรเพื่อแสดงค่าใน Model1
=IF(AND($P2="สินค้า A",OR(COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2)>0,COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2)>0)),0,COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2))
Enter > Copy ลงด้านล่าง
- เซลล์ R2 คีย์สูตรเพื่อแสดง Model2
=IF(AND($P2="สินค้า A",COUNTIFS($D$2:$D$46,R$1,$E$2:$E$46,$P2)>0,COUNTIFS($D$2:$D$46,R$1,$E$2:$E$46,$P2)>0),0,COUNTIFS($D$2:$D$46,R$1,$E$2:$E$46,$P2))
Enter > Copy ลงด้านล่าง
- เซลล์ S2 คีย์สูตรเพื่อแสดง Model3
=COUNTIFS($F$2:$F$1000,$P2,$D$2:$D$1000,S$1)
Enter > Copy ลงด้านล่าง
- เซลล์ U3 คีย์สูตรเพื่อ List สินค้าภาคเหนือ
=IFERROR(INDEX($P$2:$P$39,AGGREGATE(15,6,1/($U$1=$O$2:$O$39)*(ROW($O$2:$O$46)-ROW($O$2)+1),ROWS(P$2:P2))),"")
Enter > Copy ลงด้านล่าง
- เซลล์ V3 คีย์สูตรเพื่อหาค่าสินค้า Model1 ของภาคเหนือ
=SUMIFS(Q$2:Q$39,$O$2:$O$39,LOOKUP(CHAR(255),$U$1:V$1),$P$2:$P$39,$U3)
Enter > Copy ไปทางขวาและลงด้านล่าง
- นำสูตรตามข้อ 6,7 ไปปรับใช้กับภาคอื่น ๆ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Mon Feb 10, 2014 10:58 am
by Totem
snasui wrote:
สมมุติว่าใช้ Excel 2010+
ลองตามนี้ครับ
- เซลล์ O2 คีย์สูตรเพือแสดงภาค
=INDEX($H$2:$M$2,MATCH(1,MMULT(--TRANSPOSE(ROW($M$3:$M$11)>0),--($H$3:$M$11=$P2)),0))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
- เซลล์ P2 คีย์สูตรเพื่อแสดงรายการไม่ซ้ำ
=IFERROR(INDEX($F$2:$F$46,AGGREGATE(15,6,1/(MATCH($F$2:$F$46,$F$2:$F$46,0)=ROW($F$2:$F$46)-ROW($F$2)+1)*(ROW($F$2:$F$46)-ROW($F$2)+1),ROWS(P$2:P2))),"")
Enter > Copy ลงด้านล่าง
- เซลล์ Q2 คีย์สูตรเพื่อแสดงค่าใน Model1
=IF(AND($P2="สินค้า A",OR(COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2)>0,COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2)>0)),0,COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2))
Enter > Copy ลงด้านล่าง
- เซลล์ R2 คีย์สูตรเพื่อแสดง Model2
=IF(AND($P2="สินค้า A",COUNTIFS($D$2:$D$46,R$1,$E$2:$E$46,$P2)>0,COUNTIFS($D$2:$D$46,R$1,$E$2:$E$46,$P2)>0),0,COUNTIFS($D$2:$D$46,R$1,$E$2:$E$46,$P2))
Enter > Copy ลงด้านล่าง
- เซลล์ S2 คีย์สูตรเพื่อแสดง Model3
=COUNTIFS($F$2:$F$1000,$P2,$D$2:$D$1000,S$1)
Enter > Copy ลงด้านล่าง
- เซลล์ U3 คีย์สูตรเพื่อ List สินค้าภาคเหนือ
=IFERROR(INDEX($P$2:$P$39,AGGREGATE(15,6,1/($U$1=$O$2:$O$39)*(ROW($O$2:$O$46)-ROW($O$2)+1),ROWS(P$2:P2))),"")
Enter > Copy ลงด้านล่าง
- เซลล์ V3 คีย์สูตรเพื่อหาค่าสินค้า Model1 ของภาคเหนือ
=SUMIFS(Q$2:Q$39,$O$2:$O$39,LOOKUP(CHAR(255),$U$1:V$1),$P$2:$P$39,$U3)
Enter > Copy ไปทางขวาและลงด้านล่าง
- นำสูตรตามข้อ 6,7 ไปปรับใช้กับภาคอื่น ๆ

ขอบคุณครับอาจารย์
ในสูตร ข้อ 3 และ ข้อ 4 ผมปรับไปใช้ในการนับจำนวน ในช่อง $F$2:$F$46 ได้ตามเงื่อนไขที่ต้องการเกือบทั้งหมด ติดปัญหาเงือนไขเดียวที่ยังไม่คลอบคลุม Model 1 คือ
ในช่องตั้งแต่ F2:F46 ไม่ว่าสินค้านั้นจะเป็นสินค้า S,A,T,W,....,AG..สินค้าใดๆ เมื่อเจอสินค้า A ในคอลัมน์ main_name อยู่ติดกับสินค้าใด ๆ
ไม่ต้องนับรายการ ยกตัวอย่างเช่น
-คอลัมน์ main_name สินค้า A -คอลัมน์ supp_name สินค้า S (ไม่นับรายการ)
-คอลัมน์ main_name สินค้า A -คอลัมน์ supp_name สินค้า T (ไม่นับรายการ)
-คอลัมน์ main_name สินค้า A -คอลัมน์ supp_name สินค้าใดๆไม่ว่าจะเป็น A,W,ก...AG (ไม่นับรายการ)
ตัวอย่างในเอกสาร เป็นสินค้า S จำนวนที่ได้ เมือใช้สูตรตามข้อ 2 ช่อง Q3 ได้เท่ากับ 1 ที่ต้องการคือ 0 ครับ
อาจารย์ช่วยปรับสูตรให้ทีครับ

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Mon Feb 10, 2014 1:03 pm
by snasui

สำหรับ Model1 ลองปรับ สูตรที่ Q2 เป็นตามด้านล่างครับ
=IF(OR(COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2,$F$2:$F$46,"สินค้า A")>0,COUNTIFS($D$2:$D$46,Q$1,$F$2:$F$46,$P2,$E$2:$E$46,"สินค้า A")>0),0,COUNTIFS($D$2:$D$46,Q$1,$F$2:$F$46,$P2))
Enter > Copy ลงด้านล่าง
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Mon Feb 10, 2014 3:30 pm
by Totem
snasui wrote:
สำหรับ Model1 ลองปรับ สูตรที่ Q2 เป็นตามด้านล่างครับ
=IF(OR(COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2,$F$2:$F$46,"สินค้า A")>0,COUNTIFS($D$2:$D$46,Q$1,$F$2:$F$46,$P2,$E$2:$E$46,"สินค้า A")>0),0,COUNTIFS($D$2:$D$46,Q$1,$F$2:$F$46,$P2))
Enter > Copy ลงด้านล่าง
ขอบคุณครับ
ขอถามปัญหาเพิ่มเติมอีกเล็กน้อยครับ คือ ในแต่ละ Model 1,Model 2,Model 3
Model 1 ที่ Q2 =IF(OR(COUNTIFS($D$2:$D$46,Q$1,$E$2:$E$46,$P2,$F$2:$F$46,"สินค้า A")>0,COUNTIFS($D$2:$D$46,Q$1,$F$2:$F$46,$P2,$E$2:$E$46,"สินค้า A")>0),0,
COUNTIFS($D$2:$D$46,Q$1,$F$2:$F$46,$P2))
Model 2 ที่ R2 =IF(AND($P2="สินค้า A",COUNTIFS($D$2:$D$46,R$1,$E$2:$E$46,$P2)>0,COUNTIFS($D$2:$D$46,R$1,$F$2:$F$46,$P2)>0),0,
COUNTIFS($D$2:$D$46,R$1,$F$2:$F$46,$P2))
Model 3 ที่ S2 =COUNTIFS(
$F$2:$F$1000,$P2,$D$2:$D$1000,S$1)
ถ้าเพิ่มเงือนไข คอลัมน์ A (no) และ คอลัมน์ B (indate) มี no ซ้ำกัน และ indate (ในวันเดี่ยวกัน) ซ้ำกัน ในนับเป็นรายการสินค้าเดียว
จะปรับสูตรที่ทำระบายสีไว้ได้ไหม จะได้รายงานที่กระชับและครอบคลุมขึ้นครับ
ขอบคุณครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Mon Feb 10, 2014 4:58 pm
by snasui

ตัวอย่างการปรับสูตรที่ R2 ครับ
=IF(AND($P2="สินค้า A",COUNTIFS($D$2:$D$46,R$1,$F$2:$F$46,$P2)>0,COUNTIFS($D$2:$D$46,R$1,$F$2:$F$46,$P2)>0),0,
SUM(IF(FREQUENCY(IF($D$2:$D$46=R$1,IF($F$2:$F$46=$P2,MATCH($A$2:$A$46&$B$2:$B$46,$A$2:$A$46&$B$2:$B$46,0))),ROW($A$2:$A$46)-ROW($A$2)+1),1)))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Mon Feb 10, 2014 6:54 pm
by Totem
snasui wrote:
ตัวอย่างการปรับสูตรที่ R2 ครับ
=IF(AND($P2="สินค้า A",COUNTIFS($D$2:$D$46,R$1,$F$2:$F$46,$P2)>0,COUNTIFS($D$2:$D$46,R$1,$F$2:$F$46,$P2)>0),0,
SUM(IF(FREQUENCY(IF($D$2:$D$46=R$1,IF($F$2:$F$46=$P2,MATCH($A$2:$A$46&$B$2:$B$46,$A$2:$A$46&$B$2:$B$46,0))),ROW($A$2:$A$46)-ROW($A$2)+1),1)))
Ctrl+Shift+Enter > Copy ลงด้านล่าง
ปรับสูตรทั้ง 3 Model ได้ผลที่ต้องการแล้ว

คำถามสุดท้ายครับ (น่าจะสุดท้ายของหัวข้อนี้) จากสูตรที่ ท่าน bank9597 ให้ไว้
แสดง supp_name แบบไม่ซ้ำ
ที่ P2 ลองคีย์ =INDEX($F$2:$F$46, MATCH(0, COUNTIF($P$1:P1,$F$2:$F$46), 0)) กด ctrl+shift+enter
หากเพิ่มเงือนไข คอลัมน์ A (no) และ คอลัมน์ B (indate) มี no ซ้ำกัน และ indate (ในวันเดี่ยวกัน) ซ้ำกัน ในนับเป็นรายการสินค้าเดียว
จะปรับสูตรได้ไหมครับ
ขอบคุณครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Mon Feb 10, 2014 7:48 pm
by snasui

สูตรนั้นมีจุดอ่อน เช่นไม่สามารถใช้กับข้อมูลที่มีเซลล์ว่าง และเมื่อสูตรที่ผมตอบให้คำตอบได้แล้วจึงไม่จำเป็นต้องปรับ ยกเว้นสูตรที่ผมตอบไปมีปัญหาครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Tue Feb 11, 2014 1:41 pm
by Totem
snasui wrote:
สูตรนั้นมีจุดอ่อน เช่นไม่สามารถใช้กับข้อมูลที่มีเซลล์ว่าง และเมื่อสูตรที่ผมตอบให้คำตอบได้แล้วจึงไม่จำเป็นต้องปรับ ยกเว้นสูตรที่ผมตอบไปมีปัญหาครับ

หากติดขัดประการใดจะแจ้งให้ทราบและช่วยแก้ไขต่อไป ณ ปัจจุบันยังไม่พอปัญหาครับ
ขอบคุณครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 12, 2014 9:29 am
by Totem
เรียนอาจารย์
ในสูตร เซลล์ P2 คีย์สูตรเพื่อแสดงรายการไม่ซ้ำ
=IFERROR(INDEX($F$2:$F$46,AGGREGATE(15,6,1/(MATCH($F$2:$F$46,$F$2:$F$46,0)=ROW($F$2:$F$46)-ROW($F$2)+1)*(ROW($F$2:$F$46)-ROW($F$2)+1),ROWS(P$2:P2))),"")
Enter > Copy ลงด้านล่าง
ที่นำไปใช้ สูตรใช้ได้ดีครับ แต่ติดปัญหาตรงที่ ข้อมูลที่ใช้จริงมีจำนวนมาก ประมาณ สี่หมื่นกว่ารายการ ผมกรองรายการที่ไม่ใช้ออกไปแล้วเหลือที่ใช้จริงประมาณ 15,000 กว่ารายการ เมื่อนำสูตรข้างต้นไปใช้จริง การประมวลผลนานมากเลยครับ ไม่ถามทราบพอมีวิธีแนะนำหรือแก้ไขทำให้ประมวลผลรวดเร็วขึ้นได้ไหมครับ
ขอบคุณครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 12, 2014 10:14 am
by snasui

สูตรหาค่า Unique จากข้อมูลจำนวนมากไม่สามารถทำงานเร็วได้ เนื่องจากเป็นสูตรทำงานในแบบ Array ยิ่งใช้มากยิ่งคำนวณนานครับ
Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา
Posted: Wed Feb 12, 2014 11:16 am
by Totem
snasui wrote:
สูตรหาค่า Unique จากข้อมูลจำนวนมากไม่สามารถทำงานเร็วได้ เนื่องจากเป็นสูตรทำงานในแบบ Array ยิ่งใช้มากยิ่งคำนวณนานครับ

ขอบคุณครับ
เศร้าเล็กน้อยถึงปานกลาง
