
ใน Filemaker มี function ในการกรองเอาตัวอักษรที่ต้องการเอาไว้ เช่น ถ้าต้องการกรองเอาเฉพาะตัวเลขออกจากตัวหนังสือ
ใช้คำสั่ง filter( "abc12dd3ff45";"0123456789") จะได้ผลลัพธ์ 12345 เท่านั้น
แต่ถ้าต้องการกรอกเอาตัวหนังสือออกจากตัวเลขล่ะ แน่นอนว่าแค่ทำกลับกัน แต่ต้องพิมพ์ตัวหนังให้ครบ เช่น
filter( "ABC12dd3ff45";"abcdefghijklmnopqrstuvqxyz") จะได้ผลลัพธ์เป็น ddff
จะเห็นว่า ABC ไม่กรองออกเพราะไม่พิมพ์เข้าใน ถ้าจะกรองให้ครบทั้งตัวอักษรเล็กและใหญ่ ต้องพิมพ์ทั้งหมด 52 ตัวเลขทีเดียว
จะดีกว่าไหมถ้าแค่บอกว่า กรองเอาสิ่งที่ไม่ต้องการออก เช่น
filter( "abc12dd3ff45";"0123456789") แล้วได้คำตอบเป็น abcddff
ไปลอก function ของฝรั่งมาแล้ว คิดเองเสียเวลาเอามาใช้กันเลยดีกว่า
Exclude ( TextToFilter ; FilterText )
เป็น function ใช้กรองสิ่งที่ไม่ต้องการออกจาก text น่ะ ใช้งานได้ดี เลยเอามาบอกต่อ code เขายาวยืดเลย
Let ([
$Exc_Text = TextToFilter ;
$Exc_No = FilterText ;
$Exc_n = 0;
Exc_Calc = Substitute ( ( 10 ^ Length ( $Exc_No ) ) - 1; 9; "Quote ( Middle ( $Exc_No; let ( $Exc_n = $Exc_n + 1; $Exc_n ); 1 ) ) & \"^#|#^\" & " );
Exc_Result = "[" & Substitute ( Case ( not IsEmpty ( $Exc_No ); Evaluate ( Exc_Calc & "\"\"" ) ); [ "^#|#^"; ";\"\"]; [" ] ) & "\"\";\"\"] )"
];
Evaluate ( "Substitute ( $Exc_Text; " & Exc_Result )
)
ที่มา : https://www.briandunning.com/cf/922