Skip to content

Lab: Count Missing Phone Numbers

คุณได้รับข้อมูลนักเรียน 8 คน และต้องตอบคำถามเดียว: “มีนักเรียนกี่คนที่ไม่มีเบอร์โทร?” — ฟังดูง่าย แต่คำตอบขึ้นอยู่กับว่าคุณนิยาม “ไม่มี” ยังไง

เวลาที่ใช้: ~20 นาที

student_idnamephone
001Ploy0812345678
002Som(ว่าง)
003Tong
004Fah0898765432
005Bank(ว่าง)
006Mint0
007Pim0856781234
008Ice(ว่าง)

หมายเหตุ:

  • Som (002) — ยังไม่เคยกรอกเบอร์ → NULL
  • Tong (003) — กรอกแล้วลบออก → empty string ""
  • Bank (005) — ยังไม่เคยกรอกเบอร์ → NULL
  • Mint (006) — กรอกผิดเป็น 0zero (มีค่า แต่ไม่ใช่เบอร์จริง)
  • Ice (008) — ยังไม่เคยกรอกเบอร์ → NULL
  1. เตรียมข้อมูลในแต่ละเครื่องมือ (ดู tab ด้านล่าง)

  2. ตอบ 3 คำถาม:

    • คำถาม A: มีนักเรียนกี่คนที่ phone เป็น NULL / blank?
    • คำถาม B: มีนักเรียนกี่คนที่ phone เป็น empty string?
    • คำถาม C: มีนักเรียนกี่คนที่ “ไม่มีเบอร์โทรที่ใช้ได้” (รวมทั้ง NULL, empty string, และ 0)?
  3. เปรียบเทียบคำตอบจากทุกเครื่องมือ — ต้องตรงกัน!

สร้าง sheet ใหม่ พิมพ์ข้อมูลตามนี้:

A (student_id)B (name)C (phone)
001Ploy0812345678
002Som(เว้นว่าง)
003Tong="" (พิมพ์สูตร)
004Fah0898765432
005Bank(เว้นว่าง)
006Mint0
007Pim0856781234
008Ice(เว้นว่าง)

ใช้สูตรเหล่านี้หาคำตอบ:

  • คำถาม A: =COUNTBLANK(C1:C8) ให้เท่าไหร่? แล้ว =COUNTIF(C1:C8,"") ล่ะ?
  • คำถาม B: ลองใช้ =SUMPRODUCT((C1:C8="")*ISBLANK(C1:C8)=FALSE*1) หรือวิธีอื่น
  • คำถาม C: ลองรวมทุกเงื่อนไขเข้าด้วยกัน

Hint: COUNTBLANK นับทั้ง blank และ empty string — คุณต้องหาวิธีแยก

ดูเฉลย

คำตอบ:

  • A: NULL / blank = 3 คน (Som, Bank, Ice)
  • B: Empty string = 1 คน (Tong)
  • C: ไม่มีเบอร์ที่ใช้ได้ = 5 คน (Som, Tong, Bank, Mint, Ice)

ผลลัพธ์ต้องตรงกันทุกเครื่องมือ:

SheetsPythonSQL
A (NULL)COUNTBLANK = 4 (!) ต้องหักลบ empty stringisna().sum() = 3phone IS NULL → 3
B (empty)ต้องคำนวณแยก = 1(phone == '').sum() = 1phone = '' → 1
C (unusable)555

Sheets trap: COUNTBLANK(C1:C8) ให้ 4 ไม่ใช่ 3 — เพราะมันนับทั้ง blank (3 คน) และ empty string (1 คน) รวมกัน!

ถ้าต้องการนับแค่ “blank จริงๆ” ใน Sheets ต้องใช้:

=COUNTIF(C1:C8,"") - SUMPRODUCT((C1:C8="")*NOT(ISBLANK(C1:C8))*1)

หรือวิธีง่ายกว่า:

=SUMPRODUCT(ISBLANK(C1:C8)*1)

ซึ่งให้ 3 — ถูกต้อง

บทเรียนสำคัญ: COUNTBLANK ใน Sheets = NULL + empty string — อย่าใช้มันถ้าต้องการนับแค่ NULL!