TYPE & IS Functions
ฟังก์ชัน TYPE()
Section titled “ฟังก์ชัน TYPE()”TYPE() คืนค่าตัวเลขที่บอกประเภทข้อมูลของ cell:
=TYPE(A1)| ค่าที่คืน | ประเภท | ตัวอย่าง |
|---|---|---|
1 | Number | 42, 3.14, วันที่ |
2 | Text | "สวัสดี", "00123" |
4 | Boolean | TRUE, FALSE |
16 | Error | #N/A, #VALUE! |
64 | Array | {1,2,3} |
ลองใส่ข้อมูลใน A1:A5 แล้วใช้ TYPE() ตรวจ:
| A | B (สูตร) | B (ผลลัพธ์) |
|---|---|---|
42 | =TYPE(A1) | 1 |
สวัสดี | =TYPE(A2) | 2 |
TRUE | =TYPE(A3) | 4 |
=1/0 | =TYPE(A4) | 16 |
1/15/2025 | =TYPE(A5) | 1 |
สังเกต: วันที่คืน 1 (Number) เพราะเก็บเป็น serial number
// C ไม่มี TYPE() แต่ใช้ typeof (GCC extension)// หรือตรวจ type ตอน compile ด้วย _Generic (C11)#define TYPE_NAME(x) _Generic((x), \ int: "int", \ float: "float", \ char*: "string", \ default: "unknown")
printf("%s\n", TYPE_NAME(42)); // "int"printf("%s\n", TYPE_NAME(3.14f)); // "float"# Python ใช้ type() ได้ตรง ๆprint(type(42)) # <class 'int'>print(type("hello")) # <class 'str'>print(type(True)) # <class 'bool'>print(type(3.14)) # <class 'float'>
# isinstance() ตรวจสอบ typeisinstance(42, int) # Trueisinstance("hi", str) # True-- SQL ใช้ TYPEOF() ใน SQLiteSELECT TYPEOF(42); -- 'integer'SELECT TYPEOF('hello'); -- 'text'SELECT TYPEOF(3.14); -- 'real'SELECT TYPEOF(NULL); -- 'null'
-- MySQL ใช้ column type จาก schemaDESCRIBE my_table;กลุ่มฟังก์ชัน IS
Section titled “กลุ่มฟังก์ชัน IS”ฟังก์ชัน IS คืนค่า TRUE หรือ FALSE:
| ฟังก์ชัน | ตรวจอะไร | ตัวอย่างที่ได้ TRUE |
|---|---|---|
ISTEXT(A1) | เป็น Text? | "hello", "123" (text) |
ISNUMBER(A1) | เป็น Number? | 42, วันที่ |
ISDATE(A1) | เป็น Date? | 1/15/2025 |
ISBLANK(A1) | ว่างเปล่า? | cell ที่ไม่มีอะไร |
ISLOGICAL(A1) | เป็น Boolean? | TRUE, FALSE |
ISERROR(A1) | เป็น Error? | #N/A, #VALUE! |
เทคนิค: ใช้ IS ร่วมกับ IF
Section titled “เทคนิค: ใช้ IS ร่วมกับ IF”// ตรวจก่อนคำนวณ=IF(ISNUMBER(A1), A1 * 2, "ไม่ใช่ตัวเลข")
// ตรวจว่าว่างไหม=IF(ISBLANK(A1), "กรุณากรอกข้อมูล", A1)
// ตรวจ error ก่อนใช้=IF(ISERROR(VLOOKUP(A1, B:C, 2, 0)), "ไม่พบ", VLOOKUP(A1, B:C, 2, 0))ISDATE() vs ISNUMBER() กับวันที่
Section titled “ISDATE() vs ISNUMBER() กับวันที่”กรณีพิเศษที่ต้องระวัง:
| Cell | ISNUMBER() | ISDATE() | TYPE() |
|---|---|---|---|
1/15/2025 (วันที่) | TRUE | TRUE | 1 |
45672 (ตัวเลข) | TRUE | FALSE | 1 |
ถ้าต้องการแยก Date ออกจาก Number ธรรมดา — ใช้ ISDATE() ไม่ใช่ ISNUMBER()
TYPE()คืนตัวเลข: 1=Number, 2=Text, 4=Boolean, 16=Error, 64=Array- กลุ่ม IS คืน TRUE/FALSE สำหรับตรวจ type เฉพาะ
- วันที่เป็น Number ด้วย — ใช้
ISDATE()เพื่อแยก - ใช้ IS ร่วมกับ IF เพื่อป้องกัน error ในสูตร