アクティビティ
最新
バナーの背景画像
生産性を高めるアクティビティ
最終更新日 2024年4月26日

Excel ファイルのデータを並べ替える

以下の例では、.xlsx ファイルの表を処理して、すべての行に表示されるデータを重複なく昇順で表示する方法について説明します。

[データ行を削除][範囲を読み込み][テーブルを並べ替え] などのアクティビティを示します。これらのアクティビティは、UiPath.Excel.Activities パッケージに含まれています。

以下の例では、idfirst-namelast-nameemailgender の 5 つの行を含む表を使用します。表のエントリは降順に配置されています。一部の行はシート内で複数回表示されます。オートメーション プロセスによって、データは昇順に並び替えられ、すべての重複が削除されます。

サンプルと同等のオートメーション プロセスは以下のように構築できます。

  1. Studio を開いて、新しいプロセスを作成します。プロセスの既定の名前は Main です。

    注: プロジェクト フォルダーで使用する .xlsx ファイルを必ず追加してください。このページの下部からサンプルをダウンロードして、サンプルに含まれるファイルを使用することもできます。
  2. ワークフロー デザイナー[フローチャート] をドラッグします。

    • 次の変数を作成します。

      変数名

      変数の型

      既定値

      existingColumns

      WorkbookApplication

      N/A
  3. [フローチャート][Excel アプリケーション スコープ] アクティビティをドラッグし、[Start] ノードに接続します。

    • [Excel アプリケーション スコープ] アクティビティをダブルクリックして開きます。
    • [プロパティ] パネルで、[表示名] フィールドに Sorting rows ascending を追加します。
    • [ブック パス] フィールドに .xlsx ファイルのパスを追加します。このサンプルの場合は Book.xlsx です。
    • [自動保存][新しいファイルを作成]、および [可視] オプションのチェック ボックスを選択します。これによりロボットが新しい Excel ブックを作成し、それに加えられたすべての変更を自動的に保存し、アクションを実行しながら Excel ファイルを前面で開くことができるようになります。
    • [ブック] フィールドに existingColumns 変数を追加します。
  4. [Excel アプリケーション スコープ] アクティビティ内の [実行] シーケンスを選択し、次の変数を作成します。

    変数名

    変数の型

    既定値

    descendingOrder

    System.Data.DataTable

    N/A
  5. [実行] シーケンス内に Excel の [範囲を読み込み] アクティビティをドラッグします。

    • [プロパティ] パネルで [シート名] フィールドに名前 "Sheet1" を追加します。
    • 表の最初の行をヘッダーとみなすために [ヘッダーを追加] チェック ボックスを選択します。
    • [データ テーブル] フィールドに変数 descendingOrder を追加します。
  6. [範囲を読み込み] アクティビティの下に [表を並べ替え] アクティビティを配置します。

    • [プロパティ] パネルで [列名] フィールドに名前 "id" を追加します。
    • [順序] リストから Ascending を選択します。
    • [シート名] フィールドに名前 "Sheet1" を追加します。
    • [表の名前] フィールドに名前 "Table1" を追加します。
  7. [フローチャート] ワークフローに戻ります。
  8. [Excel アプリケーション スコープ] アクティビティをドラッグし、前の [Excel アプリケーション スコープ] に接続します。

    • [Excel アプリケーション スコープ] アクティビティをダブルクリックして開きます。
    • [プロパティ] パネルで、[表示名] フィールドに Deleting duplicates を追加します。
    • [自動保存][新しいファイルを作成]、および [可視] オプションのチェック ボックスを選択します。これによりロボットが新しい Excel ブックを作成し、それに加えられたすべての変更を自動的に保存し、アクションを実行しながら Excel ファイルを前面で開くことができるようになります。
    • [ブック] フィールドに existingColumns 変数を追加します。
  9. [実行] シーケンス内に Excel の [範囲を読み込み] アクティビティをドラッグします。

    • [プロパティ] パネルで [シート名] フィールドに名前 "Sheet1" を追加します。
    • 表の最初の行をヘッダーとみなすために [ヘッダーを追加] チェック ボックスを選択します。
    • [データ テーブル] フィールドに変数 descendingOrder を追加します。
  10. [範囲を読み込み] アクティビティの下に [繰り返し (前判定)] アクティビティを配置します。

    • 次の変数を作成します。

      変数名

      変数の型

      既定値

      rowIndex

      Int32

      0

    • [条件] フィールドに式 rowIndex+1 < descendingOrder.Rows.Count を追加します。この式は表全体を処理し、row index +1 が行の合計数よりも小さくなるまで、[繰り返し (前判定)] ループを実行できるようにします。
  11. [繰り返し (前判定)] の本体に [シーケンス] コンテナーを追加します。

    • 次の変数を作成します。

      変数名

      変数の型

      既定値

      row

      System.Data.DataRow

      N/A

      rowNext

      System.Data.DataRow

      N/A
  12. 前に作成された [シーケンス] コンテナー内に [代入] アクティビティを配置します。

    • [左辺値 (To)] フィールドに変数 row を、[右辺値 (Value)] フィールドに式 descendingOrder.Rows(rowIndex) を追加します。これにより、インデックスに従って、行に含まれる情報を row 変数に割り当てることができます。
  13. もう 1 つの [代入] アクティビティを追加し、前のアクティビティの下に配置します。

    • [左辺値 (To)] フィールドに変数 rowNext を追加し、[右辺値 (Value)] フィールドに式 descendingOrder.Rows(rowIndex+1) を追加します。これにより、次の行の値が rowNext 変数に代入され、また、表全体にこの処理を繰り返せるようになります。
  14. [代入] アクティビティの下に [条件分岐 (if)] アクティビティを追加します。

    • [Condition] フィールドに式 row(0).ToString=rowNext(0).Tostring を追加します。この条件は row 変数に含まれるデータが rowNext 変数に含まれるデータと同一かどうかを確認します。
  15. [条件分岐 (if)] アクティビティの [Then] フィールドに [データ行を削除] アクティビティをドラッグします。

    • [データ テーブル] フィールドに変数 descendingOrder を追加し、[行] フィールドに変数 rowNext を追加します。
  16. [条件分岐 (if)] アクティビティの [Else] フィールドに [代入] アクティビティを配置します。

    • [左辺値 (To)] フィールドに変数 rowIndex を、[右辺値 (Value)] フィールドに式 rowIndex+1 を追加します。
  17. [範囲に書き込み] アクティビティを [繰り返し (前判定)] アクティビティの下に追加します。

    • [シート名] フィールドに名前 "Sheet2" を追加し、[開始セル] フィールドに変数 "A1" を追加し、[データ テーブル] フィールドに変数 descendingOrder を追加します。
    • 表の最初の行をヘッダーとみなすために [ヘッダーを追加] チェック ボックスを選択します。
  18. プロセスを実行します。オートメーション プロセスは、重複なしにデータを昇順に表示する新しいシートを作成します。

Was this page helpful?

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