:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#1

Post by Totem »

:D เรียนอาจารย์

ช่วยแก้ไขปัญหาสูตรและมีคำถามเกี่ยวกับสูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำ ดังต่อไปนี้

เงื่อนไขการนับจำนวนรายการสินค้า

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




ขอบคุณครับ :D
You do not have the required permissions to view the files attached to this post.
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#2

Post by bank9597 »

:D รบกวนแยกตั้งคำถามไปทีล่ะเงื่อนไขครับ

ค่อยๆแก้ปัญหาไปเรื่อยๆ ครับ เนื่องจากโจทย์ยาวและยากต่อการทำความเข้าใจ ผู้ถามควรแยกเงื่อนไขมาตั้งคำถามทีล่ะเงื่อนไขให้ลุล่วงไปทีละขั้นตอนครับ

แสดง supp_name แบบไม่ซ้ำ
ที่ P2 ลองคีย์ =INDEX($F$2:$F$46, MATCH(0, COUNTIF($P$1:P1,$F$2:$F$46), 0)) กด ctrl+shift+enter คัดลอกลงมาครับ

เงื่อนไขอื่นๆ ลองตั้งคำถามทีละข้อครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#3

Post by Totem »

bank9597 wrote::D รบกวนแยกตั้งคำถามไปทีล่ะเงื่อนไขครับ

ค่อยๆแก้ปัญหาไปเรื่อยๆ ครับ เนื่องจากโจทย์ยาวและยากต่อการทำความเข้าใจ ผู้ถามควรแยกเงื่อนไขมาตั้งคำถามทีล่ะเงื่อนไขให้ลุล่วงไปทีละขั้นตอนครับ

แสดง 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 นับรายการสินค้าปกติ สูตรที่ผมทำไว้ได้ตามต้องการ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#4

Post by bank9597 »

:D ที่ว่านับปกติ คือ นับอย่างไรครับ

เนื่องจากมีคอลัมน์ main_name และ supp_name ทั้งสองคอลัมน์มีข้อมูลสินค้าที่ไม่เหมือนกัน เช่น D5:F5 มีข้อมูลอยู่ในบรรทัดเดียวกันดังนี้

Model 3, สินค้า D, สินค้า T

ไม่ทราบว่าจะนับ model ออกมาอย่างไร จะได้คตอบที่ถูกต้องเท่าไหร่

รบกวนใส่ตัวอย่างคำตอบที่ถูกต้องมาให้ดูหน่อยครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#5

Post by Totem »

bank9597 wrote::D ที่ว่านับปกติ คือ นับอย่างไรครับ

เนื่องจากมีคอลัมน์ main_name และ supp_name ทั้งสองคอลัมน์มีข้อมูลสินค้าที่ไม่เหมือนกัน เช่น D5:F5 มีข้อมูลอยู่ในบรรทัดเดียวกันดังนี้

Model 3, สินค้า D, สินค้า T

ไม่ทราบว่าจะนับ model ออกมาอย่างไร จะได้คตอบที่ถูกต้องเท่าไหร่

รบกวนใส่ตัวอย่างคำตอบที่ถูกต้องมาให้ดูหน่อยครับ
:D คำนึงถึง คอลัมน์F supp_name เป็นหลัก ในสูตรที่ผมเขียนไว้ จำนวนสินค้าใน Q3:Q39 , R3:R39 , และ S2:S39 เป็นคำตอบที่ผมได้ตามต้องการแล้ว ที่ติดปัญหามีเพียงแค่ ถ้าเกิดพบสินค้า A เท่านั้น คำตอบใน ช่อง Q2 จะต้องได้ 0 ไม่ใช่ 3 และ ช่อง R2 จะต้องได้ 0 ไม่ใช่ 1 ตามที่ได้ระบายสีไว้แล้วครับ
ส่วนนับปกติ คือ นับแล้วได้ผลลัพธ์ตามสูตรที่ผมใส่ไว้แล้วค่าตามนั้นครับ

ขอบคุณครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#6

Post by bank9597 »

:D ที่ 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))) คัดลอกไปทางขวามือ แล้วลงล่างพร้อมกันครับ
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#7

Post 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

ขอบคุณครับ
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#8

Post 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)))) คัดลอกไปขวามือ แล้วลงล่างพร้อมกัน
You do not have the required permissions to view the files attached to this post.
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#9

Post 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)))) คัดลอกไปขวามือ แล้วลงล่างพร้อมกัน
:D ที่ 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 (ไม่นับรายการ) :D
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#10

Post by snasui »

:D สมมุติว่าใช้ Excel 2010+

ลองตามนี้ครับ
  1. เซลล์ 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 ลงด้านล่าง
  2. เซลล์ 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 ลงด้านล่าง
  3. เซลล์ 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 ลงด้านล่าง
  4. เซลล์ 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 ลงด้านล่าง
  5. เซลล์ S2 คีย์สูตรเพื่อแสดง Model3
    =COUNTIFS($F$2:$F$1000,$P2,$D$2:$D$1000,S$1)
    Enter > Copy ลงด้านล่าง
  6. เซลล์ 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 ลงด้านล่าง
  7. เซลล์ 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 ไปทางขวาและลงด้านล่าง
  8. นำสูตรตามข้อ 6,7 ไปปรับใช้กับภาคอื่น ๆ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#11

Post by Totem »

snasui wrote::D สมมุติว่าใช้ Excel 2010+

ลองตามนี้ครับ
  1. เซลล์ 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 ลงด้านล่าง
  2. เซลล์ 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 ลงด้านล่าง
  3. เซลล์ 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 ลงด้านล่าง
  4. เซลล์ 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 ลงด้านล่าง
  5. เซลล์ S2 คีย์สูตรเพื่อแสดง Model3
    =COUNTIFS($F$2:$F$1000,$P2,$D$2:$D$1000,S$1)
    Enter > Copy ลงด้านล่าง
  6. เซลล์ 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 ลงด้านล่าง
  7. เซลล์ 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 ไปทางขวาและลงด้านล่าง
  8. นำสูตรตามข้อ 6,7 ไปปรับใช้กับภาคอื่น ๆ
:D ขอบคุณครับอาจารย์

ในสูตร ข้อ 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 ครับ

อาจารย์ช่วยปรับสูตรให้ทีครับ :D
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#12

Post by snasui »

:D สำหรับ 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 ลงด้านล่าง
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#13

Post by Totem »

snasui wrote::D สำหรับ 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 (ในวันเดี่ยวกัน) ซ้ำกัน ในนับเป็นรายการสินค้าเดียว
จะปรับสูตรที่ทำระบายสีไว้ได้ไหม จะได้รายงานที่กระชับและครอบคลุมขึ้นครับ

ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#14

Post by snasui »

:D ตัวอย่างการปรับสูตรที่ 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 ลงด้านล่าง
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#15

Post by Totem »

snasui wrote::D ตัวอย่างการปรับสูตรที่ 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 ได้ผลที่ต้องการแล้ว

:D คำถามสุดท้ายครับ (น่าจะสุดท้ายของหัวข้อนี้) จากสูตรที่ ท่าน 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 (ในวันเดี่ยวกัน) ซ้ำกัน ในนับเป็นรายการสินค้าเดียว
จะปรับสูตรได้ไหมครับ

ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#16

Post by snasui »

:D สูตรนั้นมีจุดอ่อน เช่นไม่สามารถใช้กับข้อมูลที่มีเซลล์ว่าง และเมื่อสูตรที่ผมตอบให้คำตอบได้แล้วจึงไม่จำเป็นต้องปรับ ยกเว้นสูตรที่ผมตอบไปมีปัญหาครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#17

Post by Totem »

snasui wrote::D สูตรนั้นมีจุดอ่อน เช่นไม่สามารถใช้กับข้อมูลที่มีเซลล์ว่าง และเมื่อสูตรที่ผมตอบให้คำตอบได้แล้วจึงไม่จำเป็นต้องปรับ ยกเว้นสูตรที่ผมตอบไปมีปัญหาครับ

:D หากติดขัดประการใดจะแจ้งให้ทราบและช่วยแก้ไขต่อไป ณ ปัจจุบันยังไม่พอปัญหาครับ

ขอบคุณครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#18

Post 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 กว่ารายการ เมื่อนำสูตรข้างต้นไปใช้จริง การประมวลผลนานมากเลยครับ ไม่ถามทราบพอมีวิธีแนะนำหรือแก้ไขทำให้ประมวลผลรวดเร็วขึ้นได้ไหมครับ

ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 31257
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#19

Post by snasui »

:D สูตรหาค่า Unique จากข้อมูลจำนวนมากไม่สามารถทำงานเร็วได้ เนื่องจากเป็นสูตรทำงานในแบบ Array ยิ่งใช้มากยิ่งคำนวณนานครับ
Totem
Silver
Silver
Posts: 650
Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007

Re: สูตรนับจำนวน จัดกลุ่มและหารายการไม่ซ้ำแสดงรายการออกมา

#20

Post by Totem »

snasui wrote::D สูตรหาค่า Unique จากข้อมูลจำนวนมากไม่สามารถทำงานเร็วได้ เนื่องจากเป็นสูตรทำงานในแบบ Array ยิ่งใช้มากยิ่งคำนวณนานครับ
:D ขอบคุณครับ

เศร้าเล็กน้อยถึงปานกลาง :(
Post Reply