Process Mining
2021.10
バナーの背景画像
Process Mining
最終更新日 2024年4月2日

集計式

はじめに

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

ルート レベルでの集計

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



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



集計式 sum(records.amount) は、以下のように評価されます。
  1. Invoices (請求書) のすべてのレコード を作成します
  2. レコードごとに 、Amount datasource 属性の値を選択します。
  3. これらのすべての金額の合計を返します。

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



サブレベルで集計する

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



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



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



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

サブレベルを定義する

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

手順

操作

1

[Edit Expression Attribute ] ダイアログの [Settings] パネルで、[ Root ] を右クリックします。

2

[ レベルを追加] を選択します。

3

レベル ... をクリックして、値をグループ化するデータソース属性を選択します。この場合 、Supplierです。

4

選択した属性レベルを右クリックし、[ Set as expression level] を選択します。

メモ: 選択したレベルが矢印で示されます。

ツリー構造

集計式では、選択した集計レベル以外のレベルにアクセスすることもできます。 p (親の場合) と c (子) を使用してツリー構造を上下に走査できます。
メモ: ノードには 1 つの親があるため、 p は 1 つのノードを返しますが、複数の子を持つことができます。したがって、 c ノードのリストを返します。

親集約レベル



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



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

子集計レベル



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



count(c) 式は、 Supplier 型のすべてのサプライヤーのリストを返します。それぞれの子はサプライヤーであるため、子の数 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. これらのレコードをフィルター処理して、 サプライヤーの種類機械が 残っているレコードだけが残ります。
  3. フィルター処理された各レコードに対して、 Supplier データソース属性の値を返します。
  4. 重複する値をすべてリストから削除するため、一意の値ごとには 1 つのアイテムのみが取得されます。
  5. リストに残りのアイテムの数をカウントします。



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

式は、各 ケース所有者に対して値を返します。これは、種類が [機械]である一意の Suppliers の数を表します。

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

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



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

オプション

説明

フィルター式を有効化

式をフィルターとして入力できます。

フィルター コントロールを有効化する

[フィルター コントロールを編集] ダイアログを 開きます。このダイアログでは、リストから使用可能なフィルター コントロールを選択できます。

比較期間を有効化

比較期間や式を追加して、フィルター処理する前の期間の数を定義できます。

エンドユーザー フィルターを適用する

利用可能なエンドユーザー フィルターを適用できます。

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


並べ替え

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

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

  • A。。ZZ です。A を値で並べ替えます。

    • 文字列の場合、アルファベット順に並べ替えられます。
    • 数値の形式 (ダブル、整数) では、数値に並べ替えられます。
    • 時間関連のフォーマット (日時、日付) は、時系列順に並べ替えられます。
  • 0.9 および 9.0 はグループのレコード数に対して並べ替えられます。
  • [式 ] では、式を入力でき、データは上で説明した値に基づいて並べ替えられます。

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

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



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

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.