なんだ、初めは簡単だと思っていました。
2021の後のブランクで切り取ってしまえば、日付だけですよ。
しかし、変換後はDate型なんですよね。
初めはテキストを日付に変える式を使えばと思ったのですが、数式のパラメータは
YYY-MM-DD形式、単純に変換しても MM-DD-YYYなんでうまくいきません。
えええ、もしかしてまた年、月、日に分解する必要がある。
これって、カンマ区切りのテキストフィールドから数式フィールドを作る。と同じことしないといけないの?
はい、結果はその通り。
これだけみても、もう変更できない。
DATE( VALUE(right( left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) ,4)) ,VALUE(left(left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1),FIND('/', left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) )-1)),VALUE(left(MID( left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) , FIND('/', left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) ) + 1, LEN( left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) )),FIND('/', MID( left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) , FIND('/', left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) ) + 1, LEN( left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) )) )-1)))
date value from text field containing timestamp
考え方の整理
まずは、日付のところだけを切り出す 画面ではxxのところ
left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1)
月はxxのフィールドから/で分けた左側の部分よって
left(xx,FIND(' ', xx )-1)
XXを 先ほどの式で展開する
left(left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1),FIND('/', left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) )-1)
ここで、年は常に4桁の数値と仮定するとxxから右側4文字を取るとよさそう
right( left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) ,4)
困ったなぁ、日を取るの...
まずは xxから月を取った形を考える
left(left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1),FIND('/', left(Last_User_Agreement_Timestamp__c,FIND(' ', Last_User_Agreement_Timestamp__c )-1) )-1)