Sunday, December 1, 2019

7:03 PM
2


ใน 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

บทความอื่นๆ