UiPath Documentation
process-mining
2021.10
true
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

Process Mining ユーザー ガイド

最終更新日時 2026年5月20日

集計式

はじめに

レコードの式は、レコード自体の値のみを入力として受け取ります。これに対し、集計式を使用すると、特定のレコードのセットに対して計算を行うことができます。たとえば、すべてのレコードの合計 金額 や、データセット内のレコードの合計数を計算します。集計式は、SQL の GROUP BY 関数と比較できます。

ルート レベルでの集計

集計式は、集計レベルで一意の値ごとに値を計算します。既定では ルート レベルです 。つまり、テーブル全体で 1 つの値です。

以下に集計式の例を示して、Invoices (請求書) データセットのすべての金額の合計を計算します。

集計式 sum(records.amount) は、以下のように評価されます。

  1. Invoices (請求書) のすべてのレコードを取得します。
  2. レコードごとに、 Amount データソース属性の値を選択します。
  3. これらのすべての金額の合計を返します。

式によって一意の値が 1 つ計算されますが、この値はデータセット内のすべてのレコードに追加されます。 以下に、4 つの行を含むデータセットの例を示します。

サブレベルで集計する

データセット全体に対する集計を計算する代わりに、レコードのグループに対する値を計算することもできます。

以下に、サプライヤーごとの合計金額を計算するための集計式の例を示します。

集計レベルが追加され、式のスコープがこの新しいレベルに設定されます。 以下はデータセットの例です。

集計式は、スコープ レベル内の個々の値ごとに 1 回ずつ計算されます。この値は、このスコープ内の各レコードに追加されます。したがって、 合計金額 は1回計算され、各レコードに4回コピーされます。サプライヤーごとの合計金額 は3回計算されます。「サプライヤー A」のレコードが 2 つあるため、この値は両方のレコードに設定されます。「サプライヤー B」と「サプライヤー C」のレコードは 1 つしかないため、対応するレコードに値が割り当てられます。

サブレベルを定義する

集計式を下位レベルで定義するには、以下の手順に従います。

手順操作
1[式の属性を編集] ダイアログの [設定] パネルで [ルート] を右クリックします。
2[ レベルを追加] を選択します。
3... レベルをクリックし、値をグループ化するデータソース属性を選択します。この場合は、サプライヤー。
4選択した属性レベルを右クリックし、[ 式レベルとして設定] を選択します。
注:

選択したレベルは矢印で示されます。

ツリー構造

集計式では、選択した集計レベル以外のレベルにアクセスすることもできます。 p (親の場合) と c (子) を使用してツリー構造を上下に走査できます。

注:

ノードには親が 1 つあるため、 p は 1 つのノードを返しますが、複数の子を持つことができるため、 c はノードのリストを返します。

親集約レベル

以下に、親レベルに基づく集計式の例を示します。

percentage(sum(records.Amount) / sum(p.records.Amount) * 100) サプライヤーごとの割合を計算します。

  1. サプライヤーに関連付けられた金額の合計を、すべての金額の合計で割った値です。
  2. スコープは親レベル (つまりルート) にシフトします。
  3. 結果に 100 を掛けてパーセンテージにキャストします。

子集計レベル

以下に、子レベルに基づいた集計式の例を示します。

count(c)式は、サプライヤーの種類ごとにすべてのサプライヤーのリストを返します。各子供はサプライヤーであるため、 c 子供の数を数えることができます。

条件付きチェックの作成

レコード式の場合、 if() 関数を条件チェックに使用できます。 ただし、この関数はレコードごとにのみ適用できます。 if-ステートメントを使用してレコードのグループ内の条件を確認することはできません。 ツリー構造を使用すると、たとえばプロパティを表現するために、データの (特定の部分) に対してループ処理を実行できます。

これらのタイプの計算では、以下の関数を使用できます。

機能説明
exists(Scope, Condition)スコープ内の少なくとも 1 つの条件trueと評価された場合にtrueを返します。
forall(Scope, Condition)スコープ内のすべての条件trueと評価された場合にtrueを返します。

以下の画像で例をご確認ください。

例: 式

exists(records, find(lower(Supplier), 'consulting')

名前の一部として「コンサルティング」を持つサプライヤーの請求書があるかどうかを、サプライヤーの種類ごとに確認します。

注:

lower サプライヤー名を小文字に変換し、チェック ケースを大文字と小文字を区別しないようにするために使用します。

フィルター処理

データを集約するとき、データの特定の部分に応じて計算が行われる場合があります。 この場合、 filter() 関数を使用できます。

以下に、フィルターを基にした集計式の例を示します。

count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)
count(
    unique(
        filter(
            records,
            supplier_type = "Machinery"
        ).Supplier
    )
)

内側から外に向かって表現は次のように構築されます。

  1. 現在のスコープ内のすべてのレコードを取得します。

  2. これらのレコードをフィルタリングして、 SupplierタイプMachinery のレコードのみが残るようにします。

  3. フィルター処理されたレコードごとに、 Supplier データソース属性の値を返します。

  4. 重複する値をすべてリストから削除するため、一意の値ごとには 1 つのアイテムのみが取得されます。

  5. リストに残りのアイテムの数をカウントします。

この例では、 ケース所有者 レベルが式レベルとして設定されています。つまり、式のスコープは、 ケース所有者のすべての一意の値の値を計算することです。ケース所有者の値ごとに、recordsこのケース所有者に属するレコードのリストです。

この式は、 各ケース所有者 の値を返します。これは、種類が Machinery の一意の サプライヤー の数を表します。

その他のフィルター オプション

[Settings] パネルのメニューには、集計のフィルタリングを追加するオプションが含まれています。

以下の表では、[ 設定 ] メニューのオプションについて説明しています。

オプション説明
フィルター式を有効化式をフィルターとして入力できます。
フィルター コントロールを有効化する[ フィルター コントロールを編集 ] ダイアログが開き、リストから使用可能なフィルター コントロールを選択できます。
比較期間を有効化比較期間や式を追加して、フィルター処理する前の期間の数を定義できます。
エンドユーザー フィルターを適用する利用可能なエンドユーザー フィルターを適用できます。
注:

[設定] メニューのフィルター オプションを使用すると、フィルターの結果が [] パネルに表示されます。以下の画像で例をご確認ください。

並べ替え

並べ替え機能を使用すると、最高または最低の値を判断したり、レコードを特定の順序で処理したりできます。

式の最初または最後のレコードが必要な場合は、次の方法でレベルを並べ替えることができます。

  • A。。ZZ..A は値でソートします。
    • 文字列の場合、アルファベット順に並べ替えられます。
    • 数値の形式 (ダブル、整数) では、数値に並べ替えられます。
    • 時間関連のフォーマット (日時、日付) は、時系列順に並べ替えられます。
  • 0..99..0 は、グループ内のレコードの数で並べ替えます。
  • [式 ] では式を入力できます。式は上記のように値で並べ替えられます。

これらの並べ替えオプションごとに、順序を昇順または降順に設定できます。

以下の画像に、各ケースで最初に作業するユーザーが決定された並べ替えの例を示します。

集計式 first(records.User)Case IDの最初の User を決定します。Event end は昇順で並べ替えられます。

このページは役に立ちましたか?

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得