ISTEXT ตรวจสอบว่าค่าในเซลล์เป็นข้อความจริงหรือไม่ จุดเด่นของมันคือมันแยกความแตกต่างระหว่าง ‘123’ (ข้อความ) กับ 123 (ตัวเลข) ซึ่งช่วยเมื่อต้องการตรวจสอบรูปแบบข้อมูลก่อนคำนวณ
=ISTEXT(value)
=ISTEXT(value)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| value | Any | Yes | ค่า เซลล์ หรือผลลัพธ์จากสูตรที่ต้องการตรวจสอบ สามารถเป็นข้อความ ตัวเลข วันที่ boolean หรือค่า error |
รหัสสินค้าบางครั้งเป็นตัวเลขล้วนแต่ต้องเก็บเป็น Text (เพื่อรักษาเลขนำศูนย์) ใช้ ISTEXT ตรวจสอบความถูกต้องของ Data Type
ใช้ IF(ISTEXT(A1), A1, "") เพื่อดึงเฉพาะข้อมูลที่เป็นข้อความออกมาจากรายการที่ปนกัน
ISTEXT("Excel")=ISTEXT("Excel")
TRUE
ISTEXT("123")=ISTEXT("123")
TRUE
ISTEXT(123)=ISTEXT(123)
FALSE
ISTEXT(A1)=ISTEXT(A1)
FALSE
ISTEXT(CONCATENATE("สวัสดี"," ","Excel"))=ISTEXT(CONCATENATE("สวัสดี"," ","Excel"))
TRUE
ISTEXT(" ")=ISTEXT(" ")
TRUE
ได้ TRUE ครับ เพราะ “” คือ Empty Text String ซึ่งเป็นข้อความประเภทหนึ่ง ต่างจากเซลล์ว่างแบบปกติที่ ISTEXT จะคืนค่า FALSE
ตรงข้ามกันครับ ISTEXT คืนค่า TRUE ถ้าเป็นข้อความ ส่วน ISNONTEXT คืนค่า TRUE ถ้า **ไม่ใช่** ข้อความ เช่น ตัวเลข วันที่ หรือ boolean
เพราะ “123” อยู่ในเครื่องหมายคำพูด ถูกเก็บเป็นข้อความไม่ใช่ตัวเลข Excel ไม่แปลงข้อความตัวเลขให้เป็นตัวเลขอัตโนมัติ ถ้าต้องการแปลงให้ใช้ VALUE() ก่อน
ถ้า ISTEXT ได้ TRUE สำหรับวันที่ แสดงว่าวันที่ถูกเก็บแบบข้อความไม่ใช่วันที่จริง ผมแนะนำให้ใช้ DATEVALUE() หรือ VALUE() แปลงก่อน แล้วตรวจสอบฟอร์แมตดังนี้ =TEXT(DATEVALUE(A1),”dd/mm/yyyy”)
ลองแบบนี้ครับ =IF(ISTEXT(A1),”เป็นข้อความ”,”ไม่ใช่ข้อความ”) ถ้า A1 เป็นข้อความจะแสดง ‘เป็นข้อความ’ ถ้าไม่ใช่จะแสดง ‘ไม่ใช่ข้อความ’
ใช้ =SUMPRODUCT(–ISTEXT(A1:A10)) หรือ =COUNTIF(A1:A10,”>=”&CHAR(0)) แต่วิธีแรกสะอาดกว่า SUMPRODUCT จะนับเซลล์ที่คืนค่า TRUE ได้อย่างชัดเจน
ISTEXT คือฟังก์ชันตรวจสอบประเภทข้อมูลที่ง่ายที่สุดในกลุ่ม IS functions โดยมันจะวิ่งไปดูเซลล์แล้วบอกว่า ‘นี่ข้อความรึเปล่า’ ถ้าใช่จะคืนค่า TRUE ถ้าไม่ใช่ (เป็นตัวเลข วันที่ boolean หรือว่าง) ก็คืนค่า FALSE
ที่เจ๋งคือมันยังแยกความแตกต่างระหว่างตัวเลขแท้กับตัวเลขที่ถูกเก็บแบบข้อความ ตัวอย่างเช่น “123” (มีเครื่องหมายคำพูด) ก็คืนค่า TRUE แม้มันดูเป็นตัวเลขก็เถิด บันทึกนี้ช่วยมากเมื่อต้องทำความสะอาดข้อมูลก่อน SUM หรือ AVERAGE
ส่วนตัวผมใช้ ISTEXT บ่อยมากเวลาต้องตรวจสอบว่าข้อมูลที่อิมพอร์ตมาถูกต้องรึเปล่า เราจะรู้ได้ว่ามีตัวเลขโผล่มาแบบข้อความซ่อนอยู่ข้างในซึ่งมันจะหลอกได้ว่าเป็นตัวเลขจริง ผมแนะนำให้ใช้มันรวมกับ IF เพื่อตรวจสอบข้อมูลก่อนการประมวลผล