Excelでの関数の定義、使用方法、例

関数は、ExcelおよびGoogleスプレッドのプリセットで、セルが配置されているセルで特定の計算を実行することを目的としています。

関数の構文と引数

関数の構文は、関数のレイアウトを参照し、関数の名前、角括弧、カンマ区切り文字、および引数を含みます

すべての数式と同様に、関数は等号( = )とそれに続く関数の名前と引数で始まります。

たとえば、ExcelとGoogleスプレッドで最もよく使用される関数の1つがSUM関数です。

= SUM(D1:D6)

この例では、

数式の入れ子関数

Excelの組み込み関数の有用性は、式内の別の関数の中に1つ以上の関数を入れ子にすることで拡張できます。 入れ子関数の効果は、単一のワークシート・セルで複数の計算を実行できるようにすることです。

これを行うために、入れ子関数は、メイン関数または最も外側の関数の引数の1つとして機能します。

たとえば、次の式では、 SUM関数はROUND関数の内部にネストされています

これは、SUM関数をROUND関数のNumber引数として使用することによって実行されます。

= ROUND(SUM(D1:D6)、2)

ネストされた関数を評価するとき、Excelは最も深い、または最も内側の関数を最初に実行し、次に外側に向かって処理します。 その結果、上記の式は次のようになります。

  1. セルD1〜D6の値の合計を求める。
  2. この結果を小数点以下2桁に丸めます。

Excel 2007以降、最大64レベルの入れ子関数が許可されています。 それ以前のバージョンでは、ネストされた関数の7つのレベルが許可されていました。

ワークシートとカスタム関数

ExcelとGoogleスプレッドシートには、次の2つのクラスの関数があります。

ワークシート関数は、前述のSUM関数やROUND関数など、プログラムに固有の関数です。

一方、カスタム関数は、ユーザによって書かれた、または定義された関数である。

Excelでは、カスタム関数はビルトインのプログラミング言語で書かれています: Visual Basic for ApplicationsまたはVBA。 関数は、 リボンの 開発者タブにあるVisual Basicエディタを使用して作成されます。

Googleスプレッドシートのカスタム機能は、JavaScriptのフォームであるApps Scriptで作成され、 ツールメニューのスクリプトエディタを使用して作成されます。

カスタム関数は通常、常にそうとは限りませんが、何らかの形式のデータ入力を受け入れ、セルが存在する場所に結果を返します。

以下は、VBAコードで書かれたバイヤー割引を計算するユーザー定義関数の例です。 元のユーザー定義関数、またはUDFはMicrosoftのWebサイトに公開されています。

機能割引(数量、価格)
量> = 100の場合
割引=数量*価格* 0.1
その他
割引= 0
終了の場合
Discount = Application.Round(割引、2)
終了機能

制限事項

Excelでは、ユーザー定義関数は、その関数が置かれているセルにのみ値を返します。 そうすることで、セルの内容や書式を変更するなど、Excel の操作環境変更するコマンドを実行することはできません。

Microsoftのナレッジベースには、ユーザー定義関数の次の制限事項が記載されています。

ユーザー定義関数とExcelのマクロ

Googleスプレッドシートは現在、Excelではサポートされていませんが、Excelではキー入力やマウス操作を模倣してデータの書式設定やコピーアンドペースト操作などの繰り返しのワークシートタスクを自動化する一連の手順が記録されています。

どちらもマイクロソフトのVBAプログラミング言語を利用していますが、それらは2つの点で異なります。

  1. マクロがアクションを実行する間、UDFは計算を実行します。 前述のように、UDFはマクロができる間にプログラムの環境に影響を与える操作を実行できません。
  2. Visual Basicエディタウィンドウでは、次の2つを区別できます。
    • UDFはFunction文で始まりEnd Function終わります。
    • マクロはSub文で始まりEnd Sub終わります。