Excelで次の非素数を探索: ユーザー定義関数の紹介
この記事では、Excelで指定された値より大きく、最も近い非素数を見つけるためのユーザー定義関数を紹介します。
この関数は、指定したセルの値より大きくて最も近い非素数を返します。
この関数の特徴
- 指定したセルの値より大きい最初の非素数を返します。
- 計算は効率的で、大きな数値でも迅速に結果を返すことができます。
- Excelの内蔵関数だけでなく、VBAの機能を利用しています。
関数コードの登録の仕方
1. Excelを開き、[開発]タブをクリックします。
2. [マクロ]ボタンをクリックし、VBAエディタを開きます。
3. [挿入] > [標準モジュール]を選択して、新しいモジュールを追加します。
4. 下記のコードをVBAエディタにコピー&ペーストします。ペースト後はVBAエディタを閉じます。
登録するコード
Function NextComposite(n As Double) As Double Dim isPrime As Boolean Dim i As Double, j As Double If n <= 3 Then NextComposite = 4 Exit Function End If i = Application.WorksheetFunction.Ceiling(n, 1) ' 小数点を次の整数に切り上げる Do isPrime = True For j = 2 To Sqr(i) If i Mod j = 0 Then isPrime = False Exit For End If Next j If Not isPrime And i > n Then NextComposite = i Exit Do End If i = i + 1 Loop End Function
ユーザーは実行時にどんな操作をするのか
関数を使用するには、セルに「=NextComposite(セルの位置)」と入力します。例えば、A1セルの値を元に非素数を探索したい場合、「=NextComposite(A1)」と入力します。
もしくは「関数の挿入」ボタンから「ユーザー定義」カテゴリ「NextComposite」を選んでからA1セルを指定します。
関数を実行すると、指定されたセルの値より大きく、最も近い非素数がそのセルに表示されます。
この計算式はコピー対応です。
使用時の注意点
- 非常に大きな数値を評価する際には計算に時間がかかる可能性があります。
- この関数はExcelのVBA機能を使用しているため、マクロの設定を有効にする必要があります。
コメント