ซ่อมคอมพิวเตอร์นอกสถานที่ บางกะปิ รามคำแหง

วันอาทิตย์ที่ 2 มีนาคม พ.ศ. 2557

การนับเฉพาะตัวอักษรที่ต้องการในช่วงเซลล์ที่ระบุ

ผมไปเจอคำถามหนึ่งในเว็บกูรู (http://guru.google.co.th) เกี่ยวกับ Excel คำถามประมาณว่า..
"ถ้าต้องการนับเฉพาะเซลล์ที่มีอักษรตัว m ในช่วงเซลล์ A1:A10 จะต้องใช้สูตรอย่างไร?"

เนื่องจากคำถามไม่มีไฟล์แนบหรือภาพประกอบ หลังอ่านคำถามแล้ว ผมจึงตีความได้สองลักษณะคือ

  1. ในช่วง A1:A10 นั้น แต่ละเซลล์มีอักษรแค่ตัวเดียว อาจจะเป็นตัว m, ตัว n, ตัว s หรืออื่นๆ แต่ต้องการนับเฉพาะตัว m เท่านั้นว่ามีอยู่กี่ตัว หรือ
  2. ในช่วงเซลล์ A1:A10 มีข้อความต่างๆ เช่น ann, max, joy, tem เป็นต้น ซึ่งในแต่ละข้อความนั้น มีอักษรตัว m อยู่ และต้องการนับว่ามีกี่เซลล์ที่มีอักษรตัว m

กรณีความต้องการโจทย์เป็นแบบที่หนึ่ง
จากรูป ถ้าโจทย์เป็นลักษณะแบบตารางที่ 1 ทางซ้ายมือ แบบนี้ไม่ยุ่งยากครับ ใช้หลักการ "นับจำนวนแบบมีเงื่อนไข" ซึ่งผมเคยเขียนแนะนำไปในบทความก่อนหน้านี้แล้ว นั่นคือการใช้ฟังก์ชัน COUNTIF เช่น
=COUNTIF(A1:A10,"m")
แต่การเขียนสูตรที่ดี ไม่ควรเอาเงื่อนไขใส่ลงไปในสูตรโดยตรง เพราะจะไม่สะดวกเวลาที่เราต้องการเปลี่ยนเงื่อนไขเป็นอย่างอื่น ดังนั้น ให้ใส่เงื่อนไขหรือ ตัว m ไว้ในเซลล์หนึ่ง แล้วเขียนสูตรเพื่อแสดงผลลัพธ์ โดยอ้างอิงเงื่อนไขไปยังเซลล์นั้น ดังรูป


กรณีความต้องการโจทย์เป็นแบบที่สอง
จากรูปแรก ถ้าโจทย์เป็นลักษณะแบบตารางที่ 2 ทางขวามือ ก็จะยุ่งยากขึ้นมาเล็กน้อย เพราะเราต้องนับเฉพาะเซลล์ที่มีอักษรตัว m ประกอบอยู่เท่านั้น ดังนั้น เราจึงต้องหาก่อนว่า ข้อความในเซลล์ไหนบ้าง ที่มีอักษรตัว m
วิธีที่ 1 การใช้สูตรแบบธรรมดา
วิธีนี้จะต้องทำอย่างน้อย 2 ขั้นตอน คือ ขั้นตอนแรก ต้องหาว่าเซลล์ใดบ้างที่มีตัวอักษรที่เราต้องการ จากรูปด้านล่าง ผมใช้ฟังก์ชัน FIND เพื่อหาอักษร m ว่ามีอยู่ในข้อความหรือไม่ ซึ่งถ้ามี ฟังก์ชัน FIND ก็จะส่งผลลัพธ์เป็นตัวเลขออกมา แต่ถ้าไม่มี ก็จะส่งผลลัพธ์เป็น #VALUE
B1 =FIND("m",A1) Enter แล้วคัดลอกสูตรลงมาจนถึง B1
ขั้นตอนที่สอง ก็ทำการนับว่า จากขั้นตอนแรก มีผลลัพธ์ที่เป็นตัวเลขจำนวนกี่เซลล์ (ไม่สนใจว่าเป็นตัวเลขอะไร) โดยใช้ฟังก์ชัน COUNT ซึ่งฟังก์ชันนี้ จะนับเฉพาะเซลล์ที่เป็นตัวเลขเท่านั้น
=COUNT(B1:B10)

วิธีที่ 2 การใช้สูตรแบบอะเรย์
ผมใช้วิธีการเขียนสูตร COUNT แบบอะเรย์ (Array) เพื่อให้สั้น และกระชับในขั้นตอนเดียว (ไม่จำเป็นต้องเขียนสูตรในคอลัมน์ B ก่อน เหมือนกับวิธีการแรก) โดยซ้อนฟังก์ชัน FIND ไว้ในสูตร เพื่อให้ FIND หาดูว่า มีอักษร m อยู่ในข้อความแต่ละเซลล์หรือไม่ ซึ่งถ้ามี ฟังก์ชัน FIND ก็จะส่งผลลัพธ์ออกมาเป็นตัวเลข ที่เป็นตำแหน่งของตัว m ในข้อความ แต่ถ้าไม่พบตัว m ในข้อความ ก็จะส่งผลลัพธ์เป็นค่าผิดพลาด #VALUE!
เนื่องจากเราไม่สนใจว่าผลลัพธ์ของ FIND จะเป็นเลขอะไร เราสนใจแค่ว่า ผลลัพธ์นั้น "เป็นตัวเลข" (หาเจอ) หรือ "ไม่เป็นตัวเลข" (หาไม่เจอ) ซึ่งฟังก์ชัน COUNT ก็จะนับเฉพาะเซลล์ที่เป็นตัวเลขเท่านั้น
=COUNT(FIND("m",A1:A10))
เมื่อพิมพ์สูตรแล้ว ให้กดแป้น Ctrl+Shit+Enter 3 แป้นพร้อมกัน สูตรจะเติมเครื่องหมายปีกกาให้โดยอัตโนมัติ
{=COUNT(FIND("m",A1:A10))}
ทำนองเดียวกัน การเขียนสูตรที่ดี ไม่ควรเอาเงื่อนไขใส่ลงไปในสูตรโดยตรง ดังนั้น ให้ใส่เงื่อนไขหรือ ตัว m ไว้ในเซลล์หนึ่ง แล้วเขียนสูตรเพื่อแสดงผลลัพธ์ โดยอ้างอิงเงื่อนไขไปยังเซลล์นั้น ดังรูปข้างต้น

0 ความคิดเห็น:

แสดงความคิดเห็น