計算済みデータ式の概要
データ式を使用すると、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})
日付の秒を次の形式の 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」
withinText 文字列内で findText 文字列が見つかったときに 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 にある string2 のすべてのオカレンスを string3 に置き換えます。
式の形式は次のとおりです。
REPLACE(string1, string2, string3)
指定された数の文字を文字列の右側から返します。式の形式は次のとおりです。
RIGHT(string, length)
文字列 withinText 内で指定の開始位置から 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)