FORMULATEXT ดึงสูตรจากเซลล์มาแสดงเป็นข้อความ ใช้สำหรับ Audit ตรวจสอบสูตร หรือทำ Documentation ของ Workbook ถ้าเซลล์ไม่มีสูตรจะคืนค่า #N/A
=FORMULATEXT(reference)
=FORMULATEXT(reference)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| reference | Reference | Yes | การอ้างอิงเซลล์ที่ต้องการดึงสูตรออกมา สามารถอ้างอิงไปยัง Sheet อื่นหรือ Workbook อื่นที่เปิดอยู่ได้ |
ตรวจสอบสูตรคำนวณในรายงานการเงินโดยดึงสูตรทั้งหมดมาแสดงใน Sheet แยก ช่วยให้ Auditor ตรวจสอบได้ง่ายและครบถ้วน
ทำเอกสารอธิบายการทำงานของ Workbook โดยแสดงสูตรสำคัญทั้งหมดพร้อมคำอธิบาย เหมาะสำหรับการส่งมอบงานหรือ Training
เปรียบเทียบสูตรในหลายเซลล์พร้อมกัน เพื่อหาว่าเซลล์ไหนมีสูตรผิดพลาดหรือแตกต่างจากที่ควรจะเป็น
FORMULATEXT(B2)=FORMULATEXT(B2)
=SUM(A1:A10)
FORMULATEXT(Report!C10)=FORMULATEXT(Report!C10)
=Revenue-Expenses
IF(ISNA(FORMULATEXT(D5)), "ไม่มีสูตร", FORMULATEXT(D5))=IF(ISNA(FORMULATEXT(D5)), "ไม่มีสูตร", FORMULATEXT(D5))
ไม่มีสูตร (ถ้า D5 เป็นค่าคงที่) หรือ =A1*B1 (ถ้า D5 มีสูตร)
"Cell " & ADDRESS(ROW(E10),COLUMN(E10)) & ": " & FORMULATEXT(E10)="Cell " & ADDRESS(ROW(E10),COLUMN(E10)) & ": " & FORMULATEXT(E10)
Cell $E$10: =VLOOKUP(ProductID,PriceTable,2,FALSE)
IF(ISERROR(A1:A20), FORMULATEXT(A1:A20), "OK")=IF(ISERROR(A1:A20), FORMULATEXT(A1:A20), "OK")
Array ผลลัพธ์แสดงสูตรเฉพาะเซลล์ที่มี Error
IF(ISFORMULA(DataSheet!A1:E10), FORMULATEXT(DataSheet!A1:E10), "[Value]")=IF(ISFORMULA(DataSheet!A1:E10), FORMULATEXT(DataSheet!A1:E10), "[Value]")
ตาราง 50 เซลล์ แสดงสูตรหรือ [Value]
มีสาเหตุหลายอย่างครับ:
1. เซลล์ที่อ้างอิงไม่มีสูตร (เป็นค่าคงที่หรือเซลล์ว่าง)
2. สูตรยาวเกิน 8,192 ตัวอักษร
3. Sheet มีการป้องกัน (Protected) และซ่อนสูตร
4. อ้างอิงไปยัง Workbook อื่นที่ไม่ได้เปิดอยู่
.
ลองเช็คเงื่อนไขเหล่านี้ดูนะครับ 😅
ได้ครับ! สามารถใช้ได้ทั้ง =FORMULATEXT(Sheet2!A1) หรือ =FORMULATEXT([OtherFile.xlsx]Sheet1!A1)
.
แต่สำหรับ Workbook อื่น ไฟล์นั้นต้องเปิดอยู่ใน Excel ด้วย ไม่งั้นจะได้ #N/A ครับ 💡
ใน Excel 365 จะคืนค่าเป็น Array และ Spill ผลลัพธ์ออกมาหลายเซลล์ เช่น =FORMULATEXT(A1:A5) จะแสดงสูตรของ 5 เซลล์
.
แต่ใน Excel เวอร์ชันเก่าจะคืนค่าเฉพาะเซลล์ซ้ายบนสุดของ Range เท่านั้นครับ 😎
ไม่ครับ! แม้จะอ้างอิงไปยังเซลล์ที่มีสูตร FORMULATEXT เอง ก็ไม่ทำให้เกิด Circular Reference
.
Excel ออกแบบให้ FORMULATEXT อ่านค่าสูตรเป็น Text โดยไม่ evaluate สูตรซ้ำ เลยไม่มีปัญหานี้ครับ 💡
ใช้ฟังก์ชัน ISFORMULA ครับ! ถ้าเซลล์มีสูตรจะคืน TRUE ถ้าไม่มีจะคืน FALSE
.
ตัวอย่าง: =IF(ISFORMULA(A1), FORMULATEXT(A1), “ไม่มีสูตร”)
.
ส่วนตัวผมแนะนำใช้คู่กันเสมอ เพื่อหลีกเลี่ยง #N/A ครับ 😎
ได้ครับ! Google Sheets รองรับ FORMULATEXT เหมือนกัน Syntax และพฤติกรรมเหมือน Excel ทุกประการ
.
เลยใช้สูตรเดียวกันได้เลยถ้าต้องทำงานข้ามแพลตฟอร์ม 💡
Ctrl+` จะแสดงสูตรทุกเซลล์ใน Sheet พร้อมกัน ทำให้อ่านยาก
.
FORMULATEXT ดีกว่าตรงที่:
– เลือกแสดงเฉพาะเซลล์ที่ต้องการ
– ผลลัพธ์เป็น Text นำไปใช้ต่อได้
– ไม่รบกวนการแสดงผลปกติ
.
ส่วนตัวผมใช้ FORMULATEXT เกือบทุกครั้งครับ 😎
FORMULATEXT ใช้ดึงสูตรจากเซลล์ที่ระบุมาแสดงเป็นข้อความ โดยจะแสดงเหมือนกับที่เห็นใน Formula Bar ทุกประการ
.
ที่เจ๋งคือมันเหมาะสำหรับการทำ Documentation หรือ Audit สูตรในไฟล์ Excel โดยไม่ต้องคลิกไปดูทีละเซลล์ เรียกได้ว่าประหยัดเวลาไปเยอะมากครับ
.
ส่วนตัวผมใช้บ่อยมากตอนต้องส่งมอบงานให้คนอื่น หรือตอนตรวจสอบว่าสูตรในแต่ละเซลล์ถูกต้องหรือไม่ 😎