本記事では、ユーザーが自分で定義した関数を追加して使用する方法をご紹介します。
エクセルでよく使う関数や複雑な処理を自分で登録して使いたいという場合に短くて分かりやすい数式を作れるようになります。数式の可読性が向上しますのでぜひご使用ください。
ユーザー定義のカスタム関数を追加して実現したいことは下記のとおりです。
結論
主に下記の2つの方法で数式をカスタム関数として追加することができます。
VBAは少しハードルが高いですが、1. LAMBDA
関数を使用する方法は誰でも簡単に実装できます。それぞれ以下で解説します。
名前付き範囲とLAMBDA関数を使用してカスタム関数を登録する
まず、LAMBDA
関数を使用するパターンを解説します。LAMBDA
関数自体に馴染みがなく使用経験が無い方もいらっしゃいますので、ざっくりとした使用方法を解説します。
例えば、下記のように税抜き金額に1.1を掛けて税込み金額を計算する処理を例とします。
通常の数式では=A2*1.1
のように行っていますが、以下のステップでこちらを関数化します。
ステップ =A2*1.1
などの元の数式の中で、入力値が変わる部分と変わらない部分に分けます。A2
は他のセルでも計算するために変える必要がありますが、1.1
は固定の入力値と判断できます
ステップ 次に、変える必要がある値(ここではA2
)について、任意の名前に変更します。ここでは税抜き金額
としています。'
シングルクオーテーションを先頭につけると、式を文字列として編集できます
ステップ ステップ2で登録した表記をもとに、LAMBDA
関数を先頭に付け足し、先ほどの名前を1つ目の引数として入力します。複数値がある場合は=LAMBDA(値1, 値2..., 元の数式)
の形式で入力してください
=A2 * 1.1 '元の関数
>> =税抜き金額 * 1.1 '可変の入力値を任意の文字列に置換する
>> =LAMBDA(税抜き金額, 税抜き金額*1.1) 'LAMBDA関数と可変の入力値に設定した文字列を追加する
ステップ 最後にこちらの文字列を任意の名前で名前付き範囲にユーザー定義関数として追加します (名前付き範囲は[数式]
タブ → [名前の定義]
もしくはCtrl + F3Alt + N (新規作成)より追加可能です)
以上が名前付き範囲とLAMBDA
関数を使用してカスタム関数を登録する方法の解説となります。より詳しい使用方法や構文にご興味がある方は下記の公式ドキュメントをご確認ください。
VBA(マクロ)で、カスタム関数を追加する
次に、ExcelのVBAでユーザーが定義したカスタム関数を追加する方法を解説します。こちらの処理は一定のVBA知識を必要とするため、慣れていない方は無理に関数化せず数式をそのまま使用してください。
こちらでは先ほど同様に税抜き金額に1.1を掛けて税込み金額を計算する処理を例とします。
ステップ [開発]
タブ → [Visual Basic]
もしくはAlt + F11でビジュアルエディタを開く
ステップ [ビジュアルエディタ上]
で[挿入]
→ [標準モジュール]
もしくはAlt + IMで新しいモジュールを作成
ステップ 下記のコードを入力し、ワークシートに戻る
Function AddTaxByVBA(Value As Double)
'Witten by consulting-campus.site
'
'
'
AddTaxByVBA = Value * 1.1 '関数名 = 数式 でカスタム関数を追加する
End Function
こちらで、下記のように新しい関数が追加されていることがわかります。
おわりに
こちらがエクセルでユーザー定義のカスタム関数をワークブックに追加する方法になります。
コードの可読性が高まることで拡張性・正確性が増しますのでぜひご使用ください。
ご精読いただきありがとうございました。
コメント