บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน DCOUNTA ใน Microsoft Excel
คำอธิบาย
นับจำนวนเซลล์ที่ไม่ว่างในเขตข้อมูล (คอลัมน์) ของระเบียนในรายการหรือฐานข้อมูลที่ตรงกับเงื่อนไขที่คุณระบุ
เลือกอาร์กิวเมนต์เขตข้อมูลหรือไม่เลือกก็ได้ ถ้าละเขตข้อมูล DCOUNTA จะนับระเบียนทั้งหมดในฐานข้อมูลที่ตรงกับเงื่อนไขที่คุณระบุ
ไวยากรณ์
DCOUNTA(database, field, criteria)
ไวยากรณ์ของฟังก์ชัน DCOUNTA มีอาร์กิวเมนต์ดังนี้
-
Database (ต้องระบุ) ช่วงของเซลล์ที่ประกอบขึ้นเป็นรายการหรือฐานข้อมูล ฐานข้อมูลคือรายการของข้อมูลที่เกี่ยวข้อง โดยที่แถวของข้อมูลที่เกี่ยวข้องนั้นคือ ระเบียน และคอลัมน์ของข้อมูลคือ เขตข้อมูล แถวแรกของรายการจะมีป้ายชื่อของคอลัมน์แต่ละคอลัมน์
-
Field (ระบุหรือไม่ก็ได้) ระบุว่าจะใช้คอลัมน์ใดในฟังก์ชันนี้ ใส่ป้ายชื่อคอลัมน์ในเครื่องหมายอัญประกาศ เช่น "อายุ" หรือ "ผลตอบแทน" หรือตัวเลข (ไม่มีเครื่องหมายอัญประกาศ) ที่แสดงถึงตำแหน่งของคอลัมน์ภายในรายการ เช่น 1 หมายถึงคอลัมน์แรก ส่วน 2 หมายถึงคอลัมน์ที่สอง และเช่นนี้ไปเรื่อยๆ
-
Criteria (ต้องระบุ) ช่วงของเซลล์ที่มีเงื่อนไขที่คุณระบุ คุณสามารถใช้ช่วงใดเป็นอาร์กิวเมนต์ Criteria ก็ได้ ตราบเท่าที่ช่วงนั้นมีป้ายชื่อของคอลัมน์อย่างน้อยหนึ่งป้าย และมีอย่างน้อยหนึ่งเซลล์อยู่ใต้ป้ายชื่อคอลัมน์ที่คุณระบุเงื่อนไขสำหรับคอลัมน์นั้น
ข้อสังเกต
-
คุณสามารถใช้ช่วงใดเป็นอาร์กิวเมนต์ criteria ก็ได้ ตราบเท่าที่ช่วงนั้นมีป้ายชื่อของคอลัมน์อย่างน้อยหนึ่งป้าย และมีอย่างน้อยหนึ่งเซลล์อยู่ใต้ป้ายชื่อคอลัมน์ที่ใช้ระบุเงื่อนไข
ตัวอย่าง เช่น ถ้าช่วง G1:G2 มีป้ายชื่อคอลัมน์ Income ใน G1 และจำนวน $10,000 ใน G2 คุณก็สามารถกำหนดช่วงนั้นเป็น MatchIncome และใช้ชื่อนั้นเป็นอาร์กิวเมนต์ของ Criteria ในฟังก์ชันฐานข้อมูลได้
-
ห้ามวางช่วงเงื่อนไขไว้ใต้รายการ แม้ว่าช่วงเงื่อนไขนั้นจะอยู่ที่ตำแหน่งใดก็ได้บนเวิร์กชีต ถ้าคุณใส่ข้อมูลเพิ่มเติมลงในรายการ ข้อมูลใหม่นั้นจะถูกเพิ่มไว้ในแถวแรกใต้รายการ ถ้าแถวแรกใต้รายการนั้นไม่ว่าง Excel จะไม่สามารถเพิ่มข้อมูลใหม่ลงไปได้
-
ดูให้แน่ใจว่าช่วงเงื่อนไขไม่ได้ซ้อนทับรายการข้อมูล
-
เมื่อต้องการดำเนินการทั้งคอลัมน์ในฐานข้อมูล ให้เพิ่มบรรทัดว่างไว้ใต้ป้ายชื่อคอลัมน์ภายในช่วง criteria
ตัวอย่าง
คัดลอกข้อมูลตัวอย่างในตารางต่อไปนี้ และวางในเซลล์ A1 ของเวิร์กชีต Excel ใหม่ เพื่อให้สูตรแสดงผลลัพธ์ ให้เลือกสูตร กด F2 แล้วกด Enter ถ้าจำเป็น คุณสามารถปรับความกว้างของคอลัมน์เพื่อดูข้อมูลทั้งหมดได้ ถ้าคุณคัดลอกตัวอย่างใดๆ ต่อไปนี้ลงใน Excel โปรดดูให้แน่ใจว่าคุณเลือกเซลล์ทั้งหมดในตารางนี้แล้ว รวมถึงเซลล์บนสุดทางด้านซ้ายด้วย
ต้นไม้ | ความสูง | อายุ | ผลตอบแทน | ผลกำไร | ความสูง |
---|---|---|---|---|---|
="=Apple" |
>10 |
<16 |
|||
="=Pear" |
|||||
ต้นไม้ |
ความสูง |
อายุ |
ผลตอบแทน |
ผลกำไร |
|
Apple |
18 |
20 |
14 |
105.0 |
|
Pear |
12 |
12 |
10 |
96.0 |
|
Cherry |
13 |
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) ที่มี "แอปเปิล" ในคอลัมน์ A ที่มีความสูง >10 และ <16 เฉพาะแถว 8 เท่านั้นที่ตรงตามสามเงื่อนไขเหล่านี้ |
1 |
ตัวอย่างของเงื่อนไข
-
เมื่อคุณใส่ =ข้อความในเซลล์ Excel จะแปลที่เป็นสูตรและพยายามคำนวณ เมื่อต้องการใส่ =ข้อความเพื่อให้ Excel ไม่พยายามคำนวณค่าดังกล่าว ให้ใช้ไวยากรณ์ต่อไปนี้
=''= รายการ ''
เมื่อ รายการ คือข้อความหรือค่าที่คุณต้องการค้นหา ตัวอย่างเช่น
สิ่งที่คุณพิมพ์ลงในเซลล์ | สิ่งที่ Excel ประเมินและแสดง |
---|---|
="=Davolio" |
=Davolio |
="=3000" |
=3000 |
-
เมื่อคุณกรองข้อมูลข้อความ Excel จะไม่แยกความแตกต่างระหว่างอักขระตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก อย่างไรก็ตาม คุณสามารถใช้สูตรเพื่อค้นหาแบบตรงตามตัวพิมพ์ใหญ่-เล็กได้
ส่วนต่อไปนี้แสดงตัวอย่างของเกณฑ์ที่มีความซับซ้อน
หลายเกณฑ์ในหนึ่งคอลัมน์
ตรรกะบูลีน (พนักงานขาย = "Davolio" OR พนักงานขาย = "Buchanan")
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายเกณฑ์สำหรับหนึ่งคอลัมน์ ให้พิมพ์เกณฑ์ลงไปตรงด้านล่างของแต่ละเกณฑ์ในแต่ละแถวของช่วงเกณฑ์นั้น
ในช่วงข้อมูลต่อไปนี้ (A6:C10) มีการใช้ช่วงเงื่อนไข (B1:B3) เพื่อนับแถวต่างๆ ที่มี "Davolio" หรือ "Buchanan" ในคอลัมน์พนักงานขาย
พนักงานขาย | ||
---|---|---|
="=Davolio" |
||
="=Buchanan" |
||
ชนิด |
พนักงานขาย |
ยอดขาย |
เครื่องดื่ม |
Suyama |
$5,122 |
เนื้อสัตว์ |
Davolio |
$450 |
Buchanan |
Buchanan |
$6,328 |
พืชผัก |
Davolio |
$6,544 |
สูตร |
คำอธิบาย |
ผลลัพธ์ |
'=DCOUNTA(A6:C10,2,B1:B3) |
นับจำนวนแถว(3) ใน A6:C10 ที่ตรงกับเงื่อนไข "พนักงานขาย" อย่างใดอย่างหนึ่งในแถว 2 และ 3 |
=DCOUNTA(A6:C10,2,B1:B3) |
หลายเงื่อนไขในหลายคอลัมน์ซึ่งเงื่อนไขทั้งหมดต้องเป็นจริง
ตรรกะบูลีน (ชนิด = "Produce" AND ยอดขาย > 2000)
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายเงื่อนไขในหลายคอลัมน์ ให้พิมพ์เงื่อนไขทั้งหมดในแถวเดียวกันกับช่วงเงื่อนไข
ในช่วงข้อมูลต่อไปนี้ (A6:C12) มีการใช้ช่วงเงื่อนไข (A1:C2) เพื่อนับแถวต่างๆ ที่มี "Produce" ในคอลัมน์ชนิด และมีมูลค่ามากกว่า $2,000 ในคอลัมน์ยอดขาย
ชนิด | พนักงานขาย | ยอดขาย |
---|---|---|
="=Produce" |
>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 พนักงานขาย = "กิตติ")
เมื่อต้องการค้นหาแถวต่างๆ ที่ตรงกับหลายเกณฑ์ในหลายคอลัมน์ซึ่งเกณฑ์ใดเกณฑ์หนึ่งต้องเป็นจริง ให้พิมพ์เกณฑ์ในแต่ละแถวของช่วงเกณฑ์
ในช่วงข้อมูลต่อไปนี้ (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) |
หลายชุดของเงื่อนไขโดยที่แต่ละชุดของเงื่อนไขมีเงื่อนไขสำหรับหลายคอลัมน์
ตรรกะบูลีน ( (พนักงานขาย = "กิตติ" 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 |
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 |
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"
-
ใช้อักขระตัวแทน
สามารถใช้อักขระตัวแทนต่อไปนี้เป็นเกณฑ์การเปรียบเทียบได้
ให้ใช้ | เมื่อต้องการค้นหา |
---|---|
? (เครื่องหมายคำถาม) |
อักขระตัวเดียวตัวใดก็ได้ |
* (เครื่องหมายดอกจัน) |
อักขระจำนวนเท่าใดก็ได้ |
~ (เครื่องหมายตัวหนอน) ตามด้วย ?, * หรือ ~ |
เครื่องหมายคำถาม เครื่องหมายดอกจัน หรือเครื่องหมายตัวหนอน |
ในช่วงข้อมูลต่อไปนี้ (A6:C10) มีการใช้ช่วงเงื่อนไข (A1:B3) เพื่อนับแถวต่างๆ ที่มี "Me" เป็นอักขระตัวแรกในคอลัมน์ชนิด หรือแถวต่างๆ ที่มีอักขระตัวที่สองเป็น "u" ในคอลัมน์พนักงานขาย
ชนิด | พนักงานขาย | ยอดขาย |
---|---|---|
Me |
||
?u* |
||
ชนิด |
พนักงานขาย |
ยอดขาย |
เครื่องดื่ม |
Suyama |
$5,122 |
เนื้อสัตว์ |
Davolio |
$450 |
Buchanan |
Buchanan |
$6,328 |
พืชผัก |
Davolio |
$6,544 |
สูตร |
คำอธิบาย |
ผลลัพธ์ |
'=DCOUNTA(A6:C10,,A1:B3) |
นับจำนวนแถว (3) ที่ตรงกับเงื่อนไขอย่างใดอย่างหนึ่ง A1:B3 |
=DCOUNTA(A6:C10,,A1:B3) |
เกณฑ์ที่ได้สร้างไว้เป็นผลลัพธ์ของสูตร
คุณสามารถใช้ค่าจากการคำนวณที่เป็นผลลัพธ์ของสูตรเป็นเงื่อนไขของคุณได้ โปรดจำประเด็นสำคัญต่อไปนี้
-
สูตรต้องประเมินค่าเป็น TRUE หรือ FALSE
-
เนื่องจากว่าคุณกำลังใช้สูตร ให้ใส่สูตรที่ต้องการ และอย่าพิมพ์นิพจน์ในรูปแบบต่อไปนี้
=''= รายการ ''
-
อย่าใช้ป้ายชื่อคอลัมน์สำหรับป้ายชื่อของเกณฑ์ ให้ปล่อยป้ายชื่อของเกณฑ์ว่างเปล่า หรือจะใช้ป้ายชื่อที่ไม่ใช่ป้ายชื่อคอลัมน์ในช่วงก็ได้ (ในตัวอย่างด้านล่าง ค่าเฉลี่ยจากการคำนวณ และการตรงกันพอดี)
ถ้าคุณใช้ป้ายชื่อคอลัมน์ในสูตรแทนที่จะเป็นการอ้างอิงเซลล์แบบสัมพัทธ์หรือชื่อช่วง 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) |