【エクセル】組み合わせ総数、階乗を一発算出!VBAへの組み込みも!

「10人の中から2人選ぶときの選出パターンを求めたい。」

「5人を一列に並べるときに並び方の総パターンを求めたい。」

これはまさに高校数学でならった【組み合わせの算出】と【階乗】ですね。

(Cとか!で表していたやつ)

エクセルでこのようなパターンの算出する際、高校のときの知識を使って

=(10*9)/(2*1)

であったり、

=5*4*3*2*1

このように打ち込んでいる人は多いのではないでしょうか?

この記事ではそんな面倒な作業を一瞬で解消できる方法をご紹介します。

特別なスキルは必要なく、もともとエクセルに組み込まれているものですので、是非このスキルをマスターし、日々の業務を効率化していきましょう。

それでは早速やっていきます!

スポンサーリンク

組み合わせ総数を算出【COMBIN関数】

まず始めに組み合わせ総数を算出する関数からご紹介します。

エクセルには様々な関数が組み込まれていることはご存じかと思いますが、その中に組み合わせ総数を算出するCOMBIN関数というものがあります。

COMBINはCOMBINATIONという単語の略です。

文字通り組み合わせという意味を持つ単語ですね。

スポンサーリンク

階乗を算出【FACT関数】

次に階乗を算出する関数をご紹介します。

階乗を算出するためにはFACT関数を使います。

FACTはFACTORIALという単語の略です。

これも文字通り階乗という意味を持つ単語ですね。

ここからはこれらのCOMBIN関数、FACT関数の使い方をご紹介していきます。

スポンサーリンク

COMBINE関数、FACT関数の使い方

これらの関数の使い方は以下の通りです。

 

組み合わせ総数を算出したいセル上で

=COMBIN(【総数】,【抜き取り数】)

 

階乗を算出したいセル上で

=FACT(【階乗を算出したい数値】)

 

たったこれだけです。非常に簡単ですね。

次は実際の使用例を見てみましょう。

スポンサーリンク

実際の使用例

まずは組み合わせ総数を算出するCOMBIN関数の使い方から。

※今回は総数10、抜き取り数2として算出してみましょう。

実際の使用例は以下の通りです。

f:id:yshgs_elec:20210204205106j:plain

今回はセルを参照していますが、直接数字を打ち込みたい場合は

=COMBIN(10,2)

とすればOKです。

念のため検算もしておきましょう。

E2セルに組み合わせ総数の計算式を手打ちで入力して確認してみました。

以下のとおり、COMBIN関数を使った場合と全く同じ結果になっています。

f:id:yshgs_elec:20210204205120j:plain

ここまでがCOMBIN関数の使用例でした。

次は階乗を算出するFACT関数の実際の使用例についてです。

※今回は総数5で算出してみましょう。

f:id:yshgs_elec:20210204205132j:plain

こちらもセルを参照していますが、直接数字を入力して

=FACT(5)

としてもOKです。

念のためこれも検算しておきましょう。

以下がD2セルにて行った検算結果です。

きちんとFACT関数を用いたときと同じ結果になっていますね。

f:id:yshgs_elec:20210204205144j:plain

以上がFACT関数の使用例でした。

このように、関数を知ってさえいれば、組み合わせ総数、階乗は簡単に算出できます。

ぜひ覚えておきましょう。

スポンサーリンク

VBAへの組み込み方法

VBAで複雑な処理を行っていると、VBAで算出したデータに対して、今回紹介したような組み合わせ総数や階乗の計算を行うことはあると思います。

ここではVBA上で、このCOMBIN関数とFACT関数を使用する方法をご紹介します。

※VBAの使い方については以下の記事をご確認ください。

www.higashisalary.com

今回は以下の画像のC2セル(cells(2,3))に組み合わせ総数を、B5セル(cells(5,2))に階乗をVBAを用いて算出していきます。

f:id:yshgs_elec:20210204205157j:plain

難しそうですが、それぞれたったの一行で終わります。

Sub Macro1()
    Cells(2, 3) = WorksheetFunction.Combin(Cells(2, 1), Cells(2, 2))
    Cells(5, 2) = WorksheetFunction.Fact(Cells(5, 1))
End Sub

以下がこのマクロの実行結果です。

f:id:yshgs_elec:20210204205209j:plain

先ほどと全く同じ数値が記入されていますね。

今回はセルに数値が記入されていることを想定して記述しましたが、cells(*,*)の部分は直接数字を打ち込んだり、整数の変数を使用することもできます。

あなたの状況に応じて使い分けてください。

スポンサーリンク

おわりに

というわけで今回はCOMBIN関数とFACT関数をご紹介しました。

知っておくだけで、面倒な数式入力作業を大幅に削減できますので、ぜひ覚えておきましょう!

このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

・日々の残業時間を減らしたい。

・業務をもっと効率的にこなしたい。

・もっと勉強する時間を作りたい。

こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。

この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

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