計算フィールドの作成
レポートアプリでは、計算フィールドは、他のフィールドの計算からデータを導くフィールドです。計算フィールドを使用すると、計算結果を表示したり、テキストの値を数値の代わりに使ったり、 1 つ以上の条件を評価し、結果に基づいてフィールドの値を決定したりすることができます。
機能の仕組み
ビューは、レポートの構築に使用可能な Diligent One からのフィールドを提供します。レポートの作成プロセスの一環として追加のフィールドを作成する必要がある場合には、ビューで提供されるフィールドの一部をより複雑な計算の基礎として使用することができます。
シンプル式ビルダー
シンプル式ビルダーを使用して、次の組み合わせを使って計算フィールドを定義できます。
- 次元、メトリクス、および日付フィールド フィールド タイプの分類
詳細については、「レポートの作成」を参照してください。
- 論理演算子 ブーリアン型の結果を返す "between" または "not in list" などの演算子
- 集約関数 count または sum などの、フィールドでの計算または演算を実行するツール
- 数学的方程式 加算、減算、乗算、除算などの演算
- CASE 式 データが提示される方法を変更するために使用される条件式
計算フィールドを作成すると、このフィールドがデータ フィールド一覧の[計算フィールド]フォルダーに自動的に追加されるため、このフィールドをレポートに追加できます。
事前定義された式ビルダー
ユーザー独自の計算フィールドを定義する代わりに、事前定義された式ビルダーを使って Diligent が定義した関数の一覧から選択することができます。
事前定義された式ビルダーは、次のことをする必要がある場合に役立ちます。
- 従属値についてレポートするために区切りフィールド値を分割する
- タイムスタンプ フィールドから月または年を抽出する
- 高度な経過期間の関数を使用する
- 文字データ型を数値または日付のデータ型に変換する
ヒント
データ型の変換は、プロジェクトからカスタム属性フィールド(一般的に文字データとして保管されている)についてレポートする際に役立ちます。
メモ
シンプル式ビルダーを使って作成される計算フィールドは、事前定義された関数を使って計算フィールドからデータを導出できます。ただし、事前定義された関数を使った計算フィールドは、別の事前定義された関数からデータを導出できません。
集約関数
すべての集約機能は null 値を無視します。null 値の修正の詳細については、null 値の操作を参照してください。
集約関数と null 値
以下のような例があります。
- COUNT(1, 2 , 2 , 3 , null ,null) = 4
- COUNT DISTINCT (1, 2, 2, 3, null, null) = 3
- SUM (1, 2, 2, 3, null, null) = 8
- AVG (1, 2, 2, 3, null, null) = 2
- MIN (1, 2, 2, 3, null, null) = 1
- MAX (1, 2, 2, 3, null, null) = 3
数式
整数と小数に関わる数式は常に正確な結果を返します。null または 0 での除算に関わる数式は常に null を返します。
数式と結果
以下のような例があります。
- 8 + 2 = 10
- 8 + 2.5 = 10.5
- 8 + 2.5 + null = null
- 8 / 0 = null
例
計算フィールドの例
計算の結果
計算フィールド名 diff_risk_score
構文 目標予想リスク スコア -目標実績リスク スコア
結果 目標予想リスク スコア フィールドと目標実績リスク スコア フィールドの差異を返します
数値をテキスト値に置き換える
計算フィールド名 risk_assurance_rating
構文 CASE WHEN 客観的なリスク保証 <= 50 THEN '危機的なリスク エリア:フォロー アップが必要' ELSE '不明' END
結果 目標リスク保証値が 50 以下である場合に '危機的なリスク エリア: フォロー アップが必要' を返します
複数の条件の評価、および結果に基づいたフィールドの値の決定
計算フィールド名 risk_assurance_rating
構文 CASE WHEN 客観的なリスク保証 <= 50 AND 問題改善状況 = 'オープン' THEN '危機的なリスク エリア' ELSE '不明' END
結果 目標リスク保証値が 50 以下であり、問題改善状況が 'オープン' と等しい場合には '危機的なリスク エリア' を返します。
アクセス許可
レポート管理者とレポート作成者のみが、計算フィールドを作成できます
計算フィールドの作成
- レポートアプリを開きます。
[閲覧]ページが開きます。
- レポートを開き、レポート ビルダーの[データ]タブに移動します。
- データ フィールド一覧の下で、[計算フィールドを作成
]をクリックします。
[計算フィールド]ダイアログ ボックスが開きます。
- [計算フィールド名]の横で、計算フィールド名を指定します。
- [式のタイプ]の横で次のいずれかを選択します。
- シンプル ユーザー独自の計算フィールドを構築できます
- 事前定義 Diligent が定義した関数を選択できます
- 次の手順を実行してください。
"シンプル" を選択した場合... "事前定義" を選択した場合... - ダイアログ ボックスの下にあるボタンを使用して式を定義します。メモ
考慮事項:
- アポストロフィーのある値を含む式はサポートされていません。
- 集約関数は、適用するフィールドの前に追加する必要があります。
- どの式でも、ステートメントに値と論理演算式を追加した後に、[+追加]をクリックする必要があります。
- 式の一部を編集するには、[元に戻す]をクリックし、もう一度式を作成する必要があります。
- ブーリアン型ステートメントでは、'いいえ' を表すには "0" を入力し、'はい' を表すには "1" を入力します。
- 式をテストするには、[検証]をクリックします。
式が有効であるか、無効であるかを確認するメッセージが表示されます。式が無効である場合は、計算フィールドを保存できないため、処理する前に構文を更新する必要があります。
- [保存]をクリックします。
結果 [計算フィールド]フォルダーはデータ フィールド一覧で自動的に作成され、新しく作成された計算フィールドはフォルダーに追加されます。
- 一覧から関数を選択します。
関数の詳細な一覧については、事前定義された関数 を参照してください。
- 作成する計算フィールドのフィールド タイプを選択します。
- 関数で使用するフィールドを定義します。
- [保存]をクリックします。
結果 [計算フィールド]フォルダーはデータ フィールド一覧で自動的に作成され、新しく作成された計算フィールドはフォルダーに追加されます。
- ダイアログ ボックスの下にあるボタンを使用して式を定義します。
計算フィールドをレポートに追加する
- データ フィールド一覧で[計算フィールド]フォルダーが開きます。
- 計算フィールドをレポートの該当するエリアにドラッグします。
結果 計算フィールドがレポートに追加されます。
事前定義された関数

説明
指定した日付の経過日数 (年齢) を返します。
構文
AGE(日付: タイムスタンプ)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
日付 | タイムスタンプ | 年齢調べの対象となるフィールド。 |
出力
数値。
例
問題の改善期日と現在の日付間の日数を返します。
AGE(日付: 問題の改善期限日)
- 正の値が返された場合、これは、問題の改善期日が発生したときの過去の日数に相当します。
- 負の値が返された場合、これは、問題の改善期日が発生する将来の日数に相当します。
- 0 が返された場合は、問題の改善期日は現在の日付です。

説明
2 つの日付間の経過日数を返します。
構文
DATEDIFF(開始日: タイムスタンプ, 終了日: タイムスタンプ)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
開始日 | タイムスタンプ | 年齢調べの対象となるフィールド。 |
終了日 | タイムスタンプ | 開始日と比較されるフィールド。 |
出力
数値。
例
問題の特定日と問題の実際の改善日間の日数を返します。
DATEDIFF(開始日: 問題の特定日, 終了日: 問題の実際の改善日)
- 正の値が返された場合は、問題の特定日は問題の実際の改善日より前に来ます。
- 負の値が返された場合は、問題の実際の改善日は問題の特定日より前に来ます。
- 0 が返された場合は、問題の特定日と問題の実際の日付は同じ日付です。

説明
指定されたタイムスタンプから月を抽出し、それを数値(1 ~ 12)として返します。
構文
MONTH(日付:タイムスタンプ)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
日付 | タイムスタンプ | 月の抽出元となるフィールド。 |
出力
整数 (1 ~ 12)。
例
[問題の実際の改善日]フィールドの各値に対して月 (1 ~ 12) を返します。
MONTH(日付: 問題の実際の改善日)

説明
指定されたタイムスタンプから年を抽出し、それを YYYY 書式の数値として返します
構文
YEAR(日付: タイムスタンプ)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
日付 | タイムスタンプ | 年の抽出元となるフィールド。 |
出力
整数。
例
[問題の実際の改善日]フィールドの各値に対して年 (YYYY) を返します。
YEAR(日付: 問題の実際の改善日)

説明
指定した日付の経過日数 (年齢) を返します。
構文
AGE_C(日付 : テキスト)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
日付 | テキスト | 年齢調べの対象となるフィールド。 |
出力
数値。
例
日付値を指定する問題に対してカスタム フィールドが定義されています。このフィールドで経過期間の計算を実行したいと考えていますが、レポート アプリではカスタム フィールドはテキスト値として示されています。あなたは、"テキスト - 経過期間" 関数を使用して、経過期間の計算を実行します。
カスタムのフィールドの日付と現在の日付間の日数を返します。
AGE_C(日付: カスタム問題属性 1)
- 正の値が返された場合、これは、カスタム フィールド日付が発生したときの過去の日数に相当します。
- 負の値が返された場合、これは、カスタム フィールド日付が発生する将来の日数に相当します。
- 0 が返された場合は、カスタム フィールドの日付は現在の日付です。

説明
日付テキスト フィールドをタイムスタンプに変換します。
構文
CHAR_TO_DATE(日付: テキスト)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
日付 | テキスト | タイムスタンプに変換するフィールド。 |
出力
タイムスタンプ。
例
日付値を指定する問題に対してカスタム フィールドが定義されています。このフィールドで計算を実行したいと考えていますが、レポート アプリではカスタム フィールドはテキスト値として示されています。あなたは、"テキスト - 日付に変換" 関数を使用して、このフィールドをタイムスタンプに変換します。
CHAR_TO_DATE(日付: カスタム問題属性 1)
ヒント
出力は、日付と時刻の両方を表示するタイムスタンプです。日付だけを表示したい場合は、フィールドの表示の書式を設定し、これを日付として指定できます。詳細については、「レポートでの列の書式設定」を参照してください。

説明
数値テキスト フィールドを数値に変換します。
構文
CHAR_TO_NUM(テキスト: テキスト)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
テキスト | テキスト | 数値に変換するフィールド。 |
出力
数値。
例
数値を指定する問題に対してカスタム フィールドが定義されています。このフィールドで計算を実行したいと考えていますが、レポート アプリではカスタム フィールドはテキスト値として示されています。あなたは、"テキスト - 数値に変換" 関数を使用して、このフィールドを数値に変換します。
CHAR_TO_NUM(テキスト: カスタム問題属性 1)

説明
2 つの日付間の経過日数を返します。
構文
DATEDIFF_C(開始日: テキスト, 終了日: テキスト)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
開始日 | テキスト | 年齢調べの対象となるフィールド。 |
終了日 | テキスト | 開始日と比較されるフィールド。 |
出力
数値。
例
数値を指定する問題に対して 2 つのカスタム フィールドが定義されています。2 つの日付の間で経過した日数を計算したいと考えていますが、レポート アプリではカスタム フィールドはテキスト値として示されています。あなたは、"テキスト - 日付間の日数" 関数を使用して日数を計算します。
第 1 のカスタム フィールドの日付と、第 2 のカスタム フィールドの日付間の日数を返します。
DATEDIFF_C(開始日: カスタム問題属性 1、終了日: カスタム問題属性 2)
- 正の値が返された場合は、第 1 のカスタム フィールド日付は第 2 のカスタム フィールド日付より前に来ます。
- 負の値が返された場合は、第 2 のカスタム フィールド日付が第 1 のカスタム フィールド日付より前に来ます。
- 0 が返された場合は、2 つのカスタム フィールドの日付は同じ日付です。

説明
指定されたテキスト フィールドから月を抽出し、それを数値(1 ~ 12)として返します。
構文
MONTH_C(日付: テキスト)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
日付 | テキスト | 月の抽出元となるフィールド。 |
出力
整数 (1 ~ 12)。
例
日付値を指定する問題に対してカスタム フィールドが定義されています。フィールドから月を抽出したいと考えていますが、レポート アプリではカスタム フィールドはテキスト値として示されています。あなたは、"テキスト - 月を抽出" 関数を使用して、フィールドから月を抽出します。
カスタム フィールドの各値に対して月 (1 ~ 12) を返します。
MONTH_C(日付: カスタム問題属性 1)

説明
指定されたテキスト フィールドから年を抽出し、それを YYYY 書式の数値として返します。
構文
YEAR_C(日付: テキスト)
パラメーター
名前 | タイプ | 説明 |
---|---|---|
日付 | テキスト | 年の抽出元となるフィールド。 |
出力
整数。
例
日付値を指定する問題に対してカスタム フィールドが定義されています。フィールドから年を抽出したいと考えていますが、レポート アプリではカスタム フィールドはテキスト値として示されています。あなたは、"テキスト - 年を抽出" 関数を使用して、フィールドから年を抽出します。
カスタム フィールドの各値に対して年を返します。
YEAR_C(日付: カスタム問題属性 1)

説明
フィールドからデータの特定のセグメントを抽出します。このセグメントは、各フィールドの同じ位置に表示される必要があります。
構文
SPLIT(テキスト: テキスト, 区切り: テキスト, セグメント: 整数 )
パラメーター
名前 | タイプ | 説明 |
---|---|---|
テキスト | テキスト | セグメントを抽出する値。 |
区切り文字 | テキスト |
ソース文字列においてデータをセグメントとして区切ったり指定したりする文字。 正規表現を区切り文字として指定することもできます。以下の複数文字とスペース区切り文字の例を参照してください。 |
セグメント | 整数 |
抽出するセグメント。 抽出するセグメントを指定するには、番号を使用します。たとえば、3 番目のセグメントを抽出するには、「3」を指定します。 |
出力
文字。
例
”テキスト - 分割" 関数は、カンマやスペースなどの区切り文字に基づいて文字データをセグメントに区切り、指定されたセグメントを返します。
カンマで区切られたセグメント | 文字列およびスペースの区切り文字 |
---|---|
"北米" を返します: SPLIT("北米, カナダ, ブリティッシュコロンビア", ",", 1) "ブリティッシュ コロンビア" を返します SPLIT("北米, カナダ, ブリティッシュコロンビア", ",", 3) "" が返されます(3 番目のセグメントは空です)。 SPLIT("北米, カナダ, ブリティッシュコロンビア", ",", 3) |
"A" が返されます。 SPLIT("ABC", "/*", 1) "Doe" が返されます。 SPLIT("Jane Doe", "\s+ ", 2) |