メインコンテンツまでスキップ

数式リファレンス(演算子・関数一覧)

テキストや表の列に 数式 を書くと、パラメータの値を計算・整形して表示できます。このページでは、数式の書き方と、使える演算子・関数をすべて説明します。

このページの使い方
  • 数式の入れ方(パラメータの作り方・テキストへの埋め込み方)は 変数の基本 を先にお読みください。
  • 「和暦で出したい」「明細の合計を出したい」など、目的から探す場合は テンプレートでできること が便利です。

数式を入力する場所​

  1. テキストを選び、「テキスト編集」 を開きます。
  2. 上部のタブで 「変数・数式」 を選びます。
  3. 数式入力 欄に数式を書きます。入力中は 評価結果 に計算結果が表示されます。
  4. 「使用可能な関数・演算子を表示」 を開くと、主な関数と演算子の一覧と例を見られます。

表の列・グラフのラベルや値・チェックボックスの条件にも、同じ書き方の数式を使えます。表の列では、数式は行ごとに計算されます。

例の前提​

このページの例は、パラメータに次の値が入っている場合の結果です。

パラメータ値
@amount1234567
@price1200
@qty3
@name山田 太郎
@codeINV-2026-001
@invoiceDate2026-10-01
@paidfalse
@note''(空文字)

書き方の基本​

書くもの書き方例
パラメータ@パラメータ名@price、@顧客名
表の列@表名.列名@明細.単価(表の列では、その行の値)
文字列'...' または "..."'様'、"円"
数値数字と小数点100、0.1
真偽値true / falsetrue
関数関数名(引数, 引数, ...)round(@price, 0)
括弧( ... )(1 + 2) * 3
  • パラメータには必ず @ を付けます。price のように @ が無いとパラメータを参照しません。
  • 関数名は 大文字・小文字を区別 します。if は使えますが、IF は「Unknown function: IF」というエラーになります。
  • 数値は 1e3 のような指数表記や、.5 のように小数点から始まる書き方はできません(0.5 と書きます)。
  • 文字列の中で改行を入れるときは \n と書きます。囲みと同じ引用符は \' / \" と書きます。
  • 空白や改行は自由に入れられます。

演算子​

種類演算子意味例 → 結果
算術+足し算@price + 100 → 1300
算術-引き算(-@price のように符号にも使える)@price - 200 → 1000
算術*掛け算@price * @qty → 3600
算術/割り算10 / 4 → 2.5
算術%割り算の余り10 % 3 → 1
比較== / !=等しい / 等しくない@code == 'INV-2026-001' → true
比較> < >= <=大小の比較@price > 1000 → true
論理andかつ@price > 1000 and @qty < 5 → true
論理orまたは@price > 5000 or @qty > 1 → true
論理not否定not @paid → true
気をつけたいところ
  • + は文字列をつなぎません。 両辺を数値として足します('1' + '2' → 3)。文字列をつなぐときは concat() を使います。
  • == / != は型も比べます。 数値の 1 と文字列の '1' は等しくありません(1 == '1' → false)。
  • > < >= <= は数値として比べます('10' > '9' → true)。
  • 0 で割ると空欄 になります(10 / 0、10 % 0)。
  • 数値にできない値の計算は NaN と表示されます('a' + 1 → NaN)。
  • 小数の計算では誤差が出ることがあります(0.1 + 0.2 → 0.30000000000000004)。表示するときは round() で丸めてください。

計算の順番​

先に計算されるものから順に並べます。同じ段のものは左から計算します。

  1. 括弧 ( ... )、関数
  2. 符号 -、not
  3. * / %
  4. + -
  5. 比較 == != > < >= <=
  6. and or
and と or は同じ順番です

多くのプログラミング言語と違い、and は or より先に計算されません。左から順に計算します。たとえば 1 or 0 and 0 は (1 or 0) and 0 と同じで、結果は false です。and と or を混ぜるときは、必ず括弧を付けてください。

@price > 1000 and (@qty == 0 or @qty > 10)

関数一覧​

「一覧」の列は、エディタの 「使用可能な関数・演算子を表示」 に載っているかどうかです。載っていない関数も、数式入力欄に直接書けば使えます(入力欄の色分けでは、一覧に無い関数名は一覧外として表示されます)。

条件・論理​

関数書き方説明例 → 結果一覧
ifif(条件, 真のとき, 偽のとき)条件で値を切り替えるif(@price > 1000, '高い', '安い') → 高いあり
andand(値1, 値2, ...)すべて真なら trueand(1, true) → trueなし
oror(値1, 値2, ...)どれかが真なら trueor(0, '') → falseなし
notnot(値)真偽を反転not(@paid) → trueなし
isEmptyisEmpty(値)値が無ければ true(型に関係なく判定)if(isEmpty(@note), '特になし', @note) → 特になしあり
  • 0、空文字、false は偽として扱います。
  • if() は 3 つの引数をすべて書いてください。偽のときの値を省略すると、条件が偽のときにエラーになります。何も表示したくないときは '' を書きます。
  • 演算子の and / or / not と同じ意味です。条件をつなぐ場合は演算子の形(@a > 0 and @b > 0)が読みやすくなります。

isEmpty が「値が無い」とみなすもの​

値isEmpty の結果
値が入っていないパラメータ、存在しないパラメータtrue
空文字、空白だけの文字(半角・全角の空白、改行)true
0、false、'0'、文字のある文字列、日付false
  • if の条件では偽になる 0 や false も、isEmpty では「値がある」とみなします。金額が 0 のときも false です。
  • 値があるかを判定するときは not(isEmpty(@note)) と書きます。
  • 表の列(@明細.備考)は、表の中では行ごとに判定します。表の外で使うと列の値をまとめて判定するため、明細が 1 行以上あれば(その値が空でも)false、明細が 0 行なら true になります。
  • 表そのもの(@明細)は判定できません。行があっても true になるので、明細が 0 行かの判定には使えません。

文字列​

関数書き方説明例 → 結果一覧
concatconcat(値1, 値2, ...)文字をつなげるconcat(@name, ' 様') → 山田 太郎 様あり
lengthlength(文字列)文字数length(@code) → 12あり
leftleft(文字列, 文字数)先頭から取り出すleft(@code, 3) → INVなし
rightright(文字列, 文字数)末尾から取り出すright(@code, 3) → 001なし
midmid(文字列, 開始位置, 文字数)途中から取り出すmid(@code, 4, 4) → 2026なし
trimtrim(文字列)前後の空白を取るtrim(' ABC ') → ABCなし
upperupper(文字列)大文字にするupper('abc') → ABCなし
lowerlower(文字列)小文字にするlower('ABC') → abcなし
replacereplace(文字列, 探す文字, 置き換える文字)文字を置き換えるreplace(@code, '-', '/') → INV/2026/001なし
replaceAllreplaceAll(文字列, 探す文字, 置き換える文字)replace と同じreplaceAll(@code, '-', '') → INV2026001なし
  • concat() は数値や真偽値もそのまま文字にしてつなぎます(concat('a', 1, true) → a1true)。
  • mid() の開始位置は 0 から数えます(1 文字目が 0)。
  • right(文字列, 0) は文字列全体を返します。
  • replace() は見つかった箇所を すべて 置き換えます。探す文字は文字そのものとして扱います(正規表現ではありません)。

数値​

関数書き方説明例 → 結果一覧
commacomma(数値)3 桁ごとにカンマを入れるcomma(@amount) → 1,234,567あり
roundround(数値, 小数の桁数)四捨五入round(1234.567, 2) → 1234.57あり
floorfloor(数値)切り捨て(小さい方の整数)floor(1234.5) → 1234あり
ceilceil(数値)切り上げ(大きい方の整数)ceil(1234.1) → 1235あり
absabs(数値)絶対値abs(-10) → 10あり
maxmax(数値1, 数値2, ...)最大値max(10, 20, 5) → 20あり
minmin(数値1, 数値2, ...)最小値min(10, 20, 5) → 5あり
  • comma() の小数は最大 3 桁で丸めます(comma(1234.5678) → 1,234.568)。結果は文字列なので、そのあと計算には使えません。
  • round() の桁数を省略すると整数に丸めます(round(1234.5) → 1235)。桁数を負にすると十の位より上で丸めます(round(1234.5, -2) → 1200)。
  • round() で .5 は大きい方に丸めます。負の数では round(-2.5) → -2 です。
  • floor() / ceil() は整数に丸めます。負の数では floor(-3.2) → -4 です。小数の位置で切り捨てたいときは floor(@price * 100) / 100 のように書きます。
  • 数値にできない値を渡すとエラーになります(comma('abc'))。

型の変換​

関数書き方説明例 → 結果一覧
texttext(値)文字列にするtext(123) → 123なし
numbernumber(値)数値にするnumber('12.5') + 1 → 13.5なし
  • number() に数値にできない値を渡すとエラーになります。空文字は 0 になります。

日付​

関数書き方説明例 → 結果一覧
dateFormatdateFormat(日付, 書式, タイムゾーン)日付を書式どおりの文字にするdateFormat(@invoiceDate, 'YYYY年M月D日') → 2026年10月1日あり
dateAdddateAdd(日付, 量, 単位, タイムゾーン)日付を進める・戻すdateFormat(dateAdd(@invoiceDate, 30, 'days'), 'YYYY年M月D日') → 2026年10月31日あり
dateDiffdateDiff(日付1, 日付2, 単位, タイムゾーン)2 つの日付の差(日付2 − 日付1)dateDiff('2026-01-01', '2026-01-31', 'days') → 30あり
nownow()計算した時点の日時dateFormat(now(), 'YYYY/MM/DD')あり
  • 日付は 2026-10-01 の形の文字列で渡します。時刻付き(2026-01-15T00:30:00Z)も使えます。

  • タイムゾーン は省略できます。省略するとワークスペースの設定、それも無ければ日本時間(Asia/Tokyo)で計算します。指定するときは 'UTC'、'America/New_York' のような名前で書きます。

    dateFormat('2026-01-15T00:30:00Z', 'YYYY-MM-DD HH:mm')          → 2026-01-15 09:30
    dateFormat('2026-01-15T00:30:00Z', 'YYYY-MM-DD HH:mm', 'UTC') → 2026-01-15 00:30
  • dateAdd() と now() の結果は日付のままです。表示するときは dateFormat() で包んでください。

  • dateAdd() の量を負にすると日付を戻します(dateAdd(@invoiceDate, -1, 'years') → 2025-10-01)。月末を越えるときは月末に合わせます(2026-01-31 の 1 か月後は 2026-02-28)。

  • dateDiff() の端数は切り捨てます(2026-01-31 から 2026-03-30 は months で 1)。日付を逆にすると負の数になります。

  • dateFormat() に渡した日付が空のときは空欄になります。

単位​

dateAdd() / dateDiff() の単位には days(日)、months(月)、years(年)、hours(時間)、minutes(分)を使えます。

書式の記号​

記号意味2026-10-01 の場合
YYYY西暦 4 桁2026
M / MM月 / 月(0 埋め)10 / 10
D / DD日 / 日(0 埋め)1 / 01
H / HH時(24 時間) / 時(0 埋め)
m / mm分 / 分(0 埋め)
GGGG元号令和
G元号の頭文字R
y / yy和暦の年 / 和暦の年(0 埋め)8 / 08
E曜日(短い形)木
EEEE曜日木曜日
[...]囲んだ文字をそのまま出す[発行日:] YYYY/MM/DD → 発行日: 2026/10/01
dateFormat(@invoiceDate, 'YYYY/MM/DD')       → 2026/10/01
dateFormat(@invoiceDate, 'GGGGy年M月D日') → 令和8年10月1日
dateFormat(@invoiceDate, 'Gyy.MM.DD') → R08.10.01
dateFormat(@invoiceDate, 'M月D日(E)') → 10月1日(木)

和暦の詳しい扱い(改元日、「元年」表記)は テンプレートでできること「和暦」 をご覧ください。

ページ番号​

関数書き方説明一覧
currentPagecurrentPage()今のページ番号なし
pagepage()currentPage() と同じあり
totalPagestotalPages()全ページ数なし
maxPagemaxPage()totalPages() と同じあり
concat(currentPage(), ' / ', totalPages())   → 1 / 3(3 ページの 1 ページ目)

文字色​

関数書き方説明例一覧
coloredcolored(文字, 色)文字色を付けるcolored(@name, '#D32F2F')あり
coloredIfcoloredIf(条件, 文字, 真のときの色, 偽のときの色)条件で文字色を切り替えるcoloredIf(@balance < 0, @balance, '#D32F2F', '#000000')あり
  • 色は #RRGGBB(例: #D32F2F)または透明度付きの #RRGGBBAA で書きます。'red' のような色名はエラーになります。
  • coloredIf() は、使われない側の色も正しい形で書いてください。どちらかが正しくないとエラーになります。

エラーになる書き方​

エディタでは、数式に誤りがあるとエラーが表示され、「確定」 を押せません。

書き方理由
IF(@price > 1000, 'a', 'b')関数名の大文字・小文字が違う(if と書く)
comma('abc')数値にできない値を数値の関数に渡している
colored('A', 'red')色を #RRGGBB の形で書いていない
max()引数が 1 つも無い
1 = 1= という演算子は無い(等しいかの比較は ==)
'閉じていない文字列引用符が閉じていない
priceパラメータに @ が付いていない

できないこと​

  • 表の列をまとめて合計する関数(SUM 相当)はありません。合計値はパラメータとして渡してください(表の列の合計)。

関連ページ​