新增、捨棄、重新命名和選取資料表資料行來形塑資料表。

概觀

這些函式可藉由調整資料表的資料行來形塑資料表︰

  • 將包含多個資料行的資料表縮減為單一資料行,以便與單一資料行函式搭配使用,例如 LowerAbs
  • 在資料表中新增計算得到的資料行 (例如,總價資料行,其顯示的是數量乘上單價的結果)。
  • 將資料行重新命名為更有意義的名稱,以對使用者顯示或用於公式中。

資料表是 PowerApps 中的值,如同字串或數字。 您可以將資料表指定為公式中的引數,而函式可傳回資料表作為結果。 本主題說明的函式不會修改資料表。 而是會將資料表作為引數,並傳回已進行轉換的新資料表。 請參閱使用資料表以取得詳細資料。

您無法使用這些函式來修改資料來源的資料行。 您必須在其來源修改資料。 您可以使用 Collect 函式在集合中新增資料行。 請參閱使用資料來源以取得詳細資料。

說明

AddColumns 函式會在資料表中新增資料行,公式則會定義該資料行中的值。 現有資料行則保持不變。

系統會針對資料表的每筆記錄評估公式。

在公式內可使用目前處理之記錄的欄位。 您只要依名稱 (如同任何其他值) 來參考這些欄位。 您也可以參考整個應用程式中的控制項屬性和其他值。 如需詳細資訊,請參閱以下範例和處理記錄範圍

DropColumns 函式會從資料表中排除資料行。 其他所有資料行則保持不變。 DropColumns 會排除資料行,ShowColumns 則會納入資料行。

RenameColumns 函式會重新命名資料表的資料行。 其他所有資料行則保持原有名稱。

ShowColumns 函式會納入資料表的資料行,並捨棄其他所有資料行。 您可以使用 ShowColumns 從多個資料行的資料表建立單一資料行的資料表。 ShowColumns 會納入資料行,DropColumns 則會排除資料行。

這些函式的結果全都是已進行轉換的新資料表。 原始資料表不會受到修改。

這些函式搭配資料來源使用時無法委派。 系統將只擷取資料來源的第一個部分,然後套用函式。 結果可能無法代表全貌。 編寫階段時會以藍點提醒您這項限制,並建議在可能的情況下切換為可委派的替代項目。 如需詳細資訊,請參閱委派概觀

語法

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table - 必要項目。 要處理的資料表。
  • ColumnName(s) - 必要項目。 要新增之資料行的名稱。 您必須針對此引數指定字串 (例如,加上雙引號的 "Name")。
  • Formula(s) - 必要項目。 評估每一筆記錄的公式。 系統會將結果新增為所對應新資料行的值。 您可以在此公式中參考資料表的其他資料行。

DropColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table - 必要項目。 要處理的資料表。
  • ColumnName(s) - 必要項目。 要捨棄之資料行的名稱。 您必須針對此引數指定字串 (例如,加上雙引號的 "Name")。

RenameColumns( Table, OldColumneName, NewColumnName )

  • Table - 必要項目。 要處理的資料表。
  • OldColumnName - 必要項目。 要重新命名之資料行的名稱。 此名稱必須是字串 (例如,加上雙引號的 "Name")。
  • NewColumnName - 必要項目。 取代項目名稱。 您必須針對此引數指定字串 (例如,加上雙引號的 "Customer Name")。

ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table - 必要項目。 要處理的資料表。
  • ColumnName(s) - 必要項目。 要納入之資料行的名稱。 您必須針對此引數指定字串 (例如,加上雙引號的 "Name")。

範例

本節的範例使用 IceCreamSales 資料來源,其包含此資料表中的資料:

這些範例全都不會修改 IceCreamSales 資料來源。 每個函式會將資料來源的值轉換為資料表,並傳回該值作為結果。

公式 說明 結果
AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold ) 在結果中新增營收資料行。 系統會為每一筆記錄評估 UnitPrice * QuantitySold,而結果會放在新的資料行中。
DropColumns( IceCreamSales, "UnitPrice" ) 在結果中排除 UnitPrice 資料行。 使用此函式來排除資料行,使用 ShowColumns 則可將它們納入。
ShowColumns( IceCreamSales, "Flavor" ) 只在結果中納入 Flavor 資料行。 使用此函式來納入資料行,使用 DropColumns 則可將它們排除。
RenameColumns( IceCreamSales, "UnitPrice", "Price") 重新命名結果中的 UnitPrice 資料行。
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, "Revenue",
UnitPrice * QuantitySold ),
"UnitPrice", "Price" ),
"Quantity" )
依序執行下列資料表轉換,從公式內部開始︰
  1. 根據每筆記錄的 UnitPrice * Quantity 計算結果,來新增 Revenue 資料行。
  2. UnitPrice 重新命名為 Price
  3. 排除 Quantity 資料行。
請注意,順序很重要。 例如,我們無法在 UnitPrice 重新命名後,再用它來進行計算。

逐步解說

  1. 在資源庫中顯示文字和影像中的第一個子程序所述,匯入或建立名為 Inventory 的集合。

  2. 新增一個按鈕,並將其 OnSelect 屬性設為此公式:

    ClearCollect(Inventory2, RenameColumns(Inventory, "ProductName", "JacketID"))

  3. 按 F5 鍵,選取您剛才建立的按鈕,然後按 Esc 鍵返回設計工作區。

  4. 在 [檔案] 功能表中,選取 [集合]。

  5. 確認您已建立名為 Inventory2 的集合。 新集合所包含的資訊和 Inventory 相同,不同之處在於 Inventory 中名為 ProductName 的資料行,在 Inventory2 中命名為 JacketID