T ฟังก์ชันที่ตรวจสอบว่าค่าเป็นข้อความหรือไม่ ถ้าใช่ส่งกลับข้อความเดิม ถ้าไม่ใช่ส่งกลับค่าว่าง ใช้ปลอดภัยกว่าการต่อข้อความตรงๆ เมื่อไม่แน่ใจว่าเซลล์ต้นทางเก็บอะไรอยู่
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| value | Any | ค่าหรือเซลล์ที่ต้องการตรวจสอบว่าเป็นข้อความหรือไม่ |
ฟังก์ชัน T ใช้สำหรับตรวจสอบว่าเซลล์ที่กำหนดเป็นข้อความหรือไม่ หากเป็นข้อความจะส่งกลับข้อความนั้น หากไม่เป็นข้อความ (เช่น ตัวเลข วันที่ ค่าตรรกะ) จะส่งกลับค่าว่างแทน
ที่ต้องเข้าใจคือ T ถูกสร้างมาให้ใช้กับ Lotus 1-2-3 เดิมๆ Microsoft เองก็ระบุตรงๆ ในเอกสารว่าส่วนใหญ่ไม่จำเป็นต้องใช้แล้ว เพราะ Excel จัดการแปลงค่าให้อัตโนมัติอยู่แล้วเวลาต้องใช้เป็นข้อความ ผมเจอ T โผล่มาเยอะสุดในสเปรดชีทเก่าที่ทำต่อกันมาหลายคน หรือในเทมเพลตรายงานที่ต้องต่อข้อความปลายทาง (เช่น “จัดทำโดย: ” ต่อชื่อ) แล้วไม่อยากให้ตัวเลขหรือวันที่หลุดเข้ามาปนโดยไม่ตั้งใจ
จุดที่คนพลาดบ่อยคือคิดว่า T จะจัดการทุกกรณีที่ไม่ใช่ข้อความให้เป็นค่าว่างหมด แต่จริงๆ แล้ว T ไม่แตะค่า error เลย ถ้าค่าที่ส่งเข้าไปเป็น #N/A หรือ #DIV/0! มันจะปล่อย error นั้นผ่านออกมาเหมือนเดิม ไม่ใช่ค่าว่าง ต้องดักด้วย IFERROR ก่อนถ้าไม่อยากให้ error หลุดออกไป
T("Excel") ตรวจสอบว่า "Excel" เป็นข้อความ? ใช่ ส่งกลับ "Excel" เดิมทุกตัวอักษร
T(100) ตรวจสอบว่า 100 เป็นข้อความ? ไม่ใช่ (100 เป็นตัวเลข) จึงส่งกลับค่าว่างแทนที่จะส่งกลับ 100
ถ้า B2 = "คุณสมชาย" (ข้อความ) → ได้ "จัดทำโดย: คุณสมชาย"
แต่ถ้า B2 ดันมีสูตรที่คืนตัวเลขหรือวันที่ (เช่น พิมพ์ผิดช่อง) T จะกรองทิ้งให้เหลือค่าว่าง ป้องกันไม่ให้รายงานโชว์ "จัดทำโดย: 45123" แบบเลขวันที่หลุดออกมา
หลายคนคิดว่า T จะจับทุกอย่างที่ไม่ใช่ข้อความให้กลายเป็นค่าว่าง แต่ error เป็นข้อยกเว้น T ปล่อย #N/A ผ่านออกมาเหมือนเดิม ถ้าไม่อยากให้ error หลุดออกไปต่อในรายงาน ต้องห่อด้วย IFERROR(T(…),"") อีกชั้น
T(A2:A10) ทำให้ทุกเซลล์ที่ไม่ใช่ข้อความ (ตัวเลข วันที่ ว่าง) กลายเป็น "" ส่วนเซลล์ที่เป็นข้อความจะยังคงค่าเดิม แล้ว <>"" เช็คว่าเหลือข้อความจริงกี่เซลล์ –() แปลง TRUE/FALSE เป็น 1/0 ให้ SUMPRODUCT รวมได้
ISTEXT ส่งกลับ TRUE/FALSE ที่ระบุว่าเซลล์เป็นข้อความหรือไม่ ส่วน T ส่งกลับค่าข้อความเอง (หรือค่าว่าง) T ใช้เมื่อต้องการค่าข้อความจริงไปต่อในสูตรอื่น ISTEXT ใช้เมื่อต้องการเช็กเพื่อใช้ในเงื่อนไข IF
T ไม่แตะ error เลย ถ้าค่าที่ส่งเข้าไปเป็น error มันจะปล่อย error นั้นผ่านออกมาเหมือนเดิม ไม่แปลงเป็นค่าว่างเหมือนกรณีตัวเลขหรือวันที่ ถ้าต้องการดัก error ด้วยต้องใช้ IFERROR(T(A1),"") ครอบอีกชั้น
T จะตรวจสอบประเภทข้อมูลจริงในเซลล์เท่านั้น ตัวเลขที่เก็บเป็นข้อความ (เช่นพิมพ์ '100 นำหน้าด้วยเครื่องหมายอะพอสทรอฟี ทำให้ชิดซ้าย) T จะมองว่าเป็นข้อความและส่งกลับค่าเดิม ต่างจาก 100 ตัวเลขจริงที่ T จะคืนค่าว่าง
ใช่ครับ คนละตัวกันเลย TEXT() ใช้แปลงตัวเลขหรือวันที่ให้เป็นข้อความตามรูปแบบที่กำหนด (เช่น TEXT(A1,"dd/mm/yyyy")) ส่วน T() แค่เช็คว่าค่าเป็นข้อความอยู่แล้วหรือไม่ ถ้าไม่ใช่ก็คืนค่าว่าง ไม่ได้แปลงอะไรให้เลย ชื่อคล้ายกันมากจนสับสนบ่อย
ใช้ T เมื่อต้องต่อข้อความ (concatenate) จากแหล่งที่ไม่แน่ใจประเภทข้อมูล และต้องการกันไม่ให้ตัวเลข/วันที่/ค่าตรรกะหลุดเข้ามาปนในสตริง เช่นทำ label หรือ footnote อัตโนมัติ แต่ถ้าจุดประสงค์คือเช็คเงื่อนไขเพื่อไปต่อใน IF ควรใช้ ISTEXT แทน เพราะอ่านสูตรเข้าใจง่ายกว่าและได้ TRUE/FALSE ตรงๆ
ฟังก์ชันที่ผู้เขียนโยงไว้กับ T จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
IFERROR ช่วยดักจับ Error ทุกประเภทที่เกิดขึ้นในสูตร (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL!) แล้วเปลี่ยนเป็นค่าที่เราต้องการแทน
.
ที่เจ๋งคือมันช่วยให้รายงานและ Dashboard ดูสะอาด ไม่มี Error แสดงให้ผู้ใช้งานเห็น โดยถ้าสูตรไม่มี Error ก็จะ return ผลลัพธ์ปกติ
.
ส่วนตัวผมคิดว่าฟังก์ชันนี้เป็น "ตัวช่วยมหาเทพ" สำหรับคนทำรายงานเลยครับ 😎
TINV หาค่าวิกฤต t (critical value) แบบสองหางจากความน่าจะเป็นและองศาอิสระ (deg_freedom) ใช้สร้างช่วงความเชื่อมั่นเมื่อไม่รู้ค่า SD ของประชากรจริง เช่น งานวิศวกรรมและงานควบคุมคุณภาพ เป็นฟังก์ชันเก่าที่ควรเปลี่ยนไปใช้ T.INV.2T
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่