式を使用して計算を実行する
Power Apps では、Excel のように、式を作成して値を計算し、返すことができます。 数値を操作したり値を計算したりするときに使用できるいくつかの一般的な関数を次の一覧に示します。 この構文では、各かっこの間に複数の数値を入力できますが、以下の例では数値が 2 つだけ含まれています。
Average - 引数の平均値つまり算術平均を計算します。
- 例:
Average(3,7)
の戻り値は 5
- 例:
Max - 最大値を見つけます。
- 例:
Max(3,7)
の戻り値は 7
- 例:
Min - 最小値を見つけます。
- 例:
Min(3,7)
の戻り値は 3
- 例:
Sum - 引数の合計を計算します。
- 例:
Sum(3,7)
の戻り値は 10
- 例:
StdevP - 引数の標準偏差を計算します。
- 例:
StdevP(3,7)
の戻り値は 2
- 例:
VarP - 引数の分散を計算します。
- 例:
VarP(3,7)
の戻り値は 4
- 例:
式にコントロールを組み込む
式でコントロール名を参照することにより、式にコントロールを組み込むことができます。
たとえば、次の図では、Items プロパティが [1, 2, 3, 4, 5]
である dropdown コントロールが追加されています。 そのすぐ下には、Text 値が Average(Dropdown1.Selected.Value,7)
である label コントロールが追加されています。 つまり、このラベルの式により、dropdown の値と数値 7 の平均値が出力されます。
dropdown の値を 5 に変更すると、label の値は 6 に変更されます (図を参照)。 式でコントロール参照を使用すると、アプリがより動的になります。
式で複数のコントロールを使用する
同じ式で複数のコントロールを参照して、アプリ ユーザーに動的な出力を提供することができます。
次の例では、いくつかの入力に基づいて、ユーザーにフィードバックとしてメッセージを出力するフォーム エクスペリエンスを構築する方法について説明します。 この例では、特定の品目の特定の数量の原価を計算し、通貨情報を含むメッセージとして出力する方法を示します。
注
これらのステップを実行しているときに、式でエラーが返される場合は、Power Apps 環境の言語設定 (ローカライズ) が一部の区切り記号や演算子に影響している可能性があります。 たとえば、式 Text(ThisItem.Price, "$ ##.00")
は、日本やイギリスなど、ドットまたはピリオドを小数点として使用する言語や地域のものです。 しかし、フランスやスペインなど、小数点にコンマを使用する言語や地域では、式は次のようになります: Text(ThisItem.Price; "$ ##,00")
ThisItem.Price でのプロパティ選択演算子 "." (ドットまたはピリオド) は、小数点に関係なく常に同じですが、小数点とチェーン演算子の区切り文字がそれぞれコンマとセミコロンに変更されていることに注意してください。 内部的には式に違いはなく、異なるのは作成者が式をどのように表示および編集するかという点だけです。
別のブラウザー インスタンスまたはタブで make.powerapps.com に移動し、新しいアプリを作成します (別のユニットで作成したのと同じアプリを使用できます)。
+ 挿入 > テキスト ラベルを選択します。
Text プロパティを
"Product"
に変更します。さらに 3 つのテキスト ラベルを追加し、それらを最初のラベルの下に配置します。 次の図のように、Text プロパティを
"Quantity"
、"Cost"
、および"Total"
に変更します。ヒント
コントロール自体をダブルクリックすることで、各ラベルの Text プロパティの名前を変更できます。 ダブルクリックすると、コントロール内の既存のテキストが強調表示されます。その後、テキストを入力すると、テキストがラベル コントロールに自動的に挿入されます (引用符を含めて Power fx の式も更新されます)。
次に、3 つの Text Input コントロールをキャンバス アプリに挿入し、次のスクリーンショットに示すように並べ替えます。
各 TextInput の Default プロパティで、"テキスト入力" を削除して各 Default を空白にします。
合計の右側に、別のテキスト ラベルを挿入します。 このコントロールの名前を lblSum に変更します。
Text プロパティを次のように変更します。
Sum(TextInput2.Text * TextInput3.Text)
(この例では、TextInput2 は購入数量であり、TextInput3 は商品ごとの原価です。)
右上隅にある再生ボタンを選択して、アプリをプレビューします。 数量入力フィールドに
4
、原価に8.20
と入力して、式をテストします。 現在のところ、小数点第 2 位 (通貨を表現するときによく使用される) や通貨記号が表示されていないため、次に式を変更してそれを表示します。値が通貨として表示されるように式を変更するには、lblSum の Text プロパティを次のように更新します。
Text(Sum(TextInput2.Text * TextInput3.Text),"$#,###0.00")
合計に結果が通貨として表示されます。
何が行われたのでしょうか。 3 桁ごとにコンマで区切られた式の前にドル記号を追加して、値が 1 未満の場合は小数点の前にゼロを付加し、値がゼロの場合でも小数点第 1 位と第 2 位を追加するよう、式に指示しました。
トランザクションの概要を追加して、式をさらに一歩進めてみましょう。 他のコントロールの下に最後のテキスト ラベルを 1 つ追加し、画面キャンバスの半分以上になるまで幅を拡大します。 Text プロパティで、次の式を入力します。
"Your "& TextInput1.Text & " total is: " & lblSum.Text
TextInput1 は、製品の横の Text Input コントロールです。
アプリをプレビュー モードにし、製品の横の Text Input コントロールに値を入力します。 トランザクションの概要が表示され、すべての入力フィールドの値が組み込まれていることを確認します。 この例では、製品名として Widget と入力しました。 テキスト入力フィールドにさまざまな値を入力し、合計とトランザクションの概要メッセージがどのように動的に変化するかを確認してください。
ここでは、3 つの入力コントロールと Sum 式を組み合わせて使用し、合計を計算してトランザクションの概要メッセージを表示しました。 式で複数のコントロールを使用して、アプリ ユーザーに動的で適切なフィードバックを提供できることがわかりました。
次は、コントロールを使用して他のコントロールのプロパティを変更する方法、具体的にはコントロールの表示位置を変更する方法について説明します。 そのため、練習用アプリは開いたままにし、次のユニットに進みましょう。