บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน DCOUNTA ใน Microsoft Excel
คำอธิบาย
นับจำนวนเซลล์ที่ไม่ว่างในเขตข้อมูล (คอลัมน์) ของระเบียนในรายการหรือฐานข้อมูลที่ตรงกับเงื่อนไขที่คุณระบุ
เลือกอาร์กิวเมนต์เขตข้อมูลหรือไม่ก็ได้ ถ้าไม่ใส่ค่าเขตข้อมูล DCOUNTA จะนับระเบียนทั้งหมดในฐานข้อมูลที่ตรงกับเงื่อนไข
ไวยากรณ์
DCOUNTA(database, field, criteria)
ไวยากรณ์ของฟังก์ชัน DCOUNTA มีอาร์กิวเมนต์ดังนี้
- ฐาน ข้อมูล ต้องระบุ ช่วงของเซลล์ที่ประกอบขึ้นเป็นรายการหรือฐานข้อมูล ฐานข้อมูลคือรายการของข้อมูลที่เกี่ยวข้องซึ่งแถวของข้อมูลที่เกี่ยวข้องคือระเบียน และคอลัมน์ของข้อมูลคือเขตข้อมูล แถวแรกของรายการมีป้ายชื่อสําหรับแต่ละคอลัมน์
- ฟิลด์ เสริม บ่งชี้ว่าจะใช้คอลัมน์ใดในฟังก์ชัน ใส่ป้ายชื่อคอลัมน์ที่อยู่ระหว่างเครื่องหมายอัญประกาศคู่ เช่น "อายุ" หรือ "ผลตอบแทน" หรือตัวเลข (ไม่มีเครื่องหมายอัญประกาศ) ที่แสดงตําแหน่งของคอลัมน์ภายในรายการ: 1 สําหรับคอลัมน์แรก 2 สําหรับคอลัมน์ที่สอง และอื่นๆ
- เงื่อนไข ต้องระบุ ช่วงของเซลล์ที่มีเงื่อนไขที่คุณระบุ คุณสามารถใช้ช่วงใดก็ได้สําหรับอาร์กิวเมนต์ criteria ตราบใดที่ช่วงนั้นมีป้ายชื่อคอลัมน์อย่างน้อยหนึ่งป้าย และมีอย่างน้อยหนึ่งเซลล์อยู่ใต้ป้ายชื่อคอลัมน์ที่คุณระบุเงื่อนไขสําหรับคอลัมน์นั้น
ข้อสังเกต
- คุณสามารถใช้ช่วงใดเป็นอาร์กิวเมนต์ criteria ก็ได้ ตราบเท่าที่ช่วงนั้นมีป้ายชื่อของคอลัมน์อย่างน้อยหนึ่งป้าย และมีอย่างน้อยหนึ่งเซลล์อยู่ใต้ป้ายชื่อคอลัมน์ที่ใช้ระบุเงื่อนไข
ตัวอย่าง เช่น ถ้าช่วง G1:G2 มีป้ายชื่อคอลัมน์ Income ใน G1 และจำนวน $10,000 ใน G2 คุณก็สามารถกำหนดช่วงนั้นเป็น MatchIncome และใช้ชื่อนั้นเป็นอาร์กิวเมนต์ของ Criteria ในฟังก์ชันฐานข้อมูลได้ - ถึงแม้ว่าช่วงเงื่อนไขจะอยู่ที่ใดก็ได้บนเวิร์กชีต แต่อย่าวางช่วงเงื่อนไขไว้ใต้รายการ ถ้าคุณเพิ่มข้อมูลเพิ่มเติมลงในรายการ ข้อมูลใหม่จะถูกเพิ่มลงในแถวแรกด้านล่างรายการ ถ้าแถวด้านล่างรายการไม่ว่างเปล่า Excel จะไม่สามารถเพิ่มข้อมูลใหม่ได้
- ดูให้แน่ใจว่าช่วงเงื่อนไขไม่ได้ซ้อนทับรายการข้อมูล
- เมื่อต้องการดำเนินการทั้งคอลัมน์ในฐานข้อมูล ให้เพิ่มบรรทัดว่างไว้ใต้ป้ายชื่อคอลัมน์ภายในช่วง criteria
ตัวอย่าง
คัดลอกข้อมูลตัวอย่างในตารางต่อไปนี้ และวางในเซลล์ A1 ของเวิร์กชีต Excel ใหม่ สำหรับสูตรที่จะแสดงผลลัพธ์ ให้เลือกสูตร กด F2 แล้วกด Enter ถ้าคุณต้องการ คุณสามารถปรับความกว้างของคอลัมน์เพื่อดูข้อมูลทั้งหมดได้ ถ้าคุณคัดลอกตัวอย่างใดๆ ต่อไปนี้ลงใน Excel ให้ตรวจสอบให้แน่ใจว่าคุณเลือกเซลล์ทั้งหมดในตารางนี้ รวมถึงเซลล์ที่มุมซ้ายบนสุด
| ต้นไม้ | ความสูง | อายุ | ผลตอบแทน | ผลกำไร | ความสูง |
|---|---|---|---|---|---|
| ="=แอปเปิล" | >10 | <16 | |||
| ="=แพร์" | |||||
| ต้นไม้ | ความสูง | อายุ | ผลตอบแทน | ผลกำไร | |
| Apple | 18 | 20 | 14 | 105.0 | |
| Pear | 1.2 | 1.2 | 10 | 96.0 | |
| Cherry | 1.3 | 14 | 9 | 105.0 | |
| Apple | 14 | 15 | 10 | 75.0 | |
| Pear | 9 | 8 | 8 | 76.8 | |
| Apple | 8 | 9 | 6 | 45.0 | |
| สูตร | คำอธิบาย | ผลลัพธ์ | |||
| =DCOUNTA(A4:E10,"ผลกำไร",A1:F2) | นับแถว (1) ที่มี "Apple" ในคอลัมน์ A ที่มีความสูง >10 และ <16 เฉพาะแถวที่ 8 เท่านั้นที่ตรงตามสามเงื่อนไขเหล่านี้ | 1 |
ตัวอย่างของเงื่อนไข
- เมื่อคุณใส่ =ข้อความ ในเซลล์ Excel จะตีความเป็นสูตรและพยายามคํานวณ เมื่อต้องการใส่ =text เพื่อให้ Excel ไม่พยายามคํานวณ ให้ใช้ไวยากรณ์นี้:
='=entry''
เมื่อ รายการ คือข้อความหรือค่าที่คุณต้องการค้นหา ตัวอย่างเช่น
| สิ่งที่คุณพิมพ์ลงในเซลล์ | สิ่งที่ Excel ประเมินและแสดง |
|---|---|
| ="=Davolio" | =Davolio |
| ="=3000" | =3000 |
- เมื่อคุณกรองข้อมูลข้อความ Excel จะไม่แยกความแตกต่างระหว่างอักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก แต่คุณสามารถใช้สูตรเพื่อค้นหาแบบตรงตามตัวพิมพ์ใหญ่-เล็กได้
ส่วนต่อไปนี้แสดงตัวอย่างของเกณฑ์ที่มีความซับซ้อน
หลายเกณฑ์ในหนึ่งคอลัมน์
ตรรกะบูลีน: (พนักงานขาย = "Davolio" OR พนักงานขาย = "Buchanan")
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายเกณฑ์สำหรับหนึ่งคอลัมน์ ให้พิมพ์เกณฑ์ลงไปตรงด้านล่างของแต่ละเกณฑ์ในแต่ละแถวของช่วงเกณฑ์นั้น
ในช่วงข้อมูลต่อไปนี้ (A6:C10) มีการใช้ช่วงเงื่อนไข (B1:B3) เพื่อนับแถวต่างๆ ที่มี "Davolio" หรือ "Buchanan" ในคอลัมน์พนักงานขาย
| พนักงานขาย | ||
|---|---|---|
| ="=Davolio" | ||
| ="=Buchanan" | ||
| ชนิด | พนักงานขาย | ยอดขาย |
| เครื่องดื่ม | Suyama | $5,122 |
| เนื้อสัตว์ | Davolio | $450 |
| ผลผลิต | Buchanan | $6,328 |
| ผลผลิต | Davolio | $6,544 |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| '=DCOUNTA(A6:C10,2,B1:B3) | นับจำนวนแถว(3) ใน A6:C10 ที่ตรงกับเงื่อนไข "พนักงานขาย" อย่างใดอย่างหนึ่งในแถว 2 และ 3 | =DCOUNTA(A6:C10,2,B1:B3) |
หลายเงื่อนไขในหลายคอลัมน์ซึ่งเงื่อนไขทั้งหมดต้องเป็นจริง
ตรรกะบูลีน ( ชนิด = "พืชผล" AND ยอดขาย > 2000)
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายเงื่อนไขในหลายคอลัมน์ ให้พิมพ์เงื่อนไขทั้งหมดในแถวเดียวกันกับช่วงเงื่อนไข
ในช่วงข้อมูลต่อไปนี้ (A6:C12) มีการใช้ช่วงเงื่อนไข (A1:C2) เพื่อนับแถวต่างๆ ที่มี "Produce" ในคอลัมน์ชนิด และมีมูลค่ามากกว่า $2,000 ในคอลัมน์ยอดขาย
| ชนิด | พนักงานขาย | ยอดขาย |
|---|---|---|
| ="=ผลผลิต" | >2000 | |
| ชนิด | พนักงานขาย | ยอดขาย |
| เครื่องดื่ม | Suyama | $5,122 |
| เนื้อสัตว์ | Davolio | $450 |
| Produce | Buchanan | $935 |
| พืชผัก | Davolio | $6,544 |
| เครื่องดื่ม | สัญญา | $3,677 |
| พืชผัก | Davolio | $3,186 |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| '=DCOUNTA(A6:C12,,A1:C2) | นับจํานวนแถว (2) ใน A6:C12 ที่ตรงกับเงื่อนไขในแถว 2 (="Produce" และ >2000) | =DCOUNTA(A6:C12,,A1:C2) |
หลายเงื่อนไขในหลายคอลัมน์ซึ่งเงื่อนไขใดเงื่อนไขหนึ่งต้องเป็นจริง
ตรรกะบูลีน ( ชนิด = "พืชผล" OR พนักงานขาย = "Davolio")
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายเกณฑ์ในหลายคอลัมน์ซึ่งเกณฑ์ใดเกณฑ์หนึ่งต้องเป็นจริง ให้พิมพ์เกณฑ์ในแต่ละแถวของช่วงเกณฑ์
ในช่วงข้อมูลต่อไปนี้ (A6:C10) ช่วงเกณฑ์ (A1:B3) แสดงแถวทั้งหมดที่มี "Produce" ในคอลัมน์ Type หรือ "Davolio"
| ชนิด | พนักงานขาย | |
|---|---|---|
| ="=Produce" | ||
| ="=Davolio" | ||
| ชนิด | พนักงานขาย | ยอดขาย |
| เครื่องดื่ม | Suyama | $5,122 |
| เนื้อสัตว์ | Davolio | $675 |
| Buchanan | Buchanan | $937 |
| Produce | Buchanan | |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| '=DCOUNTA(A6:C10,"ยอดขาย",A1:B3) | นับจำนวนแถว (2) ใน A6:C10 ที่ตรงตามเงื่อนไขใดเงื่อนไขหนึ่งใน A1:C3 โดยที่ เขตข้อมูล "ยอดขาย"ไม่ว่างเปล่า | =DCOUNTA(A6:C10,"ยอดขาย",A1:B3) |
หลายชุดของเงื่อนไขโดยที่แต่ละชุดของเงื่อนไขมีเงื่อนไขสำหรับหลายคอลัมน์
ตรรกะบูลีน: ( (พนักงานขาย = "Davolio" AND ยอดขาย >3000) OR (พนักงานขาย = "Buchanan" AND ยอดขาย > 1500) )
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายชุดของเกณฑ์โดยที่แต่ละชุดของเกณฑ์ประกอบด้วยเกณฑ์สำหรับหลายคอลัมน์ ให้พิมพ์แต่ละชุดของเกณฑ์ในแต่ละแถว
ในช่วงข้อมูลต่อไปนี้ (A6:C10) มีการใช้ช่วงเงื่อนไข (B1:C3) เพื่อนับแถวต่างๆ ที่มีทั้ง "Davolio" ในคอลัมน์พนักงานขาย และมูลค่ามากกว่า $3,000 ในคอลัมน์ยอดขาย หรือแถวต่างๆ ที่มีทั้ง "Buchanan" ในคอลัมน์พนักงานขาย และมูลค่ามากกว่า $1,500 ในคอลัมน์ยอดขาย
| ชนิด | พนักงานขาย | ยอดขาย |
|---|---|---|
| ="=Davolio" | >3000 | |
| ="=Buchanan" | >1500 | |
| ชนิด | พนักงานขาย | ยอดขาย |
| เครื่องดื่ม | Suyama | $5,122 |
| เนื้อสัตว์ | Davolio | $450 |
| ผลผลิต | Buchanan | $6,328 |
| ผลผลิต | Davolio | $6,544 |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| '=DCOUNTA(A6:C10,,B1:C3) | นับจำนวนแถว (2) ใน A6:C10 ที่ตรงตามเงื่อนไขทั้งหมดใน B1:C3 | =DCOUNTA(A6:C10,,B1:C3) |
หลายชุดของเงื่อนไขโดยที่เงื่อนไขแต่ละชุดมีเงื่อนไขสำหรับหนึ่งคอลัมน์
ตรรกะบูลีน ( (ยอดขาย > 6000 AND ยอดขาย < 6500 ) OR (ยอดขาย < 500) )
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายชุดของเกณฑ์โดยที่แต่ละชุดของเกณฑ์ประกอบด้วยเกณฑ์สำหรับหนึ่งคอลัมน์ ให้พิมพ์เกณฑ์ทั้งหมดในแถวเดียวกันกับช่วงเกณฑ์ ให้ใส่ส่วนหัวของคอลัมน์แบบเดียวกันไว้ในหลายๆ คอลัมน์
ในช่วงข้อมูลต่อไปนี้ (A6:C10) มีการใช้ช่วงเงื่อนไข (C1:D3) เพื่อนับแถวต่างๆ ที่มีมูลค่าระหว่าง $6,000 และ $6,500 และมูลค่าน้อยกว่า $500 ในคอลัมน์ยอดขาย
| ชนิด | พนักงานขาย | ยอดขาย | ยอดขาย |
|---|---|---|---|
| >6000 | <6500 | ||
| <500 | |||
| ชนิด | พนักงานขาย | ยอดขาย | |
| เครื่องดื่ม | Suyama | $5,122 | |
| เนื้อสัตว์ | Davolio | $450 | |
| ผลผลิต | Buchanan | $6,328 | |
| ผลผลิต | Davolio | $6,544 | |
| สูตร | คำอธิบาย | ผลลัพธ์ | |
| '=DCOUNTA(A6:C10,,C1:D3) | นับจํานวนแถว (2) ที่ตรงกับเงื่อนไขในแถว 2 (>6000 และ <6500) หรือตรงกับเงื่อนไขในแถว 3 (<500) | =DCOUNTA(A6:C10,,C1:D3) |
เกณฑ์ที่จะค้นหาค่าข้อความที่มีอักขระบางตัวร่วมกันแต่ไม่ใช่ทั้งหมด
เมื่อต้องการค้นหาค่าข้อความที่มีอักขระบางตัวร่วมกันแต่ไม่ใช่ทั้งหมด ให้ทำตามขั้นตอนใดขั้นตอนหนึ่ง หรือมากกว่าดังต่อไปนี้
- พิมพ์อักขระอย่างน้อยหนึ่งตัวโดยไม่มีเครื่องหมายเท่ากับ (=) เพื่อค้นหาแถวที่มีค่าข้อความในคอลัมน์ที่ขึ้นต้นด้วยอักขระเหล่านั้น ตัวอย่างเช่น ถ้าคุณพิมพ์ข้อความ Dav เป็นเงื่อนไข Excel จะค้นหา "Davolio," "David," และ "Davis"
- ใช้อักขระตัวแทน
สามารถใช้อักขระตัวแทนต่อไปนี้เป็นเกณฑ์การเปรียบเทียบได้
| ให้ใช้ | เมื่อต้องการค้นหา |
|---|---|
| ? (เครื่องหมายคำถาม) | อักขระใดๆ หนึ่งตัว เช่น ใช้ sm?th เพื่อหา “smith” และ “smyth” |
| * (เครื่องหมายดอกจัน) | จำนวนอักขระสูงสุดเท่าไหร่ก็ได้ เช่น ใช้ *east เพื่อหา "Northeast" และ "Southeast" |
| ~ (เครื่องหมายตัวหนอน) ตามด้วย ?, * หรือ ~ | เครื่องหมายคําถาม เครื่องหมายดอกจัน หรือเครื่องหมายตัวหนอน ตัวอย่างเช่น fy91~? จะค้นหา "fy91?" |
ในช่วงข้อมูลต่อไปนี้ (A6:C10) มีการใช้ช่วงเงื่อนไข (A1:B3) เพื่อนับแถวต่างๆ ที่มี "Me" เป็นอักขระตัวแรกในคอลัมน์ชนิด หรือแถวต่างๆ ที่มีอักขระตัวที่สองเป็น "u" ในคอลัมน์พนักงานขาย
| ชนิด | พนักงานขาย | ยอดขาย |
|---|---|---|
| Me | ||
| ?u* | ||
| ชนิด | พนักงานขาย | ยอดขาย |
| เครื่องดื่ม | Suyama | $5,122 |
| เนื้อสัตว์ | Davolio | $450 |
| ผลผลิต | Buchanan | $6,328 |
| ผลผลิต | Davolio | $6,544 |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| '=DCOUNTA(A6:C10,,A1:B3) | นับจำนวนแถว (3) ที่ตรงกับเงื่อนไขอย่างใดอย่างหนึ่ง A1:B3 | =DCOUNTA(A6:C10,,A1:B3) |
เกณฑ์ที่ได้สร้างไว้เป็นผลลัพธ์ของสูตร
คุณสามารถใช้ค่าการคํานวณที่เป็นผลลัพธ์ของสูตรเป็นเงื่อนไขของคุณได้ โปรดอย่าลืมประเด็นสําคัญต่อไปนี้:
- สูตรต้องประเมินค่าเป็น TRUE หรือ FALSE
- เนื่องจากว่าคุณกำลังใช้สูตร ให้ใส่สูตรที่ต้องการ และอย่าพิมพ์นิพจน์ในรูปแบบต่อไปนี้
='=entry'' - อย่าใช้ป้ายชื่อคอลัมน์สำหรับป้ายชื่อของเกณฑ์ ให้ปล่อยป้ายชื่อของเกณฑ์ว่างเปล่า หรือจะใช้ป้ายชื่อที่ไม่ใช่ป้ายชื่อคอลัมน์ในช่วงก็ได้ (ในตัวอย่างด้านล่าง ค่าเฉลี่ยจากการคำนวณ และการตรงกันพอดี)
ถ้าคุณใช้ป้ายชื่อคอลัมน์ในสูตรแทนการอ้างอิงเซลล์แบบสัมพัทธ์หรือชื่อช่วง Excel จะแสดงค่าความผิดพลาด เช่น #NAME ใช่ไหม หรือ #VALUE! ในเซลล์ที่มีเงื่อนไข ในเซลล์ที่มีเงื่อนไข คุณอาจละเลยข้อผิดพลาดนี้ได้ เพราะไม่มีผลกระทบต่อวิธีการกรองช่วง - สูตรที่คุณใช้เป็นเกณฑ์จะต้องใช้การอ้างอิงสัมพัทธ์เพื่ออ้างอิงไปยังเซลล์ที่สอดคล้องกันในแถวแรก
- การอ้างอิงอื่นๆ ในสูตรจะต้องเป็นการอ้างอิงแบบสัมบูรณ์
การกรองค่าที่มากกว่าค่าเฉลี่ยของค่าทั้งหมดในช่วงข้อมูล
ในช่วงข้อมูลต่อไปนี้ (A6:C10) มีการใช้ช่วงเงื่อนไข (C1:C2) เพื่อนับแถวต่างๆ ที่มีค่าในคอลัมน์ยอดขายมากกว่าค่าเฉลี่ยของค่ายอดขายทั้งหมด (C7:C10) ค่าเฉลี่ยจะถูกคํานวณในเซลล์ C4 และผลลัพธ์จะถูกรวมในเซลล์ C2 กับสูตร =">"&C4 เพื่อสร้างเกณฑ์ที่ใช้
| การขาย | ||
|---|---|---|
| =CONCATENATE("">,C4) | ||
| ค่าเฉลี่ยจากการคำนวณ | ||
| =AVERAGE(C7:C10) | ||
| ชนิด | พนักงานขาย | ยอดขาย |
| เครื่องดื่ม | Suyama | $5,122 |
| เนื้อสัตว์ | Davolio | $450 |
| ผลผลิต | Buchanan | $6,328 |
| ผลผลิต | Davolio | $6,544 |
| สูตร | คำอธิบาย | ผลลัพธ์ |
| '=DCOUNTA(A6:C10,,C1:C2) | นับจํานวนแถว (3) ที่ตรงตามเงื่อนไข (>4611) ใน C1:C2 เงื่อนไขใน C2 จะถูกสร้างขึ้นโดยการเรียงต่อ =">" กับเซลล์ C4 ซึ่งเป็นค่าเฉลี่ยจากการคํานวณของ C7:C10 | =DCOUNTA(A6:C10,,C1:C2) |