プロジェクトチームの編成パターンや、検査サンプルの組み合わせを計算したいと思ったことはありませんか?そんな時に便利なのが、組み合わせの総数を計算するCombin関数です。
今回は、与えられた数から指定した数を選ぶ組み合わせの総数を計算するCombin関数を作成したので、その実装をご紹介します。
Power Apps のユーザー定義関数とは?
ユーザー定義関数は Power Apps 内でプログラミングでいうところのメソッドを定義できる機能で、ユーザーごとに独自の関数を作成し、それをアプリ内で利用できる機能のことです。
Excel 互換のCombin関数
この関数は、エクセルにあるCOMBIN関数と同じ機能を持つ関数になります。そのため、もちろん同じ結果を表示することが可能です。

Excel 関数からのアップデート
ここで重要なのは、Excel の関数をそのまま再現するだけでなく、使いやすさを向上させている点です。
実は、エクセルでは先に指定する数値が大きくないとエラーとなってしまいますが、今回作成した関数では前後の数の順序を自由に設定することができるように前処理を行っています。これにより、より柔軟に関数を使用できるようになりました。
具体的な関数のコードは以下になります。
Combin(n: Number, r: Number): Number =
With(
{
maxVal: If(n >= r, n, r),
minVal: If(n >= r, r, n)
},
If(
minVal < 0 Or maxVal < 0,
0,
If(
minVal = 0 Or minVal = maxVal,
1,
If(
minVal = 1,
maxVal,
With(
{
actualR: If(minVal > maxVal / 2, maxVal - minVal, minVal)
},
Round(
Exp(
Sum(
ForAll(
Sequence(actualR),
Ln(maxVal - Value + 1)
),
Value
) -
Sum(
ForAll(
Sequence(actualR),
Ln(Value)
),
Value
)
),
0
)
)
)
)
)
);
使い方は以下のようになります。
Combin(10,3) //120と表示されます
また、前後の数値を入れ替えたとしても結果は同じになります。
Combin(3,10) //120と表示されます
実務での活用例
この関数は、さまざまな実務シーンで活用することができます。具体的には以下のような場面で便利ですね。
- プロジェクトチームの編成: 社員の中からプロジェクトチームを選ぶ際の組み合わせパターン数を計算
- 品質管理: 製品ロットから検査サンプルを抽出する際の可能性の総数を把握
- スケジュール調整: 会議の候補日から実際の開催日を選ぶ際の調整パターン数を算出
さらに学びたい方へ
Power Fxの標準関数にはない機能も、工夫次第で実現できるのがユーザー定義関数の魅力です。ぜひ試してみてください。
Power Apps学習の決定版!コントロール別YouTube再生リスト完全ガイド
Power Appsを学習していて「どのコントロールをどう使えばいいのかわからない」「実際の使い方を動画で見ながら覚えたい」と思ったことはありませんか?
実践的な知識を効率よく身につけられるよう、現在公開している動画を整理したYouTube再生リスト集をご紹介します。



コメント