← 手順一覧へ戻る
Power Automate Desktopデータテーブル初心者向け

データテーブルの1列をリストにする(列名・0始まり・重複を図解)

氏名と部署の表から、部署列だけをリストへ取り出します。列番号とリストの位置を区別し、3件を順に表示して結果を確認します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。

実行前に確認

  • この例はWindows上の有人・手動実行です。外部コネクターやExcel接続は使いません。クラウドからの起動や無人実行へ広げる場合は、別途ライセンスと実行環境の条件を確認してください。
  • 入力は2列のデータテーブル、出力は1つのリストです。列を取り出しても元の表は変更しません。並べ替え・重複削除・空欄除去をするアクションではありません。
  • 列番号は左から0、1です。列の順番が変わると番号が指す列も変わるため、見出しが決まっている表では列名で指定すると意図を確認しやすくなります。
  • 列名が存在しない場合と列番号が範囲外の場合はエラーになります。「エラー時に次へ進む」で結果を確認せず処理を続けないでください。0を指定して氏名列が取れる場合はエラーにならないため、件数だけでなく中身も確認します。
  • 項目を %Departments[0]% のように直接参照する場合は、その位置の項目があることを先に確認します。この練習の表示にはFor eachを使うため、0件ならループ内を実行しません。
  • 本例は架空データの画面表示だけで、ファイル作成・送信は行いません。実データを読み込む前に、この小さな表で列と表示結果を確認してください。

1使うアクション

  1. アクション 1新しいデータ テーブルを作成する氏名・部署の2列、練習用の3行 → DataTable
  2. アクション 2データ テーブル列をリストに取得列名「部署」→ Departments
  3. アクション 3メッセージを表示リストの件数を表示。今回の期待値は3
  4. アクション 4For eachDepartments の各項目 → CurrentDepartment
  5. アクション 5メッセージを表示営業 → 総務 → 営業の順に1件ずつ表示
  6. アクション 6EndFor each の終わり

図で見る処理のイメージ

概念図

表の部署列を上から取り出すと、同じ順番の3項目になります。入力の列番号と出力の項目位置を分けて見てみましょう。

表の「縦1列」が、リストの3項目になる

入力:データテーブルDataTable
架空の練習表・2列3行
氏名列番号 0部署列番号 1・取得対象
佐藤営業
鈴木総務
高橋営業

列見出しはデータ行に含めません。
元の表は2列・3行のままです。

列名:部署または列番号 1上から順に取り出す
出力:リストDepartments
  1. 位置 0営業
  2. 位置 1総務
  3. 位置 2営業

Count=3。見出し「部署」は入りません。
「営業」が2つあっても、そのまま残ります。

列番号1と、リストの位置0は別の番号

列番号1:入力の2列目「部署」を選ぶ
%Departments[0]%:出力の先頭「営業」を参照する

For eachで1項目ずつ確認

営業 総務 営業

各メッセージでOKを押すと次へ。0件なら項目の表示は0回です。
設定と期待値の概念図です。列名「部門」や列番号2はこの表に存在せず、取得エラーになります。列番号0はエラーにならず氏名列を返すため、中身も確認します。
結果の例

件数:3を確認した後、営業 → 総務 → 営業と順番に表示します。部署という見出しは含まず、営業の重複は残ります。

狭い画面では、表を横にスクロールして列の指定と結果を比べられます。

練習表の列指定・行数を変えた場合の期待値
入力・列の指定出力リストの中身件数/表示確認すること
3行・列名 部署営業 → 総務 → 営業3件/項目表示3回部署だけが入る。重複は保持
3行・列番号 1営業 → 総務 → 営業3件/項目表示3回2列目の部署列は番号1
3行・列番号 0佐藤 → 鈴木 → 高橋3件/項目表示3回エラーにはならないが氏名列になる
3行・列番号 2取得エラー後続の表示へ進まない2列の表に番号2の列はない
3行・列名 部門取得エラー後続の表示へ進まない存在する列名「部署」に直す
0行・列名 部署(列見出しは残す)空のリスト0件/項目表示0回項目0を直接参照しない

図と表はMicrosoftのアクション説明とデータ型の仕様から組み立てた期待値です。順序・重複・見出しの扱いと0行の場合は、この例で確認する項目として示しています。実際のPower Automateフローを実行して確認した結果ではありません。

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

2実際の設定内容

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

    準備:WindowsのPower Automate for desktopで、Power Fxをオフにした練習用フローを作り、手動で実行します。外部の表は読み込まず、以下の架空の3行だけを使います。

  2. 2

    新しいデータ テーブルを作成する:ビジュアルエディターで列名を左から「氏名」「部署」にし、行を上から「佐藤/営業」「鈴木/総務」「高橋/営業」と入力します。氏名・部署は列見出しとして設定し、データの1行目には入れません。生成された変数名を DataTable にします。

  3. 3

    データ テーブル列をリストに取得:[データ テーブル]を %DataTable%、[列名またはインデックス]を 部署 にします。列名には引用符や % を付けません。生成された変数 ColumnAsList の名前を Departments に変更します。列名は実際の見出しと合わせます。

  4. 4

    メッセージを表示:本文を「件数:%Departments.Count%」にします。ボタン=OK、自動で閉じる=オフにし、表示が「件数:3」になることを確認します。OKを押すまで次へ進みません。

  5. 5

    For each:[反復処理を行う値]を %Departments%、現在の項目を保存する変数名を CurrentDepartment にします。For eachとEndの間に「メッセージを表示」を置き、本文を %CurrentDepartment% にします。こちらもボタン=OK、自動で閉じる=オフにします。

  6. 6

    確認:件数のメッセージを閉じると「営業」「総務」「営業」が1件ずつ表示されます。各画面でOKを押してください。出力のリストには列見出し「部署」は入りません。同じ値も別項目なので3件のままです。変数ペインで DataTable と Departments を比べ、元の表が2列・3行のままであることも確認します。

  7. 7

    列番号との比較:列をリストに取得の[列名またはインデックス]だけを半角数字 1 に変え、最初から再実行すると同じ部署列を取り出す構成です。0 は氏名列、1 は部署列です。一方、%Departments[0]% の0は出力リストの先頭項目の位置を表します。列番号1と項目位置0は別の番号です。

  8. 8

    失敗時の確認:この2列の表で列番号 2、または存在しない列名 部門 を指定すると列の取得でエラーになります。既定のエラー時フロー停止を保ち、後続の表示を続けないでください。修正したら先頭から実行します。

  9. 9

    0件の確認:列名を 部署 に戻し、「新しいデータ テーブルを作成する」と列の取得の間へ、確認用に「データ テーブルを消去」を置きます。対象を %DataTable% にすると列見出しは残し、データ行だけが0件になります。先頭から再実行したときの期待値は件数0、For each内の表示0回です。通常の3行の例へ戻すときは、この確認用アクションを外してください。

Microsoft公式ページで確認する

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