← 手順一覧へ戻る
クラウドフローデータ処理初心者向け

配列の重複を取り除く(union・列を絞る例)

unionで文字列の重複を除く基本から、担当者一覧を部署ごとに重複のない一覧へ変える練習まで。選択とunionの役割、3件から2件になる理由、空配列の結果を説明します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。

実行前に確認

  • 大文字小文字、空白、データ型が違う値を同一とみなす前処理は含みません。
  • オブジェクト配列で「1列だけ同じなら重複」にしたい場合は、対象列だけを選択するなど別の設計が必要です。
  • この練習は組み込みのデータ操作だけを使用し、外部コネクタへの接続やメール送信は不要です。クラウドフローを作成・実行できる環境と利用権は必要です。実際のExcelやSharePointの行は変更・削除しません。
  • 営業と「営業 」のような末尾空白の違いを自動で統一する例ではありません。並べ替えや、部署ごとの担当者数の集計でもありません。重複除去で担当者情報を失うため、元のRowsを残して用途を分けます。

1使うトリガーとアクション

  1. トリガー手動でフローをトリガーする
  2. アクション変数を初期化する
  3. アクション作成

図で見る処理のイメージ

概念図

応用例:担当者3件から部署だけの一覧を作る流れです。基本の文字列配列とは別のフローで試します。

  1. 入力 Rows

    担当A=営業、担当B=営業、担当C=総務:3件

  2. 選択

    Departmentだけに絞る。営業・営業・総務:まだ3件

  3. union

    営業・総務の2オブジェクトへ。Name列は含まない

  4. 確認

    lengthの結果は2。入力が[]なら結果も[]で0件

結果の例

選択は列の形を変え、unionは同じ要素を1件にまとめます。元のRowsは3件のままです。

図と件数は架空データによる概念例です。実際のフローを実行して確認した結果ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する9ステップの設定と確認方法
  1. 1

    手動トリガーの後で変数を初期化:名前 Items、種類「配列」、値 ["東京","大阪","東京"] にします。

  2. 2

    データ操作の「作成」の式欄に union(variables('Items'), variables('Items')) を入力します。文字列としてではなく式として保存します。

  3. 3

    後続では「作成」の出力を使用します。元の変数 Items は変更されません。

  4. 4

    応用:担当者が違っても部署が同じなら1件にしたい場合です。基本例とは別のインスタントクラウドフローを手動トリガーで作り、データ操作の「作成」を追加して名前をRowsに変更します。入力は式 json('[{"Name":"担当A","Department":"営業"},{"Name":"担当B","Department":"営業"},{"Name":"担当C","Department":"総務"}]') にします。これは架空データで、Excelなどへの接続は不要です。

  5. 5

    Rowsの次にデータ操作の「選択」を置き、名前をSelectDepartmentsへ変更。元(From)は式 outputs('Rows')。マップは通常のキー・値モードで、左のキーをDepartment、右の値を式 item()?['Department'] にします。Nameは追加しません。「選択」は列を絞るだけなので、この段階では営業・営業・総務の3件のままです。

  6. 6

    次に「作成」を置き、名前をUniqueDepartments、入力を式 union(body('SelectDepartments'),body('SelectDepartments')) にします。期待する出力は [{"Department":"営業"},{"Department":"総務"}] の2件です。文字列だけの配列ではなく、Departmentを持つオブジェクトの配列になります。

  7. 7

    確認用の「作成」をさらに置き、入力を式 length(outputs('UniqueDepartments')) にします。実行履歴でRows=3件、SelectDepartments=3件、UniqueDepartments=2件、確認用の出力=2を確認します。Rowsをそのままunionに渡すとNameが異なるため3件が残ります。比較したい列だけへ先に絞るのがポイントです。

  8. 8

    0件の確認:Rowsの入力だけを式 json('[]') に変えます。選択とunionの結果はどちらも空配列 []、件数は0が期待結果です。メール送信や元データの削除は行わない練習なので、0件でも安全に結果を確認できます。確認後は3件の入力へ戻します。

  9. 9

    つまずいたら:参照先のアクション名を式入力前に変更したか、式が文字として保存されていないか確認します。Departmentがnullになる場合は元データのキーの綴りを確認。空欄部署を除外する処理は含まないため、必要なら別途「配列のフィルター処理」で取り除きます。

Microsoft公式ページで確認する

設定を確認できる公式資料