Skip to content

Null Decision Tree

ค่า “ว่าง” มี 3 แบบที่ต่างกันสิ้นเชิง — ถ้าเลือกผิด ข้อมูลจะผิดเงียบๆ โดยไม่มี error

ไม่ว่าง มีข้อมูล ดูเหมือนว่าง ไม่มีอะไรเลย ไม่รู้ค่า มี empty string ตั้งใจ มีเลข 0 เซลล์นี้ว่างหรือเปล่า? ใช้ค่าตามปกติ มีอะไรอยู่จริงไหม? NULL / None / pd.NA / blank cell Empty string: SQL double-quote double-quote / Python double-quote double-quote / Sheets equals double-quote double-quote Number zero: ไม่ใช่ค่าว่าง! ตรวจด้วย IS NULL / is None / ISBLANK ตรวจด้วย equals double-quote double-quote / len equals 0 ตรวจด้วย equals 0 / == 0

3 ค่าว่างที่ต่างกัน

Section titled “3 ค่าว่างที่ต่างกัน”

1. NULL / None / Blank — “ไม่รู้ค่า”

Section titled “1. NULL / None / Blank — “ไม่รู้ค่า””

ความหมาย: ไม่มีข้อมูล — ไม่ได้หมายความว่าค่าเป็นศูนย์ หรือว่าง แต่หมายความว่า ยังไม่รู้

ตัวอย่างจริง:

  • ลูกค้าไม่ได้กรอกเบอร์โทร → phone = NULL (ไม่รู้เบอร์)
  • ยังไม่ได้ตรวจคะแนน → score = NULL (ยังไม่รู้คะแนน)
// Blank cell — ไม่ได้พิมพ์อะไรเลย
=ISBLANK(A1) → TRUE
=A1 = "" → TRUE // ⚠️ Sheets ถือว่า blank = ""
=TYPE(A1) → 1 // ⚠️ returns 1 (number) ไม่ใช่ "null"!
// สำคัญ: Sheets ไม่มี NULL จริงๆ!
// blank cell ≈ NULL แต่ไม่เหมือน 100%

2. Empty String — “รู้ว่าว่าง”

Section titled “2. Empty String — “รู้ว่าว่าง””

ความหมาย: มีข้อมูล แต่ข้อมูลนั้นว่างเปล่า — ต่างจาก NULL ตรงที่ “ตั้งใจ” ให้ว่าง

ตัวอย่างจริง:

  • กรอก note ว่า “ไม่มีอะไร” แล้วลบข้อความออก → note = "" (ตั้งใจว่าง)
  • ช่อง middle name ที่กรอกว่าไม่มี → middle_name = "" (ไม่มี middle name)
// พิมพ์สูตร ="" ในเซลล์
=ISBLANK(A1) → FALSE // มีสูตรอยู่!
=A1 = "" → TRUE // ค่าเป็น empty string
=LEN(A1) → 0 // ความยาว 0
=COUNTBLANK(A1) → 1 // ⚠️ COUNTBLANK นับ "" ด้วย!

3. Zero (0) — “รู้ว่าเป็นศูนย์”

Section titled “3. Zero (0) — “รู้ว่าเป็นศูนย์””

ความหมาย: ค่าตัวเลข 0 — ไม่ว่าง ไม่ใช่ null เป็นตัวเลขจริงๆ

ตัวอย่างจริง:

  • สินค้าราคา 0 บาท (แจกฟรี) → price = 0 (ไม่ใช่ null)
  • ยอดเงินคงเหลือ 0 → balance = 0 (มีเงินอยู่ แค่เป็น 0)
  • คะแนนสอบ 0 → score = 0 (ทำสอบแล้ว ได้ 0)
// เซลล์ที่มี 0
=ISBLANK(A1) → FALSE // 0 ไม่ใช่ blank!
=A1 = 0 → TRUE
=A1 = "" → FALSE // 0 ≠ ""
=TYPE(A1) → 1 // number
// ⚠️ ถ้า format เป็น "Automatic" บางครั้ง 0 อาจดูเหมือนว่าง
// Format > Number > Number → จะเห็น 0 ชัดเจน

3 ค่าว่างที่ต่างกัน A B C
NULL / None / BlankEmpty String ""Zero 0
ความหมายไม่รู้ค่ารู้ว่าว่าง (ตั้งใจ)รู้ว่าเป็น 0
Sheetsblank cell=""0
CNULL pointer"" (1 byte: \0)0 (integer)
PythonNone / pd.NA""0
SQLNULL''0
ตรวจด้วยIS NULL / is None / ISBLANK= "" / len() == 0== 0
SUM ใน SQLข้าม (ไม่นับ)ERROR (ไม่ใช่ตัวเลข)นับเป็น 0
COUNT ใน SQLCOUNT(col) ข้ามนับนับ
AVG ใน SQLข้าม (ไม่หาร)ERRORหาร (ลดค่า AVG)

เมื่อไหร่ใช้อะไร?

Section titled “เมื่อไหร่ใช้อะไร?”
สถานการณ์ใช้ทำไม
ลูกค้าไม่ได้กรอกเบอร์NULLไม่รู้ค่า
ลูกค้ากรอก “ไม่มี” แล้วลบ""ตั้งใจว่าง
สินค้าราคาฟรี0มีค่า = ศูนย์
คะแนนสอบยังไม่ประกาศNULLยังไม่รู้
คะแนนสอบ = 00รู้แล้ว = ศูนย์
หมายเหตุไม่มีNULLไม่มีข้อมูล
หมายเหตุว่าง (ตั้งใจ)""มีข้อมูล แค่ว่าง