関数は、ExcelおよびGoogleスプレッドのプリセット式で、セルが配置されているセルで特定の計算を実行することを目的としています。
関数の構文と引数
関数の構文は、関数のレイアウトを参照し、関数の名前、角括弧、カンマ区切り文字、および引数を含みます 。
すべての数式と同様に、関数は等号( = )とそれに続く関数の名前と引数で始まります。
- 関数名は、実行する計算をExcelに指示します。
- 引数は、かっこまたは丸括弧で囲まれており、その計算に使用するデータを関数に伝えます。
たとえば、ExcelとGoogleスプレッドで最もよく使用される関数の1つがSUM関数です。
= SUM(D1:D6)
この例では、
- 名前は、選択されたセルにデータを一緒に追加するようにExcelに指示します。
- 引き数(D1:D6)関数は、セル範囲D1の内容をD6に追加します。
数式の入れ子関数
Excelの組み込み関数の有用性は、式内の別の関数の中に1つ以上の関数を入れ子にすることで拡張できます。 入れ子関数の効果は、単一のワークシート・セルで複数の計算を実行できるようにすることです。
これを行うために、入れ子関数は、メイン関数または最も外側の関数の引数の1つとして機能します。
たとえば、次の式では、 SUM関数はROUND関数の内部にネストされています 。
これは、SUM関数をROUND関数のNumber引数として使用することによって実行されます。
= ROUND(SUM(D1:D6)、2)
ネストされた関数を評価するとき、Excelは最も深い、または最も内側の関数を最初に実行し、次に外側に向かって処理します。 その結果、上記の式は次のようになります。
- セルD1〜D6の値の合計を求める。
- この結果を小数点以下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つの点で異なります。
- マクロがアクションを実行する間、UDFは計算を実行します。 前述のように、UDFはマクロができる間にプログラムの環境に影響を与える操作を実行できません。
- Visual Basicエディタウィンドウでは、次の2つを区別できます。
- UDFはFunction文で始まりEnd Functionで終わります。
- マクロはSub文で始まりEnd Subで終わります。