Portant Docs

タグ数式

タグ数式を使用すると、タグ内で計算、日付のフォーマット、テキストの構築、値の集計を行うことができます。通常のタグと同じ {{ }} 構文を使用しますが、数式であることを示すために = で始まります。

たとえば、ソースに Line Item Price フィールドがあり、10% の税を加えた価格を表示したい場合は、フィールドに 1.1 を掛けます。

{{= Line Item Price * 1.1}}

Tag formula evaluated inside a Portant document template

算術演算

タグ数式では以下の算術演算子を使用できます。

記号 演算
+ 加算
* 乗算
- 減算
/ 除算

複数の演算子を組み合わせたり、括弧 ( ) を使用してより複雑な式を構築したりすることができます。

組み込み数式

Google Sheets や Excel と同様に、Portant にはタグ内で呼び出せる組み込み数式のセットがあります。たとえば、ROUND は数値を指定した小数点以下の桁数に丸めます。

{{Line Item Price}} -> 24.1234
{{=ROUND(Line Item Price, 2)}} -> 24.12
{{=ROUND(Line Item Price)}} -> 24

以下の組み込み数式が利用可能です。

数式 説明
ROUND(Tag, [Places]) Tag の数値を Places で指定した小数点以下の桁数に丸めます。第2引数を省略すると整数に丸めます。
DEFAULT(Tag, Default Value) タグが空の場合にフォールバック値を使用します。
ADD(Tag 1, Tag 2, [...]) 2つ以上の数値タグを加算します。+ を使用する場合と同じです。
MULTIPLY(Tag 1, Tag 2, [...]) 2つ以上の数値タグを乗算します。* を使用する場合と同じです。
TRUNCATE(Tag, Length) Tag のテキスト値を指定した Length の長さに短縮します。
LOWER(Tag) Tag の値を小文字のテキストに変換します。
UPPER(Tag) Tag の値を大文字 (UPPERCASE) のテキストに変換します。

[ ] はパラメータが省略可能であることを意味します。

数式内では、タグの代わりにリテラル値を、値の代わりにタグを渡すことができます。

数値

集計数式

一部の組み込み数式は、データグループ化 ワークフローと連携して動作するよう設計されており、タグのグループ化されたすべての値を集計します。最もよく使われるのは SUM で、指定したタグのすべての値を合計します。テンプレート内で合計を計算する最も簡単な方法です。

Within a Data Grouping Table:
+-----------------------------+
|1. {{Line Item Price}} -> 10 |
+-----------------------------+
|2. {{Line Item Price}} -> 20 |
+-----------------------------+
|3. {{Line Item Price}} -> 30 |
+-----------------------------+

{{=SUM(Line Item Price)}} -> 60

数値の集計数式は以下のとおりです。

数式 説明
SUM(Tag) Tag のすべての値を合計します。
PRODUCT(Tag) Tag のすべての値を乗算します。
AVG(Tag) Tag のすべての値の平均を計算します。
MAX(Tag) Tag の最大値を返します。
MIN(Tag) Tag の最小値を返します。

集計数式は、より複雑な式の中を含め、ドキュメント内のどこでも使用できます。たとえば、1つの明細項目が合計に占める割合を計算するには、次のようにします。

{{= (Price / SUM(Price)) * 100 | 2}}%

上記のテーブルの明細項目に対して、次の結果が得られます。

+-------------------+------------------------------------------------+
|1. {{Price}} -> 10 | {{= (Price / SUM(Price)) * 100 | 2}}% -> 0.16% |
+-------------------+------------------------------------------------+
|2. {{Price}} -> 20 | {{= (Price / SUM(Price)) * 100 | 2}}% -> 0.33% |
+-------------------+------------------------------------------------+
|3. {{Price}} -> 30 | {{= (Price / SUM(Price)) * 100 | 2}}% -> 0.50% |
+-------------------+------------------------------------------------+

小数点以下の桁数修飾子

式の末尾に | に続けて数字を追加すると、ROUND と同じ方法で結果をその桁数に丸めます。たとえば、任意の式を小数点以下3桁に丸めるには、次のようにします。

{{1.1234 + 1.0 | 3}} -> 2.123

日付と時刻のフォーマット

FORMATDATE 数式を使用して、任意の日付またはタイムスタンプをフォーマットします。これにより、生成されたドキュメントでの日付の表示方法を完全に制御できます。

基本的な使い方

タグ内で数式を使用します。

{{=FORMATDATE(Timestamp, "DD/MM/YYYY")}}

最初のパラメータは日付フィールドです。2番目のパラメータは出力フォーマットです。

フォーマットトークン

トークン 出力例
D 1, 19
DD 01, 19
M 1, 12
MM 01, 12
MMM Jan, Dec
MMMM January, December
YY 25
YYYY 2025

フォーマット例

フォーマット 出力例
"DD/MM/YYYY" 07/02/2025
"MMM D, YYYY" Feb 7, 2025
"MMMM DD" February 07
"YY-MM-DD" 25-02-07

日付と時刻の算術演算

日付フィールドに対して、以下のヘルパーを使用して時間を加算または減算できます。

{{= Date + DAYS(30)}} は、Date の値から30日後の値を返します。

サポートされている単位(N は加算または減算する量)は以下のとおりです。

  • MINUTES(N)
  • HOURS(N)
  • DAYS(N)
  • WEEKS(N)

数式の用語集

Sum(合計)

データグループタグ内のすべてのフィールド値を含む、一連のフィールド値の合計を返します。

構文

{{=SUM(tag1, tag2, ...)}}

  • tag1: 合計する最初のタグ。
  • tag2, ...(省略可能): tag1 に加算する追加のタグ。

括弧内のタグには {{ および }} を付ける必要はありません。

Average(平均)

AVG は、データグループタグ内のすべてのフィールド値を含む、タグのグループの数値平均を返します。

構文

{{=AVG(tag1, tag2, ...)}}

  • tag1: 平均に含める最初のタグまたはデータグループタグ。
  • tag2, ...(省略可能): 追加で含めるタグ。

Maximum(最大値)

データグループタグ内のすべてのフィールド値を含む、タグのグループから最大値を返します。

構文

{{=MAX(tag1, tag2, ...)}}

  • tag1: 対象とする最初のタグまたはデータグループタグ。
  • tag2, ...(省略可能): 追加で対象とするタグ。

Minimum(最小値)

データグループタグ内のすべてのフィールド値を含む、タグのグループから最小値を返します。

構文

{{=MIN(tag1, tag2, ...)}}

  • tag1: 対象とする最初のタグまたはデータグループタグ。
  • tag2, ...(省略可能): 追加で対象とするタグ。

Round(四捨五入)

フィールドの数値を指定した小数点以下の桁数に丸めます。

構文

{{=ROUND(tag, [places])}}

  • tag: 丸める値。
  • places(省略可能、デフォルトは 0): 丸める小数点以下の桁数。

使用例

{{=ROUND(1.234, 2)}} -> 1.23

{{=ROUND(1.234)}} -> 1

Multiply(乗算)

2つのフィールドまたは数値の積を返します。* 演算子と同じです。

構文

{{=MULTIPLY(tag1, tag2)}}

  • tag1: 数値を持つフィールド、またはリテラル数値(例: 6)。
  • tag2: 数値を持つフィールド、またはリテラル数値(例: 7)。

Add(加算)

2つのフィールドまたは数値の合計を返します。+ 演算子と同じです。

構文

{{=ADD(tag1, tag2)}}

  • tag1: 数値を持つフィールド、またはリテラル数値(例: 19)。
  • tag2: 数値を持つフィールド、またはリテラル数値(例: 23)。

テキスト

Concatenate(連結)

文字列を結合します。

使用例

{{=CONCATENATE('Hello', ' ', 'World')}} -> "Hello World"

{{=CONCATENATE(Line Item Name)}} -> "Item AItem BItem C"(スペースなし)

CONCATENATE(A2:B7)

構文

CONCATENATE(tag_name_1, [tag_name_2, ...])

  • string1: ソースの任意のフィールドまたはデータグループフィールド、あるいは引用符で囲んだリテラル文字列。
  • string2 ...: その他のフィールド、データグループフィールド、またはリテラル文字列(任意の数)。

Text join(テキスト結合)

複数のフィールド、またはデータグループフィールドの複数の値を、各項目の間に区切り文字を挿入して結合します。

使用例

{{=TEXTJOIN(" | ", "Hello", "World")}} -> "Hello | World"

{{=TEXTJOIN(", ", Line Item Name)}} -> "Item A, Item B, Item C"

構文

{{=TEXTJOIN(delimiter, tag_name_1, [tag_name_2, ...])}}

  • delimiter: 文字列(空でも可)または別のフィールド。空の場合、値は単純に連結されます。
  • tag_name_1: ソースの任意のフィールドまたはデータグループフィールド、あるいは引用符で囲んだリテラル文字列。
  • tag_name_2, ...: その他のフィールド、データグループフィールド、またはリテラル文字列(任意の数)。

結果内の空の値をスキップするには、{{=TEXTJOINNONEMPTY(...)}} を使用することもできます。

Truncate(切り詰め)

フィールドまたはリテラル文字列の値を指定した長さに短縮します。

構文

{{=TRUNCATE(tag, length)}}

  • tag: 切り詰めるテキスト。
  • length: 保持する文字数。

length が値の文字数より大きい場合、値はそのまま返されます。

{{Message}} -> "Hello World"

{{=TRUNCATE(Message, 5)}} -> "Hello"

Filter and sum(SUMIF、条件付き合計)

条件に一致する値を合計します。

構文

{{=SUMIF(Condition Tag = "Something", Numeric Data Grouped Field)}}

タグ内の条件についての詳細は、タグのif文を参照してください。