Text 函式

適用於: 畫布應用程式 畫布應用程式 Dataverse 公式欄 模型導向應用程式 Power Platform CLI

轉換任何值並將數字或日期/時間值格式化為文字字串。

描述

Text 函式會根據以下其中一種引數設定數字或日期/時間值的格式:

  • 預先定義的日期/時間格式,需使用 DateTimeFormat 列舉指定。 建議針對日期與時間使用此方法,因為它會自動調整每個使用者的語言與區域。
  • 自訂格式包含定義的預留位置字串,例如數字是否顯示小數點分隔符號和日期,會將月、月份顯示為縮寫或是將月份指定為數字。 Power Apps 支援 Microsoft Excel 的預留位置子集。 在這個字串中,語言預留位置指定解釋其他預留位置的語言。 如果自訂格式包括句號 (例如語言格式預留位置),則指定期間是否為小數點分隔符號 (ja-JP) 或千分位分隔符號 (es-ES)。

請參閱 處理日期和時間 以取得詳細資訊。

Text 函式也可以使用預設格式將任何資料類型轉換成文字表示。 使用此類型可將非文字值傳遞至文本功能,例如 LenRightIsMatch

預先定義的日期/時間格式

在這些範例中,使用的日期和時間是在 [時區] UTC-7 小時的 2020 年四月 7 日星期二 8:26:59.180 PM。

DateTimeFormat enum 描述 範例 (使用 en-US)
LongDate 四位數年、月份名稱、月份日期及星期幾。 月份名稱及星期幾不會縮寫。 "星期二,2020 年四月 7 日"
LongDateTime 四位數年、月份名稱、月份日期及星期幾,加上小時 (12 小時制)、分、秒及 AM/PM 表示法。 月份名稱及星期幾不會縮寫。 "星期二,2020 年四月 7 日 8:26:59 PM"
LongDateTime24 四位數年、月份名稱、月份日期及星期幾,加上小時 (24 小時制)、分及秒。 月份名稱及星期幾不會縮寫。 "星期二,2020 年四月 7 日 20:26:59"
LongTime 小時 (12 小時制)、分、秒和 AM/PM 表示法。 "8:26:59 PM"
LongTime24 小時 (24 小時制)、分、秒。 "20:26:59"
ShortDate 四位數年份含數字月份與月份日期。 "4/7/2020"
ShortDateTime 四位數年份含數字月份與月份日期,加上小時 (12 小時制)、分、秒和 AM/PM 表示法。 "4/7/2020 8:26 PM"
ShortDateTime24 四位數年份含數字月份與月份日期,加上小時 (24 小時制) 和分鐘。 "4/7/2020 20:26"
ShortTime 小時 (12 小時制)、分和 AM/PM 表示法。 "8:26 PM"
ShortTime24 小時 (24 小時制) 和分。 "20:26"
UTC 將日期/時間值轉換為目前使用者的時區 UTC,並根據 ISO 8601 標準設定格式。 "2020-04-08T03:26:59.180Z"

數字預留位置

預留位置 描述
0 (zero) 如果數字的位數少於格式中零的數目,則顯示無意義的零。 例如,如果您要將 8.9 顯示成 8.90,請使用格式 #.00
# 遵循與 0 (零) 相同的規則。 但是,如果數字小數點任一側的位數少於格式中的 # 符號數目,則 Text 不傳回多餘的零。 例如,如果自訂格式為 #.##,而要設定格式的數字為 8.9,則會顯示 8.9
(period) 顯示數字的小數點。 視自訂格式的語言而定,請參閱 全球應用程式 以取得詳細資料。
, (comma) 顯示數字中的千位分隔符號,通常用於千位數。 如果格式包含逗號,且逗號介於井號 (#) 或零之間,Text 會以逗號分隔千位數。 視自訂格式的語言而定,請參閱 全球應用程式 以取得詳細資料。

如果某數字的小數點右側位數比格式中的預留位置多,則數字會四捨五入成與預留位置一樣多的小數位數。 如果小數點左側的位數比預留位置多,將顯示多餘的位數。 如果格式只包含小數點左側的井號 (#),則 1 以下數字的開頭將為小數點為 (例如 .47)。

日期與時間預留位置

預留位置 描述
m 以無前置零的數字顯示月份。
mm 依適當情況將月份顯示為有前置零的數字。
mmm 顯示月份縮寫 (JanDec)。
mmmm 顯示月份全名 (JanuaryDecember)。
以無前置零的數字顯示月份日期。
dd 依適當情況以有前置零的數字顯示月份日期。
ddd 顯示星期幾縮寫 (SunSat)。
dddd 顯示星期幾全名 (SundaySaturday)。
yy 以兩位數數字顯示年份。
yyyy 以四位數數字顯示年份。
小時 以無前置零的數字顯示小時。
hh 視需要以有前置零的數字顯示小時。 如果格式包含 AMPM,將以 12 小時制顯示小時。 否則,會以 24 小時制顯示小時。
m 以無前置零的數字顯示分鐘。

此預留位置必須緊接在 hhh 代碼之後或緊接在 ss 代碼之前;否則,Text 會傳回月份,不會傳回分鐘。
mm 依適當情況以有前置零的數字顯示分鐘。

此預留位置必須緊接在 hhh 預留位置之後或緊接在 ss 預留位置之前。 否則,Text 會傳回月份而非分鐘。
s 以無前置零的數字顯示秒。
ss 依適當情況以有前置零的數字顯示秒。
f 以分數顯示秒。
AM/PM, a/p 以 12 小時制顯示小時。 Text 針對午夜到中午這段時間傳回 "AM" 或 "a",而中午到午夜這段時間傳回 "PM" 或 "p"

常值預留位置

您可以在格式字串中加入下列任一字元。 這些字元會以原樣出現在 Text 的結果中。 另外保留其他字元做為日後的預留位置,請勿使用這些字元。

字元 描述
所有貨幣符號 美元符號、一分錢符號、歐元符號等
+ 加號
( 左括弧
: 冒號
^ 抑揚音符號 (插入號)
' 單引號
{ 左大括弧
< 小於符號
= 等號
- 減號
/ 斜線符號
) 右括弧
& 符號
~ 波狀符號
} 右大括弧
> 大於符號
  空白字元

全域應用程式

Text 函式可全域感知。 該函式知道如何正確寫出各種語言的日期、時間、貨幣和數字。 為了作業,此函式需要兩種資訊:

  • 自訂格式的語言: 對決策者而言,自訂格式應如何解讀? 分隔符號字元 (.,) 在不同的語言中有不同的意義。 如果您指定自訂格式,則可以包含語言預留位置或採用預設值,這會反映裝置所設定的語言。 更容易一點,您可以使用其中一種 預定義的日期/時間格式,這種格式不限語言。
  • 結果語言: 對使用者而言,函式結果應以何種語言顯示? 月份與平日名稱必須為應用程式使用者的適當語言,您可以將第三個非必要引數新增至 Text 函式指定。

這兩者中,您可以使用 語言標記 來指定語言。 若要查看支援語言標記清單,請在公式列或右側窗格的 Advanced 索引標籤中鍵入 Text( 1234, "", ),然後捲動針對第三個引數建議的地區設定清單。

語言預留位置

若要指定自訂格式的語言,請使用︰

預留位置 描述
[$-LanguageTag] LanguageTag 是從 Language 函式傳回的語言標記。 它可以只指明語言 (如 [$-en] 代表英文),或者也可以指明區域 (如 [$-en-GB] 進一步指定大英帝國)。

語言預留位置可以出現在自訂格式中的任何一處,但只能出現一次。

如果指定的自訂格式不含語言預留位置,且格式不明確,則會自動插入目前語言的語言標記。

您的應用程式執行時若沒有此預留位置,系統會假設 [$-en-US]

Note

在未來版本中,此預留位置的語法可能會變更,以防與 Excel 支援的類似 (但不同) 預留位置混淆。

結果語言標記

Text 結果包括月份、平日和 AM/PM 表示的翻譯字串,以及適當的群組與小數分隔符號。

根據預設,Text 會使用執行該應用程式之使用者的語言。 Language 函式會傳回目前使用者慣用語言的語言標記。 您可以將第三個引數的語言標記提供給 Text,來覆寫此預設值。

語法

Text( NumberOrDateTime, DateTimeFormatEnum [, ResultLanguageTag ] )

  • NumberOrDateTime -必要項目。 要格式化的數字或日期/時間值。
  • DateTimeFormat - 必要項目。 DateTimeFormat 列舉的成員。
  • ResultLanguageTag - 非必要項目。 針對結果文字使用的語言標記。 根據預設,會使用目前使用者的語言。

Text( NumberOrDateTime, CustomFormat [, ResultLanguageTag ] )

  • Number - 必要項目。 要格式化的數字或日期/時間值。
  • CustomFormat - 必要項目。 以雙引號括住的一個或多個預留位置。
  • ResultLanguageTag - 非必要項目。 針對結果文字使用的語言標記。 根據預設,會使用目前使用者的語言。

Text( AnyValue )

  • AnyValue - 必要項目。 轉換為文字表示的值。 使用預設格式。

Text ( Untyped )

  • Untyped - 必要項目。 表示字串的非類型化物件。 可接受的值取決於非類型化的提供者。 對於 JSON。如果非類型化物件是數字或布林值,則此物件會轉換成文字。

範例

除非另行指定,否則執行這些公式的使用者位於美國,並已選取英文做為語言。 Language 函式傳回 "en-US"。

號碼

公式 描述 結果
Text( 1234.59, "####.#" ) 格式化含有一個小數位數的數字。 "1234.6"
Text( 8.9, "#.000" ) 視需要在後方以零填補該數字的小數部分。 "8.900"
Text( 0.631, "0.#" ) 視需要在開頭以零填補該數字的整數部分。 "0.6"
Text( 12, "#.0#" )
Text( 1234.568, "#.0#" )
以零填補有一個小數位數之數字的小數部分,並加第二個小數位數 (若有提供)。 "12.0"
"1234.57"
Text( 12000, "$ #,###" )
Text( 1200000, "$ #,###" )
每三位數即放置一個千分位分隔符號,並包含貨幣符號。 "$ 12,000"
"$ 1,200,000"

日期/時間

  • 2015 年 11 月 23 日星期一2:37:47 PM
  • 美國太平洋時區 (UTC-8)
公式 描述 結果
Text( Now(), DateTimeFormat.LongDate ) 以目前使用者的語言與地區設定將格式設定為完整日期字串。 "星期一,2015 年十一月 23 日"
Text( Now(), DateTimeFormat.LongDateTime ) 以目前使用者的語言與地區設定將格式設定為使用 12 小時制的完整日期與時間字串。 "星期一,2015 年十一月 23 日 2:37:47 PM"
Text( Now(), DateTimeFormat.LongTime24 ) 將格式設定為 24 小時制的完整時間字串。 "14:37:47"
Text( Now(), DateTimeFormat.ShortDate ) 以目前使用者的語言與地區設定將格式設定為簡短日期字串。 "11/23/2015"
Text( Now(), "d-mmm-yy" ) 使用預留位置字元的格式︰
  • d 代表月份的一位數或兩位數日期
  • - 做為複製到結果的常值字元
  • mmm 代表月份的三個字母縮寫
  • - 做為複製到結果的另一個常值字元
  • yy 代表兩位數的年份縮寫
"23-Nov-15"
Text(1448318857*1000, "mmm. dd, yyyy (hh:mm:ss AM/PM)") 若將來源值乘以 1000,則會以人類可讀格式顯示 Unix 日期時間值。 "Nov. 23, 2015 (02:47:37 PM)"

全域應用程式

公式 描述 Result
Text(1234567.89, "[$-fr-FR]# ###,## €", "fr-FR") 以分組分隔符號顯示空格、逗號做為小數點分隔符號,做為貨幣符號。 "1 234 567,89 €"
Text(1234567,89; "[$-fr-FR]# ###,## €") 如果來源資料遵循法語自訂,使用逗點做為小數點分隔符號,您必須將區域設定變更為法文,並以分號 (而不是逗點) 將參數隔開,以得到與上述相同的結果。 "1 234 567,89 €"
Text( Date(2016,1,31), "dddd mmmm d" ) 以目前使用者的語言傳回工作日、月份及月份日期。 由於沒有任何預留位置與語言相關,因此不需要格式文字語言標記的預留位置。 "Sunday January 31"
Text( Date(2016,1,31), "dddd mmmm d", "es-ES" ) 以 "es-ES" 語言傳回工作日、月份及月份日期。 "domingo enero 31"

將值轉換成文字

公式 描述 結果
Text( 1234567.89 ) 將數字轉換為字串。 在小數點分隔符號之前或之後不可以有千位分隔符號或控制項數。如需更多控制,請將數位預留位置當做第二個引數提供。 "1234567.89"
Text( DateTimeValue( "01/04/2003" ) ) 將日期/時間值轉換為文字的字串。 若要控制轉換,請提供 DateTimeFormat 枚舉的成員或自訂格式字串。 "1/4/2003 12:00 AM"
Text( true ) 將布林值轉換為字串。 "true"
Text( GUID() ) 將產生的 GUID 值轉換為字串。 "f8b10550-0f12-4f08-9aa3-bb10958bc3ff"
Left( Text( GUID() ), 4 ) 傳回產生的 GUID 前四個字元。 "2d9c"