Power Apps の演算子と識別子Operators and Identifiers in Power Apps

これらの演算子の一部は、作成者の言語に依存します。Some of these operators are dependent on the language of the author. 詳細については、グローバル アプリに関する記事を参照してください。See Global apps for more information.

シンボルSymbol 種類Type 構文Syntax 説明Description
.. プロパティ セレクターProperty Selector Slider1.Value
Color.Red
Acceleration.X
Slider1.Value
Color.Red
Acceleration.X
テーブル、コントロール、シグナルまたは列挙からプロパティを抽出します。Extracts a property from a table, control, signal, or enumeration. 旧バージョンとの互換性のために !For backwards compatibility, ! を使用することもできます。may also be used.
..
[言語依存][language dependent]
小数点Decimal separator 1.231.23 数値の整数部分と小数部分の区切り記号。Separator between whole and fractional parts of a number. 文字は言語によって異なります。The character depends on the language.
( )( ) かっこParentheses Filter(T, A < 10)Filter(T, A < 10)

(1 + 2) * 3(1 + 2) * 3
優先順位を変更し、式の中の副次式をグループ化します。Enforces precedence order, and groups sub-expressions in a larger expression
+ 算術演算子Arithmetic operators 1 + 21 + 2 追加Addition
-   2 - 12 - 1 減算および符号Subtraction and sign
*   2 * 32 * 3 乗算Multiplication
/   2 / 32 / 3 除算 (Mod 関数も参照してください)Division (also see the Mod function)
^   2 ^ 32 ^ 3 累乗。Power 関数に相当しますExponentiation, equivalent to the Power function
%   20%20% 百分率 ("* 1/100" に相当します)Percentage (equivalent to "* 1/100")
= 比較演算子Comparison operators Price = 100Price = 100 等価です。Equal to
>   Price > 100Price > 100 より大きいGreater than
>=   Price >= 100Price >= 100 以上Greater than or equal to
<   Price < 100Price < 100 次の値未満Less than
<=   Price <= 100Price <= 100 以下Less than or equal to
<>   Price <> 100Price <> 100 次の値に等しくないNot equal to
& 文字列連結演算子String concatenation operator "hello" & " " & """hello" & " " & "world" 複数の文字列を続けて表示しますMakes multiple strings appear continuous
&& または And&& or And 論理演算子Logical operators Price < 100 && Slider1.Value = 20Price < 100 && Slider1.Value = 20
または Price < 100 And Slider1.Value = 20or Price < 100 And Slider1.Value = 20
論理積。And 関数に相当しますLogical conjunction, equivalent to the And function
|| または Or|| or Or   Price < 100 || Slider1.Value = 20 または Price < 100 Or Slider1.Value = 20Price < 100 || Slider1.Value = 20 or Price < 100 Or Slider1.Value = 20 論理和。Or 関数に相当しますLogical disjunction, equivalent to the Or function
!! または Notor Not   !(Price < 100) または Not (Price < 100)!(Price < 100) or Not (Price < 100) 論理否定。Not 関数に相当しますLogical negation, equivalent to the Not function
exactinexactin メンバーシップ演算子Membership operators Gallery1.Selected exactin SavedItemsGallery1.Selected exactin SavedItems コレクションまたはテーブルに属していますBelonging to a collection or a table
exactinexactin   "Windows" exactin “To display windows in the Windows operating system...”"Windows" exactin “To display windows in the Windows operating system...” 部分文字列をテストします (大文字小文字を区別します)Substring test (case-sensitive)
inin   Gallery1.Selected in SavedItemsGallery1.Selected in SavedItems コレクションまたはテーブルに属していますBelonging to a collection or a table
inin   "The" in "The keyboard and the monitor...""The" in "The keyboard and the monitor..." 部分文字列をテストします (大文字小文字を区別しません)Substring test (case-insensitive)
@ 曖昧性除去演算子Disambiguation operator MyTable[@fieldname]MyTable[@fieldname] フィールドの曖昧性を除去しますField disambiguation
@   [@MyVariable][@MyVariable] グローバルの曖昧性を除去しますGlobal disambiguation
,,
[言語依存][language dependent]
リストの区切り記号List separator If( X < 10, "Low", "Good" )If( X < 10, "Low", "Good" )
{ X: 12, Y: 32 }{ X: 12, Y: 32 }
[ 1, 2, 3 ][ 1, 2, 3 ]
以下の要素を区切ります。Separates: この文字は言語によって異なります。This character depends on the language.
;;
[言語依存][language dependent]
数式のチェーンFormula chaining Collect(T, A); Navigate(S1, "")Collect(T, A); Navigate(S1, "") 関数の呼び出しの動作プロパティを区切ります。Separate invocations of functions in behavior properties. チェーン演算子は言語に依存します。The chaining operator depends on the language.
ParentParent Parent 演算子Parent operator Parent.FillParent.Fill コントロール コンテナーのプロパティにアクセスしますAccess to properties of a control container
ThisItemThisItem ThisItem 演算子ThisItem operator ThisItem.FirstNameThisItem.FirstName ギャラリーまたはフォーム コントロールのフィールドにアクセスしますAccess to fields of a Gallery or form control

in 演算子と exactin 演算子in and exactin operators

in 演算子と exactin 演算子を使用して、コレクションやインポートされたテーブルなどのデータ ソース内の文字列を検索できます。You can use the in and exactin operators to find a string in a data source, such as a collection or an imported table. in 演算子は、大文字小文字を無視して一致する文字列を識別し、exactin 演算子は、大文字小文字が一致する文字列のみを識別します。The in operator identifies matches regardless of case, and the exactin operator identifies matches only if they're capitalized the same way. 次に例を示します。Here's an example:

  1. Inventory という名前のコレクションを作成するかインポートし、「Show images and text in a gallery」 (イメージとテキストをギャラリーに表示する) の最初の手順に従って、ギャラリーに表示します。Create or import a collection named Inventory, and show it in a gallery, as the first procedure in Show images and text in a gallery describes.

  2. ギャラリーの Items プロパティを次の数式に設定します。Set the Items property of the gallery to this formula:
    Filter(Inventory, "E" in ProductName)Filter(Inventory, "E" in ProductName)

    ギャラリーには、指定した文字が名前に含まれていない唯一の製品である Callisto を除くすべての製品が表示されます。The gallery shows all products except Callisto because the name of that product is the only one that doesn't contain the letter you specified.

  3. ギャラリーの Items プロパティを次の数式に変更します。Change the Items property of the gallery to this formula:
    Filter(Inventory, "E" exactin ProductName)Filter(Inventory, "E" exactin ProductName)

    ギャラリーには、指定した大文字が名前に含まれている唯一の製品である Europa のみが表示されます。The gallery shows only Europa because only its name contains the letter that you specified in the case that you specified.

ThisItem 演算子ThisItem operator

ギャラリー編集フォーム、または**表示フォーム** コントロールをテーブルまたはコレクションにバインドすることによって、テーブルまたはコレクションのデータを表示することができます。You can show data in Gallery, Edit form, or Display form controls by binding it to a table or a collection. これらのコントロールは、他のカードまたはコントロールのコンテナーです。These controls are a container for other cards and controls. コンテナー内のカードまたはコントロールは、ThisItem 演算子を通して、バインドされているデータにアクセスできます。Each card or control within the container can access the bound data through the ThisItem operator.

この**item** 演算子を使用して、外側のコントロール内の各カードまたはコントロールに表示されるデータのを指定します。Use the ThisItem operator to specify the column of data to be displayed in each card or control within the outer control. たとえば、「Show images and text in a gallery」 (イメージとテキストをギャラリーに表示する) の製品ギャラリーでは、この演算子は、製品のデザインを表示するイメージ コントロール、製品名を表示する上のラベル、および在庫数を示す下のラベルを指定しています。For example, that operator in the product gallery for Show images and text in a gallery specified that the image control showed the product design, the upper label showed the product name, and the lower label showed the number of units in stock.

入れ子になっているギャラリーでは、ThisItem は、最も内側のギャラリー アイテムを参照します。For nested galleries, ThisItem refers to the innermost gallery's items. 内側と外側のギャラリーの行フィールドが競合していないことを前提として、修飾されていないフィールド (列) 名を直接使用することもできます。Assuming the row fields in the inner and outer galleries don't conflict, you can also use the unqualified field (column) names directly. この方法によって、内側のギャラリーが外側のギャラリーのアイテムを参照するというルールが有効になります。This approach enables rules in an inner gallery to refer to an outer gallery's items.

Parent 演算子Parent operator

一部のコントロールは、その他のコントロールをホストします。Some controls host other controls. たとえば、画面****ギャラリー****カード****編集フォーム および**表示フォーム** コントロールは、すべてがコントロールのコンテナーです。For example, Screen, Gallery, Card, Edit form, and Display form controls are all containers for controls. ホストしているコントロールは、その中に含まれているコントロールの "親" と呼ばれます。We call the hosting control the "parent" of the controls within.

アプリ内の任意の場所から、Power Apps の任意のコントロールを名前で参照できます。Any control in Power Apps can be referenced by name from anywhere within the app. Screen1 がアプリの画面名であるとします。Screen1 may be the name of a screen in your app. この画面の背景色を取得するには、Screen1.Fill を使用できます。To retrieve the background color of this screen, you can use Screen1.Fill.

この画面上のコントロールには、別のオプションがあります。Controls on this screen have another option. それらは、相対参照である Parent.Fill を使用することができます。They can use a relative reference: Parent.Fill. Parent 演算子は、コントロールをホストしているコントロールを参照して、ホストしているコントロールのすべてのプロパティを使用できるようにします。The Parent operator refers to the control that hosts this control, making available all of its properties. Parent コントロールはコントロールの名前に依存しないため、便利に使用できます。Using Parent is helpful because it doesn't depend on the name of the control. コンテナー コントロールは、コンテナー内の参照の調整なしで、コピーして貼り付けることができます。You can copy and paste a container control without needing to adjust any references within the container. さらに、この演算子は、数式を読み取るときに、コントロールの親子関係を理解しやすくします。This operator also makes the relationship between child and parent controls clearer when reading formulas.

識別子名Identifier names

変数、データソース、列、およびその他のオブジェクトの名前には、任意のUnicodeを含めることができます。The names of variables, data sources, columns, and other objects can contain any Unicode.

空白またはその他の特殊文字を含む名前を引用符で囲んでください。Use single quotes around a name that contains a space or other special character. 2つの単一引用符を一緒に使用して、名前の1つの一重引用符を表します。Use two single quotes together to represent one single quote in the name. 特殊文字を含まない名前では、単一引用符は必要ありません。Names that do not contain special characters do not require single quotes.

ここでは、テーブルで発生する可能性のある列名の例と、それらが数式でどのように表現されるかを示します。Here are some example column names you might encounter in a table, and how they are represented in a formula:

データベース内の列名Column name in a database 数式内の列参照Column reference in a formula
SimpleNameSimpleName SimpleName
NameWith123NumbersNameWith123Numbers NameWith123Numbers
名前とスペースName with spaces 'Name with spaces'
二重引用符で囲まれる名前Name with "double" quotes 'Name with "double" quotes'
' Single ' 引用符を含む名前Name with 'single' quotes 'Name with ''single'' quotes'
@ アットマークの付いた名前Name with an @ at sign 'Name with an @ at sign'

二重引用符は、テキスト文字列を指定するために使用されます。Double quotes are used to designate text strings.

表示名と論理名Display names and logical names

SharePoint や Common Data Service などの一部のデータソースには、同じテーブルまたはデータ列を参照する2つの異なる名前があります。Some data sources such as SharePoint and Common Data Service have two different names to refer to the same table or column of data:

  • 論理名-一意であることが保証されている名前。作成後には変更されません。通常、スペースやその他の特殊文字は使用できず、異なる言語にローカライズされません。Logical name - A name that is guaranteed to be unique, does not change after being created, usually does not allow spaces or other special characters, and is not localized into different languages. 結果として、名前がやや不可解になることがあります。As a result the name can be somewhat cryptic. これらの名前は、プロの開発者によって使用されます。These names are used by professional developers. たとえば、 cra3a_customfieldです。For example cra3a_customfield. この名前は、"スキーマ名" または "名前" と呼ばれることもあります。This name may also be referred to as schema name or just name.

  • [表示名]-ユーザーフレンドリで、エンドユーザーに表示されることを意図した名前。Display name - A name that is user friendly and intended to be seen by end users. この名前は一意ではなく、時間の経過と共に変わる可能性があります。また、スペースと Unicode 文字を含めることができ、異なる言語にローカライズされる可能性があります。This name may not be unique, may change over time, may contain spaces and any Unicode character, and may be localized into different languages. 上記の例に対応して、表示名は、単語の間にスペースがあるカスタムフィールドにすることができます。Corresponding to the example above, the display name may be Custom Field with a space inbetween the words.

表示名はわかりやすくなるため、キャンバスアプリでは、これらを選択肢として提示し、論理名を提案しません。Since display names are easier to understand, Canvas apps will suggest them as choices and not suggest logical names. 論理名は推奨されませんが、直接に入力した場合は使用できます。Although logical names are not suggested, they can still be used if typed in directly.

たとえば、Common Data Service のエンティティにカスタムフィールドを追加したとします。For example, imagine you have added a Custom Field to an entity in Common Data Service. 論理名は、フィールドの作成時にのみ変更できるシステムによって割り当てられます。A logical name will be assigned for you by the system which you can modify only when creating the field. 結果は次のようになります。The result would look similar to:

カスタムフィールドが追加された Accounts エンティティ。 "カスタムフィールド" の表示名と "cr5e3_customfield" の論理名を示しAccounts entity with Custom Field added, showing a display name of "Custom Field" and a logical name of "cr5e3_customfield"

アカウントのフィールドへの参照を作成する場合は、 ' カスタムフィールド ' を使用するように提案されます。これは表示名であるためです。When authoring a reference to a field of Accounts, the suggestion will be made to use 'Custom Field' since this is the display name. この名前にはスペースが含まれているため、単一引用符を使用する必要があることに注意してください。Note that the single quotes must be used because this name has a space in it:

Studio の数式バーには、表示名が ' カスタムフィールド ' になっているアカウントのフィールド名の候補が強調表示されていStudio formula bar showing suggestions for field names of Accounts with the display name 'Custom Field' highlighted

提案を選択すると、数式バーに "カスタムフィールド" が表示され、データが取得されます。After selecting the suggestion, 'Custom Field' is shown in the formula bar and the data is retrieved:

フィールドに対して表示名 ' Custom Field ' が使用されていることを示す Studio の数式バーStudio formula bar showing the use of the display name 'Custom Field' for the field

これは推奨されませんが、このフィールドには論理名を使用することもできます。Although it is not suggested, we could also use the logical name for this field. これにより、同じデータが取得されます。This will result in the same data being retrieved. この名前にはスペースまたは特殊文字が含まれていないため、単一引用符は必要ありません。Note that no single quotes are required since this name does not contain spaces or special characters:

フィールドに論理名 cr5e3_customfield が使用されていることを示す Studio の数式バーStudio formula bar showing the use of the logical name cr5e3_customfield for the field

バックグラウンドでは、式に表示される表示名と基になる論理名の間でマッピングが維持されます。Behind the scenes, a mapping is maintained between the display names seen in formulas and the underlying logical names. 論理名はデータソースとの対話に使用する必要があるため、このマッピングを使用して現在の表示名から論理名に自動的に変換され、ネットワークトラフィックに表示されます。Since logical names must be used to interact with the data source, this mapping is used to convert from the current display name to the logical name automatically and that is what is seen in the network traffic. このマッピングは、新しい表示名に切り替えるために論理名への変換にも使用されます。たとえば、表示名が変更されたり、別の言語のメーカーがアプリを編集したりした場合などです。This mapping is also used to convert back to logical names in order to switch into new display names, for example if a display name changes or a maker in a different language edits the app.

注意

環境間でアプリを移動する場合、論理名は変換されません。Logical names are not translated when moving an app between environments. Common Data Service システムエンティティとフィールド名については、論理名が環境間で一貫しているため、これは問題にはなりません。For Common Data Service system entity and field names this should not be a problem as logical names are consistent across environments. ただし、上記の例のcra3a_customfieldなどのカスタムフィールドには、異なる環境プレフィックス (この場合はcra3a ) を使用できます。But any custom fields, such as cra3a_customfield in this example above, may have a different environment prefix (cra3a in this case). 表示名は、新しい環境の表示名と照合できるため、優先されます。Display names are preferred as they can be matched against display names in the new environment.

名前のあいまい性Name disambiguation

表示名は一意ではないため、同じエンティティ内で同じ表示名が複数回表示されることがあります。Since display names are not unique, the same display name may appear more than once in the same entity. この場合、競合している名前の1つのうち、論理名がかっこ内の表示名の末尾に追加されます。When this happens, the logical name will be added to the end of the display name in parenthesis for one of more of the conflicting names. 上記の例を基にして、同じ表示名を持つ2番目のフィールドがあり、 cra3a_customfieldaltの論理名を持つカスタムフィールドがある場合、提案は次のように表示されます。Building on the example above, if there was a second field with the same display name of Custom Field with a logical name of cra3a_customfieldalt then the suggestions would show:

"カスタムフィールド" の2つのバージョンを明確に区別するために、論理名 cr5e3_customfieldalt の使用を示す Studio の数式バーStudio formula bar showing the use of the logical name cr5e3_customfieldalt to disambiguate the two versions of "Custom Field"

名前のあいまいさを解消するための文字列は、エンティティの名前、オプションセット、およびその他の Common Data Service 項目など、名前の競合が発生した場合に追加されます。Name disambiguation strings are added in other situations where name conflicts occur, such as the names of entities, option sets, and other Common Data Service items.

曖昧性除去演算子Disambiguation operator

一部の関数では、各レコードの処理中に、テーブルのフィールドにアクセスするためのレコード スコープを作成します (FilterAddColumnsSum など)。Some functions create record scopes for accessing the fields of table while processing each record, such as Filter, AddColumns, and Sum. レコード スコープによって追加されたフィールド名は、アプリの別の場所にある同じ名前をオーバーライドします。Field names added with the record scope override the same names from elsewhere in the app. これが発生した場合でも、@ 曖昧性除去演算子を使用して、レコード スコープの外部の値にアクセスできます。When this happens, you can still access values from outside the record scope with the @ disambiguation operator:

  • 入れ子になったレコード スコープの値にアクセスするには、次のパターンを使用した操作対象のテーブルの名前の @ 演算子を使います。To access values from nested record scopes, use the @ operator with the name of the table being operated upon using this pattern:
    Table[@フィールド名]Table[@FieldName]
  • データ ソース、コレクション、コンテキスト変数などのグローバル値にアクセスするには、[@オブジェクト名] のパターンを使用します (テーブルは指定しません)。To access global values, such as data sources, collections, and context variables, use the pattern [@ObjectName] (without a table designation).

詳細と例については、「レコード スコープ」を参照してください。For more information and examples, see record scopes.