計算データ式の概要
データ式を使用して、Adobe Workfrontで計算カスタムフィールドを定義できます。 計算式は、新しいフィールドを生成するステートメント内で、既存のWorkfrontフィールドを結び付けます。
計算済みデータ式は、次の場所で使用できます。
-
カスタムフォームの計算済みカスタムフィールド
Workfrontのカスタムフォームで計算カスタムフィールドを作成する方法について詳しくは、 計算データをカスタムフォームに追加する.
-
テキストモードを使用する場合の、レポートまたはリスト内の計算済みカスタム列
レポートおよびビューでのテキストモードの使用について詳しくは、テキストモードの概要を参照してください。
計算済みカスタムフィールドと計算済みカスタム列の構文の比較
使用する関数は同じですが、計算カスタムフィールドで式を作成するときの構文は、計算カスタム列を作成するときの構文とは異なる場合があります。
2 つの構文の違いは次のとおりです。
例:
-
タスクのカスタムフォームのカスタムフィールドでは、以下を使用して、カスタムフォームが添付されているタスクの親プロジェクトの名前を生成します。
{project}.{name}
-
レポートのカスタム列では、以下を使用して、タスクレポートにプロジェクト名のカスタム列を追加します。
valuefield=project:name
または
valueexpression={project}.{name}
note tip TIP 同じ構文が、計算済みの式が使用されるすべてのテキストモードレポート要素(ビュー、フィルター、グループ化、プロンプト)に適用されます。
計算済みカスタム列で使用する必要がある構文について詳しくは、テキストモードの概要を参照してください。
使用できるデータ式
以下のリストは、Workfront で 3 種類の計算済みカスタムフィールドのいずれかを作成する際に使用できる式を定義します。
以下に示す式を使用して、計算済みカスタム列を作成できます。 ただし、計算カスタム列の正しい構文を使用する必要があります。詳しくは、「 」の節を参照してください。 計算カスタムフィールドと計算カスタム列の構文 」を参照してください。
日付と時刻の計算されたカスタムフィールド date-time-calculated-custom-fields
次の式を使用して、日付または時間計算のカスタムフィールドを作成できます。
日付に日数を追加します。 数値には、日の一部を含めることができます。 例えば、1.5 の場合、日付に 1 日半が追加されます。
式の形式は次のとおりです。
ADDDAYS(date, number)
日付に平日数を追加します。 この式は、整数値を切り捨てて日付に加算します。
式の形式は次のとおりです。
ADDWEEKDAYS(date, number)
日付に月数を追加します。形式は次のとおりです。
ADDMONTHS(date, number)
日付に年数を追加します。形式は次のとおりです。
ADDYEARS(date, number)
日付の時間部分をクリアし、次の形式に設定します。 この例では、日付は作業オブジェクトの入力日です。
CLEARTIME({entryDate})
文字列を日付に変換し、次の形式にします。
DATE(string)
2 つの日付の間の日数を返します。選択した期間の開始日と終了日、およびその日のタイムスタンプが考慮されます。 例えば、開始日の開始時刻が午後 3 時の場合、開始日は 1 日としてカウントされません。
式の形式は次のとおりです。
DATEDIFF(date1, date2)
日付の月の日を 1 ~ 31 の数値で返します。
式の形式は次のとおりです。この例では、日付は作業オブジェクトの入力日です。
DAYOFMONTH({entryDate})
日付の曜日を 1(日曜日)から 7(土曜日)の間の数値で返します。
式の形式は次のとおりです。この例では、日付は作業オブジェクトの入力日です。
DAYOFWEEK({entryDate})
日付の月の合計日数を数値で返し、次の形式で指定します。 この例では、日付は作業オブジェクトの入力日です。
DAYSINMONTH({entryDate})
日付から週の終わりまでの合計平日、または月の終わりのどちらか早い方を返します。 この例では、日付は作業オブジェクトの入力日です。
式の形式は次のとおりです。
DAYSINSPLITWEEK({entryDate})
日付の年の合計日数を数値で返し、次の形式で指定します。 この例では、日付は作業オブジェクトの入力日です。
DAYSINYEAR({entryDate})
リストの最新の日付を返します。次の形式で指定します。
DMAX(date1, date2, ...)
リスト内の最も早い日付を返し、次の形式で表されます。
DMIN(date1, date2, ...)
日付の時間を 0 ~ 23 の数値で返します。
式の形式は次のとおりです。この例では、日付は作業オブジェクトの入力日です。
HOUR({entryDate})
日付の分を、0 ~ 60 の数値(次の形式)で返します。 この例では、日付は作業オブジェクトの入力日です。
MINUTE({entryDate})
日付の月を 1 ~ 12 の数値で、次の形式で返します。 この例では、日付は作業オブジェクトの入力日です。
MONTH({entryDate})
日付の 2 番目の値を、0 ~ 60 の数値で、次の形式で返します。 この例では、日付は作業オブジェクトの入力日です。
SECOND({entryDate})
2 つの日付の間の平日数を返します。選択した期間の開始日と終了日、およびその日のタイムスタンプが考慮されます。 例えば、開始日の開始時刻が午後 3 時の場合、開始日は 1 日としてカウントされません。
式の形式は次のとおりです。
WEEKDAYDIFF(date2, date1)
デフォルトのスケジュールに従って、日付間の予定分数を返します。
式の形式は次のとおりです。
WORKMINUTESDIFF(date1, date2)
日付の年を 4 桁の数値で返します(次の形式)。 この例では、日付は作業オブジェクトの入力日です。
YEAR({entryDate})
数学計算カスタムフィールド mathematical-calculated-custom-fields
次の数式を使用した計算カスタムフィールドを作成できます。
数値の絶対値を返し、次の形式で表されます。 この例では、カスタムフォームが添付されるオブジェクトの下のオブジェクト数を使用します。
ABS({numberOfChildren})
数の平均を返します。形式は次のとおりです。
AVERAGE(number1, number2, ...)
数値を最も近い整数に丸めます。この数値は、次の形式で表されます。 この例では、カスタムフォームが添付されるオブジェクトの下のオブジェクト数を使用します。
CEIL({numberOfChildren})
すべての数値を指定された順序で除算します。形式は次のとおりです。
DIV(number1, number2, ...)
数値を最も近い整数に丸めます。この数値は、次の形式で表されます。 この例では、カスタムフォームが添付されるオブジェクトの下のオブジェクト数を使用します。
FLOOR({numberOfChildren})
数の自然対数値を返します。次の形式で指定します。
LN({numberOfChildren})
底数 1 に対する数値 2 の対数値を返します。次のような形式になります。
LOG(number1, number2)
リスト内の最大の項目を返し、次のように書式設定されます。
MAX(item1, item2, ...)
リスト内の最小の項目を返します。次のような形式になります。
MIN(item1, item2, ...)
文字列を数値に変換し、次の形式に設定します。
NUMBER(string)
指数を返します。次の形式で指定します。
POWER(number, power)
すべての数値を乗算し、次の形式で表します。
PROD(number1, number2, ....)
メモ
時間を含むフィールドに乗算する場合は、選択したフィールドの時間を分単位、時間単位、秒単位で保存するかどうかを確認してください。 時間が分または秒単位で保存され、Workfront インターフェイスに時間単位で表示される場合、この計算を使用して式を書き込む際に、分または秒から時間への変換を考慮する必要が生じる場合があります。
数値を指定された精度の小数点以下に丸めます。次のように書式設定されます。
ROUND(number, precision)
数値を昇順で並べ替え、次のように書式設定します。
SORTASCNUM(number1,number2, ...)
数値を降順で並べ替えます。形式は次のとおりです。
SORTDESCNUM(number1, number2, ...)
数の平方根を返します。この平方根は、次の形式で表されます。 この例では、カスタムフォームが添付されるオブジェクトの下のオブジェクト数を使用します。
SQRT({numberOfChildren})
指定された順序ですべての数値を引きます。形式は次のとおりです。
SUB(number1, number2, ...)
すべての数値を追加します。形式は次のとおりです。
SUM(number1, number2, ...)
テキスト計算済みカスタムフィールド text-calculated-custom-fields
次の式を使用してテキスト形式の値を表示する計算済みカスタムフィールドを作成できます。
他の式と共に使用し、インデックス番号に基づいてリストから値を選択します。
インデックス番号は、数値(通常は既知の範囲)を返すフィールドまたは関数です。
式の形式は次のとおりです。
CASE(indexNumber, value1, value2, ...)
例えば、次の式は、集計列に曜日の名前を返します。ここで、1=日曜日、2=月曜日などです。
CASE(DAYOFWEEK({entryDate}),"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
DAYOFWEEK、DAYOFMONTH、MONTH など、数値を返す式を使用する場合に最も適しています。
文字列を連結し、次の形式で記述します。
CONCAT(string1,"separator", string2)
使用できる区切り文字の例を示します。
- スペース:「 」
- ダッシュ:「-」
- スラッシュ:「/」
- コンマ:「,」
- 単語:「or」、「and」
findText 文字列が withinText 文字列内で見つかり、次の形式である場合、true を返します。
CONTAINS(findText, withinText)
URL 引数に含めることができるように、文字列内の特殊文字をエスケープします。
式の形式は次のとおりです。
ENCODEURL(string)
指定した条件を評価し、true の場合は trueExpression の値を返します。false の場合は falseExpression の値を返します。
式の形式は次のとおりです。
IF(condition, trueExpression, falseExpression)
例えば、2 つの異なる日付フィールドを比較し、True/False の結果をデータ文字列として出力することができます。
IF({projectedCompletionDate}>{plannedCompletionDate},"Off Track","On Track")
分かりやすく言えば、こステートメントは、「オブジェクトの見込み完了日が、予定完了日より大きい場合、このフィールドに「遅延」と表示し、それ以外の場合は「順調」と表示します。
true または false の式にラベルを付けたくない場合は、ステートメントに次のような空白のラベルを挿入する必要があります。
IF({projectedCompletionDate}>{plannedCompletionDate},"","On Track")
または
IF({projectedCompletionDate}>{plannedCompletionDate},"Off Track","")
「IF」ステートメントの作成について詳しくは、 「IF」ステートメントの概要を参照してください。
指定可能な値の文字列内の特定の値を検索できます。 検索する値が指定された値のいずれかと等しい場合、式は trueExpression を返し、それ以外の場合は falseExpression を返します。
式の形式は次のとおりです。
IFIN(value, value1, value2,..., trueExpression, falseExpression)
例えば、特定のプロジェクト所有者を検索し、プロジェクトビューで指定したタグを使用して、該当するプロジェクトにマークを付けることができます。
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","Marketing Team","Other Teams")
分かりやすく言えば、この文は「プロジェクト所有者が Jennifer Campbell または Rick Kuvec の場合、このプロジェクトを「マーケティングチーム」でマークし、それ以外の場合は「他のチーム」でマークします」という意味です。
true または false の式にラベルを付けたくない場合は、ステートメントに次のような空白のラベルを挿入する必要があります。
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","","Other Teams")
または
IFIN({owner}.{name},"Jennifer Campbell","Rick Kuvec","Marketing Team","")
値が指定された値のいずれかと等しい場合は true を返し、それ以外の場合は false を返します。
式の形式は次のとおりです。
IN(value, value1[, value2...])
値が null または空の場合は true を返し、それ以外の場合は false を返します。
式の形式は次のとおりです。
ISBLANK(value)
文字列の左側から指定された数の文字を返します。次のように書式設定されます。
LEFT(string, length)
文字列の長さを返し、次の形式で表します。
LEN(string)
小文字で文字列を返し、次のように書式設定されます。
LOWER(string)
string1 内での文字列 2 のすべての箇所を string3 に置き換えます。
式の形式は次のとおりです。
REPLACE(string1, string2, string3)
文字列の右側から指定された数の文字を返します。次のように書式設定されます。
RIGHT(string, length)
Text 内の文字列で、指定された開始位置から始まる findText の最初の値のインデックスを返します。テキストが見つからない場合は、-1 を返します。
式の形式は次のとおりです。
SEARCH(findText, withinText, start)
数値を文字列に変換し、次の形式にします。
STRING(number)
文字列のリストを昇順に並べ替えます。次のように書式設定されます。
SORTASCSTRING(string1, string2, ...)
文字列のリストを降順に並べ替えます。次のように書式設定されます。
SORTDESCSTRING(string1, string2, ...)
指定された開始および終了のインデックスに基づいて、文字列の文字を返します。次のような形式で指定します。
SUBSTR({string}, number of start position, number of end position)
文字列の先頭と末尾から空白を削除し、次のように書式設定します。
TRIM(string)
大文字の文字列を返し、次のように書式設定されます。
UPPER(string)