ユーザー定義関数コレクション No.004|Combin関数

Power Apps
この記事は約4分で読めます。

プロジェクトチームの編成パターンや、検査サンプルの組み合わせを計算したいと思ったことはありませんか?そんな時に便利なのが、組み合わせの総数を計算するCombin関数です。

今回は、与えられた数から指定した数を選ぶ組み合わせの総数を計算するCombin関数を作成したので、その実装をご紹介します。

Power Apps のユーザー定義関数とは?

ユーザー定義関数は Power Apps 内でプログラミングでいうところのメソッドを定義できる機能で、ユーザーごとに独自の関数を作成し、それをアプリ内で利用できる機能のことです。

Excel 互換のCombin関数

この関数は、エクセルにあるCOMBIN関数と同じ機能を持つ関数になります。そのため、もちろん同じ結果を表示することが可能です。

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再生リスト集をご紹介します。

Power Apps 学習リソース一覧

コントロール・機能 リンク
ギャラリー 再生リスト
テキストラベル 再生リスト
テキスト入力 再生リスト
フォーム 再生リスト
ラジオ 再生リスト
スライダー 再生リスト
トグル 再生リスト
コンボボックス 再生リスト
ドロップダウン 再生リスト
ボタン 再生リスト
日付選択 再生リスト
画像 再生リスト
タイマー 再生リスト
コンポーネント 再生リスト
Copilot 再生リスト
クラシックコントロール 再生リスト
表示加工 再生リスト
バリデーション 再生リスト
ひと手間デザイン 再生リスト
ハンズオン 再生リスト
全体Tips 再生リスト
無料配布 再生リスト

コメント

タイトルとURLをコピーしました