2019年5月1日~12月31日までを「令和元年」と表示したい
「令和元年」を表示する数式項目ですが、この数式を応用して期間ごとに異なる値を表示させることもできますよ!
Admin
2020/09/15 15:59:13
もう令和も2年目なので、今さらの話題なのですが、必要とされている方に届けたいという気持ちでご紹介します。
また、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
)
)
)
)

また、もしそれ以外のパターンがあれば空白とする。
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
)
)
)
)
やりたいこと
商談に「請求書発行日(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(請求書発行日が1989年1月8日~2019年4月30日の期間であれば、「平成〇(年の数字より1988を引き算)年〇月〇日」と表示。月日はそれぞれの数字をそのまま抜き出す。
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(請求書発行日が2019年5月1日~2019年12月31日の期間であれば、「令和元年〇月〇日」と表示。月日はそれぞれの数字をそのまま抜き出す。
AND(
InvoiceIssueDate__c >=date(2019,05,01),
InvoiceIssueDate__c <=date(2019,12,31)
),
"令和元年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",
IF(請求書発行日が2020年1月1日以降であれば、「令和〇(年の数字より2018を引き算)年〇月〇日」と表示。月日はそれぞれの数字をそのまま抜き出す。
InvoiceIssueDate__c >=date(2020,01,01),
"令和"&TEXT(YEAR( InvoiceIssueDate__c ) -2018)&"年"
&TEXT(MONTH( InvoiceIssueDate__c ) ) & "月"
&TEXT(DAY( InvoiceIssueDate__c ) ) & "日",null
)
)
)
)
また、もしそれ以外のパターンがあれば空白とする。
日付/時間 項目の場合
↑の場合は「請求書発行日」のデータ型が日付でしたが、日付/時間であった場合は、こちらの数式で同じように表示できます。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 > ヘルプ >数式での日付値、日付/時間値、および時間値の使用コメント