บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน 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 ไม่พยายามคํานวณ ให้ใช้ไวยากรณ์นี้:
=''= รายการ ''
เมื่อรายการคือข้อความหรือค่าที่คุณต้องการค้นหา ตัวอย่างเช่น:
สิ่งที่คุณพิมพ์ลงในเซลล์ |
สิ่งที่ 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) |
หลายเงื่อนไขในหลายคอลัมน์ซึ่งเงื่อนไขทั้งหมดต้องเป็นจริง
ตรรกะบูลีน: (ชนิด = "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 พนักงานขาย = "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
-
เนื่องจากว่าคุณกำลังใช้สูตร ให้ใส่สูตรที่ต้องการ และอย่าพิมพ์นิพจน์ในรูปแบบต่อไปนี้
=''= รายการ ''
-
อย่าใช้ป้ายชื่อคอลัมน์สำหรับป้ายชื่อของเกณฑ์ ให้ปล่อยป้ายชื่อของเกณฑ์ว่างเปล่า หรือจะใช้ป้ายชื่อที่ไม่ใช่ป้ายชื่อคอลัมน์ในช่วงก็ได้ (ในตัวอย่างด้านล่าง ค่าเฉลี่ยจากการคำนวณ และการตรงกันพอดี)
ถ้าคุณใช้ป้ายชื่อคอลัมน์ในสูตรแทนที่จะเป็นการอ้างอิงเซลล์แบบสัมพัทธ์หรือชื่อช่วง 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) |