20 August 2025

ผสม Sum+IFCount+CountA ไม่ว่ากรอกค่าอะไร กรอกซ้ำ หรือไม่กรอก หายอดได้ครบถูกต้องเสมอ

ในการสร้าง Dashboards ต้องสร้างสูตรที่เผื่อไว้ช่วยให้ผู้ใช้งานกรอกค่าที่ต้องการหาได้ตามสบาย ไม่ว่าจะกรอกผิดกรอกถูกต้องยังหาคำตอบถูกต้องให้เสมอ 

ความเดิมตอนที่แล้วได้รู้จักสูตร CountIF ที่กลับใส้ข้างในให้เป็น IFCount ไปแล้ว
จากเดิม =COUNTIF(Product,D3) สลับใหม่เป็น =COUNTIF(D3,Product)
จะกลายเป็นสูตรที่กระจายหาตำแหน่งว่าค่าที่ต้องการนับนั้นอยู่ครงไหน


ถ้าสร้างแบบง่ายๆ ไม่ได้เผื่ออะไรมาก


 คราวนี้ถ้าผสมสูตรให้ครบเครื่องไปเลยล่ะ
=SUM(( ((COUNTIF(E3:E4,Product)>=1)+(COUNTA(E3:E4)=0) )*Sales))

ถ้าใช้ Excel รุ่นเก่าก่อน 365 ให้เปลี่ยน Sum เป็น SumProduct จะทำงานได้ทุก version 

 

สูตรนี้จะช่วยหายอดรวมของ Product ที่กรอกไว้ในเซลล์ E3:E4

  • ถ้ากรอกค่าเดียว จะหายอดรวมของค่านั้น
  • ถ้ากรอกค่าซ้ำ จะหายอดรวมของค่านั้นอยู่ดี โดยไม่หายอดรวมเกินมาให้
  • ถ้าไม่กรอกอะไรเลย จะหายอดรวมของทุกค่ามาให้
  • ถ้ากรอกหลายค่าที่ไม่ซ้ำ จะหายอดรวมครบทุกค่า
  • ถ้ากรอกหลายค่าแต่เผลอกรอกซ้ำ จะหายอดรวมครบทุกค่า โดยไม่หายอดรวมเกินมาให้


COUNTIF(E3:E4,Product) ทำหน้าที่นับว่าตำแหน่งที่ตรงกับค่านั้นอยู่ตรงไหน
COUNTIF(E3:E4,Product)>=1 ตรวจสอบว่าถ้ามีค่าซ้ำหรือค่าตรงก็คืนค่า True เหมือนกันCOUNTA(E3:E4)=0 ตรวจสอบว่า ไม่ได้กรอกค่าอะไรไว้เลยจะคืนค่า True
((COUNTIF(E3:E4,Product)>=1)+(COUNTA(E3:E4)=0)) ถ้าไม่กรอกค่าเลย จะหาค่า True มาให้

นอกจากนี้ หากเผลอกรอกค่าซ้ำ จะเปลี่ยนเป็นสีแดงเพื่อเตือนให้ทราบด้วยว่ากรอกค่าซ้ำ

Download ตัวอย่างได้จาก
https://drive.google.com/file/d/1X7AWTda2mYPKWmSDplAuMgt0A5RRwyxs/view?usp=sharing

ดูย้อนหลังได้จาก https://excelexpertlibrary.blogspot.com/2025/08/excel-365-countif-ifcount.html

พอยกเงื่อนไขเดียวกันนี้ไปใส่ในสูตร Filter จะหารายการทั้งหมดที่ตรงกับค่าที่กรอกให้ทันที โดยเราสามารถขยายพื้นที่เซลล์สำหรับกรอกค่าที่ต้องการค้นหาจาก E3:E4 ให้เป็น E3:E7
 
=FILTER( SalesData, ((COUNTIF(E3:E7,Product)>=1)+(COUNTA(E3:E7)=0) ) )
 

++++++++++++++++++++++++++
 
Copilot ช่วยอธิบายให้ละเอียดขึ้น
.
📊 **สูตรเดียวเอาอยู่! รวมยอดขายแบบฉลาด ไม่ต้องกรองเองให้เหนื่อย**
.
เคยไหม...อยากรวมยอดขายเฉพาะสินค้าที่เลือกไว้ แต่บางทีกรอกซ้ำบ้าง ลืมกรอกบ้าง หรืออยากรวมทั้งหมดก็ไม่รู้จะทำยังไง?
.
ลองสูตรนี้เลยครับ 👇
```excel
=SUM(((COUNTIF(E3:E4,Product)>=1)+(COUNTA(E3:E4)=0))*Sales)
```
.
หรือถ้าใช้ Excel รุ่นเก่าก่อน 365:
```excel
=SUMPRODUCT(((COUNTIF(E3:E4,Product)>=1)+(COUNTA(E3:E4)=0))*Sales)
```
.
กรอกค่าเดียว → รวมยอดของค่านั้น
กรอกหลายค่าไม่ซ้ำ → รวมยอดครบทุกค่า
กรอกค่าซ้ำ → รวมยอดแบบไม่ซ้ำซ้อน
ไม่กรอกอะไรเลย → รวมยอดทั้งหมดให้เลย!
.
---
.
🔍 **เจาะสูตรทีละส่วน: เข้าใจแล้วจะร้องว่า “อ๋อ!”**
.
- `COUNTIF(E3:E4,Product)` → ตรวจว่าแต่ละ Product อยู่ในช่วงที่กรอกไว้หรือไม่
- `>=1` → ถ้ามีแม้แต่ครั้งเดียว ถือว่า “เลือกแล้ว”
- `COUNTA(E3:E4)=0` → ถ้าไม่กรอกอะไรเลย ถือว่า “เลือกทั้งหมด”
- `(เงื่อนไข1 + เงื่อนไข2)` → ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง จะได้ค่า 1
- `*Sales` → คูณยอดขายเฉพาะรายการที่ผ่านเงื่อนไข
- `SUM` หรือ `SUMPRODUCT` → รวมยอดขายที่ผ่านเงื่อนไขทั้งหมด
.
---

🎨 **เสริมความฉลาดด้วย Conditional Formatting**
.
ถ้าเผลอกรอกค่าซ้ำในช่วง E3:E4 ให้ Excel เตือนด้วยสีแดง:
```excel
=COUNTIF($E$3:$E$4,E3)>1
```
แค่ใส่ใน Conditional Formatting แล้วเลือกสีเตือน ก็ช่วยลดความผิดพลาดได้เยอะเลยครับ
.
---
.
สูตรนี้เหมาะมากสำหรับไฟล์ที่ต้องแชร์ให้คนอื่นกรอกข้อมูลเอง โดยไม่ต้องกลัวพัง ไม่ต้องกลัวยอดซ้ำ และไม่ต้องเขียนสูตรใหม่ทุกครั้ง
.

  

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.