FORMAT
指定した形式に従って値をテキストに変換します。
構文
FORMAT(<value>, <format_string>[, <locale_name>])
パラメーター
用語 | 定義 |
---|---|
value |
1 つの値に評価される値または式。 |
format_string |
書式設定テンプレートを含む文字列。 |
locale_name |
(省略可能)関数で使用されるロケールの名前。 指定できる値は、LocaleNameToLCID() |
戻り値
value
によって定義 format_string
書式が設定された文字列。
手記
value
が BLANK場合、関数は空の文字列を返します。
format_string
が BLANKの場合、値は "一般番号" または "一般日付" の形式で書式設定されます (value
データ型に従います)。
備考
定義済みの書式指定文字列は、結果の書式設定時にモデル カルチャ プロパティを使用します。 既定では、モデル カルチャ プロパティはコンピューターのユーザー ロケールに従って設定されます。 新しい Power BI Desktop モデルでは、[オプション] > [地域設定] > [モデル言語] でモデル カルチャ プロパティを変更できます。 Analysis Services の場合、モデル カルチャは、インスタンスによって最初に定義された Language プロパティに従って設定されます。
DAX FORMAT 関数の引数としてサポートされる書式指定文字列は、.NET Framework で使用される書式指定文字列ではなく、Visual Basic (OLE オートメーション) で使用される書式指定文字列に基づいています。 したがって、引数が定義された書式指定文字列と一致しない場合は、予期しない結果やエラーが発生する可能性があります。 たとえば、"Percent" の省略形としての "p" はサポートされていません。 定義済みの書式指定文字列の一覧に含まれていない FORMAT 関数の引数として指定した文字列は、カスタム書式指定文字列の一部として、または文字列リテラルとして処理されます。
FORMATでロケールを指定する方法の詳細については、この ビデオを参照してください。
FORMAT を使用すると、メジャーの結果がテキスト データ型に変更されます。 メジャーの結果が元の数値データ型の場合、FORMATでは、グラフのように値セクションに数値データ型が必要なビジュアルではメジャーを使用できません。 Power BI では、メジャー 動的書式指定文字列を使用、メジャーの数値データ型を保持する条件付き書式指定文字列を指定することもできます。
この関数は、計算列または行レベル セキュリティ (RLS) 規則で使用する場合、DirectQuery モードでは使用できません。
例
文字列の書式設定
= FORMAT( 12345.67, "General Number")
= FORMAT( 12345.67, "Currency")
= FORMAT( 12345.67, "Fixed")
= FORMAT( 12345.67, "Standard")
= FORMAT( 12345.67, "Percent")
= FORMAT( 12345.67, "Scientific")
収益:
12345.67 [一般番号] には、書式設定なしで番号が表示されます。
$12,345.67 "Currency" には、通貨ロケールの書式設定で数値が表示されます。 次のサンプルは、既定の米国通貨書式を示しています。
12345.67 "固定" では、小数点の左側に少なくとも 1 桁、小数点の右側に 2 桁が表示されます。
12,345.67 "Standard" では、小数点の左側に少なくとも 1 桁、小数点の右側に 2 桁が表示され、桁区切り記号が含まれます。 このサンプルは、既定の米国番号の書式設定を示しています。
1,234,567.00 % "パーセント" は、数値をパーセンテージ (100 で乗算) として表示し、数値の右側のパーセント記号を 1 つのスペースで区切って表示します。
1.23E+04"Scientific" は、数値を 2 桁の 10 進数で指数表記で表示します。
Datetime (省略可能なlocale_name)
= FORMAT( dt"2020-12-15T12:30:59", BLANK(), "en-US" )
= FORMAT( dt"2020-12-15T12:30:59", BLANK(), "en-GB" )
= FORMAT( dt"2020-12-15T12:30:59", "mm/dd/yyyy", "en-GB" )
収益:
2020 年 12 月 15 日午後 12:30:59 月の前の日付と時刻は 12 時間形式です。
2020 年 15 月 12 日 12:30:59 日の前の月と時刻は 24 時間形式です。
2020 年 12 月 15 日 12:30:59 月の前の日付と時刻は 24 時間形式です。 ロケールに依存しない書式指定文字列が指定されているため、ロケールは適用されず、ロケール以外の形式が返されます。
定義済みの数値形式
format_string
引数には、次の定義済みの数値書式を指定できます。
Format |
形容 |
---|---|
"General Number" |
桁区切り記号のない数値を表示します。 |
"Currency" |
必要に応じて、桁区切り記号で数値を表示します。では、小数点区切り記号の右側に 2 桁の数字が表示されます。 出力は、システム ロケールの設定に基づいています。 |
"Fixed" |
少なくとも 1 桁を左に表示し、小数点の右側に 2 桁を表示します。 |
"Standard" |
桁区切り記号付きの数値を表示します。少なくとも 1 桁が左に、2 桁が小数点区切り記号の右側に表示されます。 |
"Percent" |
右にパーセント記号 (%) が追加された数値に 100 を乗算して表示します。では、小数点の右側に常に 2 桁の数字が表示されます。 |
"Scientific" |
標準の指数表記を使用し、2 桁の有効桁数を提供します。 |
"Yes/No" |
数値が 0 の場合は No を表示します。それ以外の場合は、[はい] と表示されます。 |
"True/False" |
数値が 0 の場合は False を表示します。それ以外の場合は True と表示されます。 |
"On/Off" |
数値が 0 の場合は Off と表示されます。それ以外の場合は、[オン] と表示されます。 |
カスタム数値形式
数値のカスタム書式指定式には、セミコロンで区切られた 1 ~ 3 つのセクションを含めることができます。 書式指定文字列引数に名前付き数値書式のいずれかが含まれている場合は、1 つのセクションのみが許可されます。
使用する場合 | 結果は次のようになります。 |
---|---|
1 つのセクションのみ | 書式式はすべての値に適用されます。 |
2 つのセクション | 最初のセクションは正の値とゼロ、2 番目のセクションは負の値に適用されます。 |
3 つのセクション | 最初のセクションは正の値、2 番目は負の値、3 番目はゼロに適用されます。 |
"$#,##0;($#,##0)"
セミコロンの間に何も含まれていない場合、不足しているセクションは正の値の形式を使用して定義されます。 たとえば、次の形式では、最初のセクションの書式を使用して正と負の値が表示され、値が 0 の場合は "Zero" と表示されます。
"$#,##0"
セミコロンの間に何も含まれていない場合は、正の値の形式を使用して不足しているセクションが表示されます。
ユーザー設定の数値書式文字
format_string
引数には、次のカスタム数値書式指定文字を指定できます。
文字 | 形容 |
---|---|
何一つ | 書式設定なしで数値を表示します。 |
(0 ) |
数字のプレースホルダー。 数字またはゼロを表示します。 式の書式指定文字列に 0 が表示される位置に数字がある場合は、それを表示します。それ以外の場合は、その位置にゼロを表示します。数値の桁数が、書式式の 0 (10 進数の両側) よりも少ない場合は、先頭または末尾にゼロを表示します。 数値の小数点の右側の桁数が、書式指定式の小数点区切り記号の右側に 0 を超える場合は、数値を 0 と同数の小数点以下桁数に丸めます。 数値の小数点区切り記号の左側に、書式式の小数点区切り記号の左側に 0 を超える桁数がある場合は、変更せずに余分な数字を表示します。 |
(# ) |
数字のプレースホルダー。 数字または何も表示しません。 式の書式指定文字列に # が表示される位置に数字がある場合は、それを表示します。それ以外の場合は、その位置に何も表示されません。 この記号は 0 桁のプレースホルダーと同様に機能しますが、数値の桁数が、書式式の小数点区切り記号の両側に # 文字がある場合と同じか少ない場合、先頭と末尾のゼロは表示されません。 |
(. ) |
10 進プレースホルダー。 ロケールによっては、小数点区切り記号としてコンマが使用されます。 小数点のプレースホルダーは、小数点区切り記号の左右に表示される桁数を決定します。 書式指定式に、この記号の左側の数字記号のみが含まれている場合、1 より小さい数値は小数点で始まります。 小数部で表示される先頭のゼロを表示するには、小数点区切り記号の左側の最初の桁のプレースホルダーとして 0 を使用します。 書式設定された出力で 10 進プレースホルダーとして使用される実際の文字は、システムによって認識される数値の形式によって異なります。 |
(% ) |
パーセンテージプレースホルダー。 式に 100 を乗算します。 パーセント文字 (% ) は、書式指定文字列に表示される位置に挿入されます。 |
(, ) |
桁区切り記号。 一部のロケールでは、ピリオドが桁区切り記号として使用されます。 桁区切り記号は、小数点区切り記号の左側に 4 つ以上の桁がある数値内の数百から数千を区切ります。 桁区切り記号の標準使用は、桁のプレースホルダー (0 または # ) で囲まれた桁区切り記号が書式に含まれている場合に指定されます。 隣接する 2 つの桁区切り記号または小数点の左側の桁区切り記号 (10 進数が指定されているかどうかに関係なく) は、"必要に応じて 1000 で除算して数値を四捨五入する" を意味します。たとえば、書式指定文字列 "##0" を使用して、1 億を 100 として表すことができます。 100 万未満の数値は 0 として表示されます。 小数点区切り記号のすぐ左側以外の任意の位置にある 2 つの隣接する桁区切り記号は、単に桁区切り記号の使用を指定するものとして扱われます。 書式設定された出力で桁区切り記号として使用される実際の文字は、システムによって認識される数値形式によって異なります。 |
(: ) |
時刻区切り記号。 ロケールによっては、時刻区切り記号を表すために他の文字を使用できます。 時刻の値が書式設定されている場合、時刻区切り記号は時間、分、秒を区切ります。 書式設定された出力で時刻区切り記号として使用される実際の文字は、システム設定によって決まります。 |
(/ ) |
日付の区切り記号。 ロケールによっては、日付区切り記号を表すために他の文字を使用できます。 日付の区切り記号は、日付の値が書式設定されている日、月、年を区切ります。 書式設定された出力で日付区切り記号として使用される実際の文字は、システム設定によって決まります。 |
(E- E+ e- e+ ) |
科学的な形式。 書式指定式に E、E+、e、または e+ の右側に少なくとも 1 つの数字プレースホルダー (0 または # ) が含まれている場合、数値は指数形式で表示され、数値と指数の間に E または e が挿入されます。 右側の数字プレースホルダーの数によって、指数部の桁数が決まります。 負の指数の横に負符号を配置するには、E または e- を使用します。 負の指数の横にマイナス記号を、正の指数の横にプラス記号を配置するには、E+ または e+ を使用します。 |
- + $ ( ) |
リテラル文字を表示します。 一覧に含まれている文字以外の文字を表示するには、その前に円記号 (\ ) を付けるか、二重引用符 (" ") で囲みます。 |
(\\ ) |
書式指定文字列に次の文字を表示します。 特別な意味を持つ文字をリテラル文字として表示するには、その前に円記号 (\ ) を付けます。 円記号自体は表示されません。 円記号の使用は、次の文字を二重引用符で囲むのと同じです。 円記号を表示するには、2 つの円記号 (\\ ) を使用します。 リテラル文字として表示できない文字の例としては、日付書式と時刻書式の文字 (a、 c、d、h、m、n、p、q、s、t、w、y、/、および :)、数値書式指定文字 (#、0、%、E、e、コンマ、ピリオド)、および文字列書式指定文字 (@、&、<、>、!)。 |
("ABC") | 二重引用符 (" ") 内に文字列を表示します。 |
定義済みの日付/時刻形式
format_string
引数には、次の定義済みの日付/時刻形式を指定できます。 これら以外の形式を使用する場合は、カスタムの日付/時刻形式として解釈されます。
形式 | 形容 |
---|---|
"General Date" |
日付または時刻を表示します。 たとえば、2008 年 3 月 12 日午前 11:07:31 などです。 日付の表示は、アプリケーションの現在のカルチャ値によって決まります。 |
"Long Date" または "Medium Date" |
現在のカルチャの長い日付形式に従って日付を表示します。 たとえば、2008 年 3 月 12 日水曜日などです。 |
"Short Date" |
現在のカルチャの短い日付形式を使用して日付を表示します。 たとえば、2008 年 3 月 12 日などです。 |
"Long Time" または |
現在のカルチャの長い時間形式を使用して時刻を表示します。通常、時間、分、秒が含まれます。 たとえば、午前 11:07:31 などです。 |
"Medium Time" |
時刻を 12 時間形式で表示します。 たとえば、午前 11 時 7 分です。 |
"Short Time" |
時刻を 24 時間形式で表示します。 たとえば、11:07 です。 |
カスタムの日付/時刻形式
カスタムの日付/時刻形式を作成するには、format_string
で次の書式文字を指定できます。
文字 | 形容 |
---|---|
(: ) |
時刻区切り記号。 ロケールによっては、時刻区切り記号を表すために他の文字を使用できます。 時刻の値が書式設定されている場合、時刻区切り記号は時間、分、秒を区切ります。 書式設定された出力で時刻区切り記号として使用される実際の文字は、システム設定によって決まります。 |
(/ ) |
日付の区切り記号。 ロケールによっては、日付区切り記号を表すために他の文字を使用できます。 日付の区切り記号は、日付の値が書式設定されている日、月、年を区切ります。 書式設定された出力で日付区切り記号として使用される実際の文字は、システム設定によって決まります。 |
(\ ) |
バックスラッシュ。 次の文字をリテラル文字として表示します。 そのため、書式設定文字として解釈されません。 |
(" ) |
二重引用符。 二重引用符で囲まれたテキストが表示されます。 そのため、書式設定文字として解釈されません。 |
c |
日付を ddddd として表示し、その順序で時刻を ttttt として表示します。 日付のシリアル番号に小数部がない場合は、日付情報のみを表示します。は、整数部分がない場合は時刻情報のみを表示します。 |
d |
先頭にゼロ (1 から 31) がない数値で日を表示します。 |
dd |
先頭に 0 (01 から 31) の数値で日を表示します。 |
ddd |
日付を省略形 (Sun-Sat) として表示します。 ローカライズ された。 |
dddd |
完全な名前 (Sunday-Saturday) として日を表示します。 ローカライズ された。 |
ddddd |
システムの短い日付形式の設定に従って、日付を完全な日付 (日、月、年を含む) として表示します。 既定の短い日付形式は mm/dd/yyyy です。 |
dddddd |
システムで認識される長い日付の設定に従って、日付のシリアル番号を完全な日付 (日、月、年を含む) として表示します。 既定の長い日付形式は dddd, mmmm d, yyyy です。 |
w |
曜日を数値で表示します (日曜日の場合は 1、土曜日の場合は 7)。 |
ww |
年の週を数値 (1 から 54) で表示します。 |
m |
月を先頭にゼロ (1 から 12) を付けずに数値で表示します。
m
h または hh の直後にある場合は、月ではなく分が表示されます。 |
mm |
月を先頭に 0 (01 から 12) の数値で表示します。
mm
h または hh の直後にある場合は、月ではなく分が表示されます。 |
mmm |
月を省略形 (Jan-Dec) として表示します。 ローカライズ された。 |
mmmm |
月を完全な月名 (January-December) として表示します。 ローカライズ された。 |
q |
年の四半期を数値 (1 から 4) で表示します。 |
y |
年の日を数値 (1 から 366) として表示します。 |
yy |
年を 2 桁の数字 (00 から 99) で表示します。 |
yyyy |
年を 4 桁の数字 (100 から 9999) で表示します。 |
h |
先頭にゼロ (0 から 23) がない数値で時間を表示します。 |
hh |
時間を先頭に 0 (00 から 23) の数値で表示します。 |
n |
分を先頭にゼロ (0 から 59) を付けずに数値で表示します。 |
nn |
分を先頭に 0 (00 から 59) の数値で表示します。 |
s |
2 つ目を先頭にゼロ (0 から 59) を付けずに数値として表示します。 |
ss |
2 つ目を先頭に 0 (00 から 59) の数値で表示します。 |
ttttt |
システムで認識される時刻形式で定義された時刻区切り記号を使用して、時刻を完全な時刻 (時間、分、秒を含む) として表示します。 先頭のゼロ オプションが選択されていて、時刻が午前 10 時または午後 1 時より前の場合、先頭に 0 が表示されます。既定の時刻形式は h:mm:ss です。 |
AM/PM |
12時間の時計を使用し、正午の前に任意の時間で大文字のAMを表示します。は、正午から午後 11 時 59 分までの任意の時間で大文字の PM を表示します。 |
am/pm |
12時間の時計を使用し、正午の前に任意の時間で小文字のAMを表示します。は、正午から午後 11 時 59 分までの任意の時間で小文字の PM を表示します。 |
A/P |
12時間の時計を使用し、正午の前に任意の時間で大文字Aを表示します。は、正午から午後 11 時 59 分までの任意の時間で大文字の P を表示します。 |
a/p |
12時間の時計を使用し、正午の前に任意の時間で小文字Aを表示します。は、正午から午後 11 時 59 分までの任意の時間で小文字の P を表示します。 |
AMPM |
12 時間制を使用し、システムで定義されている AM 文字列リテラルを正午の前に任意の時間で表示します。システムで定義されている PM 文字列リテラルを、正午から午後 11 時 59 分までの任意の時間で表示します。AMPM は大文字でも小文字でもかまいませんが、表示される文字列の大文字と小文字は、システム設定で定義されている文字列と一致します。 既定の形式は AM/PM です。 システムが 24 時間制に設定されている場合、文字列は通常、空の文字列に設定されます。 |
日付/時刻の書式設定では、現在のユーザー ロケールを使用して文字列の書式を設定します。 たとえば、2020 年 6 月 25 日を考えてみましょう。 書式指定文字列 "m/d/yyyy" を使用して書式設定すると、次のようになります。
- ユーザー ロケールは米国 (en-US): "6/25/2020"
- ユーザーロケールはドイツ (de-DE): "6.25.2020"
カスタム日付/時刻形式の例
次の例では、2020 年 6 月 25 日木曜日の午後 1 時 23 分 45 分の日付/時刻を使用します。 ドイツ (de-DE) は 24 時間システムを使用します。 AM/PM に相当するものはありません。
形式 | 結果 (en-US) | 結果 (de-DE) |
---|---|---|
"c" |
06/25/2020 13:23:45 | 25.06.2020 13:23:45 |
"d" |
25 | 25 |
"dd" |
25 | 25 |
"ddd" |
木 | する |
"dddd" |
木曜日 | Donnerstag |
"ddddd" |
06/25/2020 | 25.06.2020 |
"dddddd" |
2020 年 6 月 25 日 (木) | Donnerstag、25。 Juni 2020 |
"w" |
5 | 5 |
"ww" |
26 | 26 |
"m" |
6 | 6 |
"mm" |
06 | 06 |
"mmm" |
6 月 | 6 月 |
"mmmm" |
6 月 | Juni |
"q" |
2 | 2 |
"y" |
177 | 177 |
"yy" |
20 | 20 |
"yyyy" |
2020 | 2020 |
"""Year"" yyyy" |
2020 年 | 2020 年 |
"yyyy \Qq" |
2020 年第 2 四半期 | 2020 年第 2 四半期 |
"dd/mm/yyyy" |
25/06/2020 | 25.06.2020 |
"mm/dd/yyyy" |
06/25/2020 | 06.25.2020 |
"h:nn:ss" |
13:23:45 | 13:23:45 |
"h:nn:ss AMPM" |
午後 1:23:45 | 1:23:45 |
"hh:nn:ss" |
13:23:45 | 13:23:45 |
"hh:nn:ss AMPM" |
01:23:45 PM | 01:23:45 |
"ttttt" |
13:23:45 | 13:23:45 |
"ttttt AMPM" |
午後 13:23:45 | 13:23:45 |
"mm/dd/yyyy hh:nn:ss AMPM" |
2020 年 6 月 25 日午後 1 時 23 分 45 分 | 6.25.2020 01:23:45 |