もう令和も2年目なので、今さらの話題なのですが、必要とされている方に届けたいという気持ちでご紹介します。
やりたいこと
商談に「請求書発行日(InvoiceIssueDate__c)」というカスタムの日付項目があり、和暦で表示したい。
また、2019年5月1日~12月31日の期間は、「令和元年」で表示したい。
設定方法
カスタム数式項目を作成します。
データ型:数式
数式の戻り値のデータ型:テキスト
数式:
IF(ISBLANK( InvoiceIssueDate__c ),null,
IF(
AND(
InvoiceIssueDate__c >=date(1989,01,08),
InvoiceIssueDate__c <=date(2019,04,30)
),
"平成"&TEXT(YEAR( InvoiceIssueDate__c )-1988)&"年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",
IF(
AND(
InvoiceIssueDate__c >=date(2019,05,01),
InvoiceIssueDate__c <=date(2019,12,31)
),
"令和元年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",
IF(
InvoiceIssueDate__c >=date(2020,01,01),
"令和"&TEXT(YEAR( InvoiceIssueDate__c ) -2018)&"年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",null
)
)
)
)
数式の解説
数式の意味を分解して確認します。
IF(ISBLANK( InvoiceIssueDate__c ),null,
請求書発行日が空白の場合は空白。
IF(
AND(
InvoiceIssueDate__c >=date(1989,01,08),
InvoiceIssueDate__c <=date(2019,04,30)
),
"平成"&TEXT(YEAR( InvoiceIssueDate__c )-1988)&"年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",
請求書発行日が1989年1月8日~2019年4月30日の期間であれば、「平成〇(年の数字より1988を引き算)年〇月〇日」と表示。月日はそれぞれの数字をそのまま抜き出す。
IF(
AND(
InvoiceIssueDate__c >=date(2019,05,01),
InvoiceIssueDate__c <=date(2019,12,31)
),
"令和元年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",
請求書発行日が2019年5月1日~2019年12月31日の期間であれば、「令和元年〇月〇日」と表示。月日はそれぞれの数字をそのまま抜き出す。
IF(
InvoiceIssueDate__c >=date(2020,01,01),
"令和"&TEXT(YEAR( InvoiceIssueDate__c ) -2018)&"年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",null
)
)
)
)
請求書発行日が2020年1月1日以降であれば、「令和〇(年の数字より2018を引き算)年〇月〇日」と表示。月日はそれぞれの数字をそのまま抜き出す。
また、もしそれ以外のパターンがあれば空白とする。
日付/時間 項目の場合
↑の場合は「請求書発行日」のデータ型が日付でしたが、日付/時間であった場合は、こちらの数式で同じように表示できます。
DATEVALUE関数を使って 日付/時間項目から日付の値を取り出しています。
IF(ISBLANK(
InvoiceIssueDate__c ),null,
IF(
AND(
DATEVALUE(
InvoiceIssueDate__c ) >=date(1989,01,08),
DATEVALUE(
InvoiceIssueDate__c ) <=date(2019,04,30)
),
"平成"&TEXT(YEAR( DATEVALUE(
InvoiceIssueDate__c ) )-1988)&"年"
&TEXT(MONTH(DATEVALUE(
InvoiceIssueDate__c ) ) ) & "月"
&TEXT(DAY(DATEVALUE(
InvoiceIssueDate__c ) ) ) & "日",
IF(
AND(
DATEVALUE(
InvoiceIssueDate__c ) >=date(2019,05,01),
DATEVALUE(
InvoiceIssueDate__c ) <=date(2019,12,31)
),
"令和元年"
&TEXT(MONTH(DATEVALUE(
InvoiceIssueDate__c ) ) ) & "月"
&TEXT(DAY(DATEVALUE(
InvoiceIssueDate__c ) ) ) & "日",
IF(
DATEVALUE(
InvoiceIssueDate__c ) >=date(2020,01,01),
"令和"&TEXT(YEAR( DATEVALUE(
InvoiceIssueDate__c ) ) -2018)&"年"
&TEXT(MONTH(DATEVALUE(
InvoiceIssueDate__c ) ) ) & "月"
&TEXT(DAY(DATEVALUE(
InvoiceIssueDate__c ) ) ) & "日",null
)
)
)
)
参考
◇ Salesforce > ヘルプ >数式での日付値、日付/時間値、および時間値の使用