@some_function (1)
関数呼び出し
式では、組み込まれた関数を呼び出すことができます。関数は複数の引数をもとに(引数がない関数もあります)、ひとつの値を返します。返された値をもとにさらに計算や条件判定を行うことができます。
使用できる関数は、式の種類により異なります。
関数名は @ で始まります。
|
1 | some_function という名前の関数を引数なしで呼び出しています。 @some_function() と書いても同じです。 |
引数は () で括って渡します。引数が複数ある場合は , で区切ります。
|
@other_function(1, "a") (1)
1 | other_function という名前の関数を 1 , a という引数を添えて呼び出しています。 |
使用できる関数は、以下の通りです。
全ての方言で使用できる関数
数値計算関数
関数 | 引数 (省略可の場合、[] で囲む) |
機能 |
---|---|---|
@abs |
|
数値の絶対値を返す。 引数が数値でない場合はそのまま返す。 |
@max |
任意個の引数 |
引数のうち、最大の数値を返す。 引数がゼロ個の場合、また、引数中に数値がない場合は |
@min |
任意個の引数 |
引数のうち、最小の数値を返す。 引数がゼロ個の場合、また、引数中に数値がない場合は |
@round |
|
数値の端数部分を四捨五入して返す。四捨五入の切り捨ては負の無限大に向かってではなくゼロに向かって行われ、切り上げは、数値が正数の場合、無限大に向かって行われ、負数の場合、負の無限大に向かって行われます。例えば、-4.5 の小数第 1 位を四捨五入すると、-4 ではなく、-5 となります。 桁数の指定方法は以下の通り:
桁数には、 |
@round_up |
( |
数値の端数部分を切り上げて返す。切り上げは、数値が正数の場合、無限大に向かって行われ、負数の場合、負の無限大に向かって行われます。 |
@round_down |
( |
数値の端数部分を切り捨てて返す。切り捨ては、数値の正負を問わず、ゼロに向かって行われます。 |
@multiply_fraction |
|
計算途中で端数処理を行わずまた桁あふれも起こさずに 第 1 引数~第 3 引数が、その順に、上記の a ~ c に対応します。 |
文字列処理関数
関数 | 引数 (省略可の場合、[] で囲む) |
機能 |
---|---|---|
@is_numeric |
|
文字列が数値として解釈可能か判定する。解釈可能である場合、「True」を返し、以外の場合、「False」を返す・ |
@numeric |
|
文字列を数値に変換する。 |
@left |
|
文字列の左 指定された文字数が負数の場合は、文字列左から、(文字列長+文字数)分の文字列を取りだす。例えば文字列長が 5 で、文字数が -2 ならば、左から 3 文字を取り出す(右から 2 文字を残す)。 |
@right |
(同上) |
文字列の右 指定された文字数が負数の場合は、文字列右から、(文字列長+文字数)分の文字列を取りだす。例えば文字列長が 5 で、文字数が -2 ならば、右からから 3 文字を取り出す(左から 2 文字を残す)。 |
@mid |
|
文字列から部分文字列を取りだす。開始位置は |
@trim |
|
与えられた文字列前後の空白を除去した文字列を返す。 |
@len |
|
文字列の長さを返す。 |
@text |
|
数値を書式パターンに従って整形した文字列を返す。 書式パターンは、フォームの 金額及び数値の表示方法 で使用できるパターンと同じ記法に従う。 位取りは、0 ならそのまま、1 なら十単位、3 なら千単位というように、 |
@repeat |
|
第 1 引数で指定された文字列を、第 2 引数で指定された回数繰り返した文字列を返す。第 2 引数がゼロ以下ならば空文字列を返す。 |
@find |
|
検索文字列が対象文字列中に現れる最初の位置を返す。大文字小文字は区別される。 検索文字列に空文字列を指定した場合、開始位置直後で一致したとみなされ、開始位置が返される。 開始位置には、検索を開始する位置を指定する(先頭は1)。省略時は1と見做される。 返り値は、開始位置によらず、先頭を起点とする位置である。また、対象文字列が見つからなかった場合はエラー値#VALUE!が返される。 |
@substitute |
|
文字列中に現れる特定の部分文字列をすべて置換する。 |
@split |
|
文字列を区切文字列で区切った場合の、インデックス番目の部分文字列を返す。インデックスは |
@num_of_chars_of_type |
|
文字列内に、指定された文字種の文字が何個あるかカウントし、その個数を返す。 第 1 引数は、文字種を表す整数。以下のいずれか、又はその和を指定する:
和を指定した場合、いずれかの文字種に属する文字数の合計を返す。 第 2 引数には、検査すべき文字列を指定する。 例えば
|
@num_of_listed_chars |
|
文字列内に、指定された文字が何個あるかカウントし、その個数を返す。 第 1 引数は、検査すべき文字を列挙した文字列。同じ文字を複数回含めるとその出現回数だけ重複してカウントするので留意する。 第 2 引数は、検査すべき文字列を指定する。 例えば、
|
@asc |
|
文字列内の全角文字を半角文字に変換。全角の英数字記号やカタカナが対象。 第 1 引数は、変換対象の文字列。 例えば、[PRO_CD] で指定されるセルの文字列値に含まれる全角文字を 半角文字に変換する場合、以下のようにする。
|
@jis |
|
文字列内の半角文字を全角文字に変換。半角の英数字記号やカタカナが対象。 第 1 引数は、変換対象の文字列。 例えば、[PRO_CD] で指定されるセルの文字列値に含まれる半角文字を 全角文字に変換する場合、以下のようにする。
|
日付計算関数
関数 | 引数 (省略可の場合、[] で囲む) |
機能 |
---|---|---|
@date |
|
日付連番(整数値)を返す。日付連番は、Excel の日付連番と互換性がある[1]。当関数の引数に与える値は数値(例: 月番号と月オフセットの組み合わせにより、暦年と異なる会計年度の場合も簡単に日付連番を求めることができる。 例) 3 月決算の場合の 2020 年度第 4 月 1 日(=2020/7/1)の日付連番
3 月末決算では、年度末の月が後に 3 ヶ月ずれるため、月オフセット = 3。 例) 6 月決算の場合の 2021 年度第 4 月 1 日(=2020/10/1)の日付連番
6 月末決算では、年度末の月が前に 6 ヶ月ずれるため、月オフセット = -6。 月オフセットは、指定しなければ 西暦年度・月番号・日・月オフセットのいずれかに誤りがあるか、それらの組み合わせに誤りがあって正しい日付を得られない場合、エラー値「#VALUE」が返される。
1. ただし、Excel は 1900 年を誤ってうるう年として日付連番を計算しているため、1900/2/28 以前に関しては、当関数が返す値と互換性がない。
|
@year |
|
日付連番によってあらわされる日付の 歴年 を返す。 |
@month |
|
日付連番によってあらわされる日付の 歴月 を返す。 |
@day |
|
日付連番によってあらわされる日付の、月内での 日 を返す。 |
@day_of_week |
|
日付連番によってあらわされる日付の 曜日 を返す。
|
@last_day_of_month |
|
日付連番によってあらわされる日付が属する月の月末日の日付連番を返す(閏年を考慮)。 |
@week_anchor |
|
帰属期間開始日で始まる期間を週別に分割した場合の、週並び開始日、すなわち第 1 週の最初の日の日付連番を返す。
|
@week_num |
|
週並び開始日から始まる週並びで、判定対象日が含まれる週の番号を返す。 「次の週並び開始日」を指定した場合、その日以降は次の週並び(次の年など)に属するとみなされる。その場合、 |
論理関数
関数 | 引数 (省略可の場合、[] で囲む) |
機能 |
---|---|---|
@is_error |
|
第 1 引数がエラー値かどうかを判定する。エラー値である場合、「True」を返し、以外の場合、「False」を返す。 ⚠第 1 引数を計算式ではなく、セル範囲指定子[A]を設定した場合、そのセル範囲の値がエラーになっても関数の結果は「True」になりません。セルの値がエラー値なのであって、セル範囲そのものはエラー値ではないからです。[A].value、[A].totalなどメンバ関数を明示的に指定ください。 |
@iferror |
|
第 1 引数がエラー値の場合、第 2 引数を返す。以外の場合、第 1 引数を返す。 例)
上記例では、 エラー値は、数値に関する ⚠第 1 引数を計算式ではなく、セル範囲指定子[A]を設定した場合、そのセル範囲の値がエラーになっても関数の結果は「True」になりません。セルの値がエラー値なのであって、セル範囲そのものはエラー値ではないからです。[A].value、[A].totalなどメンバ関数を明示的に指定ください。 |
メンバ選択式のみで使用できる関数
relative_position
関数は、会計年度と相対期間の組み込みメンバリストで使用するために用意されています。relative_position
関数を使用する機会は少ないと思われますが、使用する必要がある場合には、これらの組み込みメンバリストも参考にしてください。
メンバ選択式のみで使用できる depth
関数と height
関数は、フォームの列・行計算式・セル計算式などで使える引数付きの同名称関数とは異なる別の関数ですのでご注意ください。
関数 | 引数 (省略可の場合、[] で囲む) |
機能 |
---|---|---|
@relative_position |
(なし) |
視点メンバを基準として、現在のメンバの相対位置を返す。 会計年度・相対期間ディメンションのメンバ選択式のみで使用可能。 |
@depth |
(なし) |
メンバ選択式で検査中のメンバ(現在のメンバ)の深さを返す。深さの計算の起点は、メンバリストの起点メンバである(メンバリストの起点メンバの深さが メンバ選択式でスキップされたメンバも、深さの計算では考慮される。 |
@height |
(なし) |
メンバ選択式で検査中のメンバ(現在のメンバ)の高さを返す。高さの計算の起点は、メンバツリーの最下位のメンバである(最下位メンバの高さが メンバ選択式でスキップされたメンバも、高さの計算では考慮される。 |
現在のメンバ と 視点メンバ の詳細は メンバ変数 をご参照下さい。 |
フォームの列・行計算式・セル計算式などで使用できる関数
これらの関数の使用可能箇所の詳細は テキスト式の方言一覧 をご参照下さい。 |
関数 | 引数 (省略可の場合、[] で囲む) |
機能 |
---|---|---|
@depth |
|
対象列・行・セルにおいて、第 1 引数で指定されたディメンションについての 現在のメンバ が縦軸又は横軸のメンバリストから供給されている場合、そのメンバのそのメンバリスト内での深さ( 深さは、メンバツリー上でメンバリストの起点メンバ配下に含まれるがメンバリストに含まれないメンバはスキップしてカウントされる。例えば、A > B > C という 3 階層のメンバがあって、メンバリストの起点 A と、その孫 C だけがメンバリストに含まれ、B はメンバリストに含まれない場合、C の深さは 1 とされる(A の深さは 0 である)。 第 1 引数が文字列の場合、ディメンションラベルとみなされる。 |
@height |
|
対象列・行・セルにおいて、第 1 引数で指定されたディメンションについての 現在のメンバ が縦軸又は横軸のメンバリストから供給されている場合、そのメンバのそのメンバリスト内での高さ( 高さは、メンバツリー上でメンバリストの起点メンバ配下に含まれるがメンバリストに含まれないメンバはスキップしてカウントされる。例えば、A > B > C という 3 階層のメンバがあって、メンバリストの起点 A と、その孫 C だけがメンバリストに含まれ、B はメンバリストに含まれない場合、A の高さは 1 とされる(C の高さは 0 である)。 メンバリスト内でメンバが二か所以上に出現する場合、高さは出現位置ごとに計算される。 第 1 引数が文字列の場合、ディメンションラベルとみなされる。 |