LoginSignup
0
0

More than 1 year has passed since last update.

4/15/2021 7:27:30 PM のフォーマットをテキストからDate型に変更する数式

Last updated at Posted at 2021-05-10

Answersで回答する時に使う情報のまとめに戻る

なんだ、初めは簡単だと思っていました。

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

考え方の整理

image.png

まずは、日付のところだけを切り出す 画面では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)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0