第二回 データ操作編
前回、①変数を勉強したので、今回は、②データ操作の勉強をしてみようと思います。
今回は、例となるフローを作成しながら使い方を見ていきます。
①変数

②データ操作

③コントロール

ここで作成する内容について
主にデータ操作のコネクタ(アクション)を使い、「CSVファイル」を作成します。
まず、以下のフローでCSVファイルを作成し、あとから修正していきます。
このフローでは、データ操作の中から以下を利用します。
- CSVテーブルの作成
- アレイのフィルター処理
- JSONの解析(後で修正の際に使います)

まず、テスト用に以下のような都道府県テーブルをExcelで作成しました。
図にも書きましたが、PowerAutomateクラウドフローにおいて、Excelの表は、予めテーブルにしておく必要があります。
後からでも、OfficeScriptを使ってテーブル化できますが、先にテーブル化しておくとフロー作りが楽になります。
まだ「SharePointサイト」を作成していないので、ファイルは、OneDriveに保管しました。
ファイルが、SharePointに保管されている場合は、SharePoint=OneDrive と読み替えて頂ければ、ここのフローはほぼ同じように動作すると思われます。
CSVファイルの作成フロー
1
都道府県のテーブルを準備。
このExcelファイルをOneDrive
に保存。
テーブル名は、以下の場所で確認や変更ができます。
テーブル内のどこかを選択して、テーブルデザイン→テーブル名


2
■トリガーに以下を使用します。
「手動でフローをトリガーします」
■新しいステップを追加
「Excel Online(Business)」→
「表内に存在する行を一覧表示」
*設定値*
[オプションの表示 ] ボタンを押して、
図のように、
◆場所
◆ドキュメントライブラリ
◆ファイル
◆テーブル に、1のファイルやテーブルを指定します。

※Excel Onlineの(Onedrive)は、パーソナルユーザーアカウントでのみ利用可能です。
3
アレイのフィルター処理
■新しいステップを追加
「データ操作」→
「アレイのフィルター処理」
*設定値*
① 1つのフィルターの場合
差出人:Value
値の選択:地方
次の値に等しいを選択し、「関東」とします。
②2つ以上のフィルターの場合
差出人:Value
値の選択:タイプ1
詳細設定モードで編集を選択し、「@or(equals(item()?[‘地方’], ‘関東’),equals(item()?[‘地方’], ‘東北’))」とします。
| @or | いずれかにあてはまる |
| equals | 次の値に等しい |
今後、詳細設定モードで使用する条件式を使いながら勉強したいと思います。


詳細設定モードで使用する条件式の使い方は、Microsoftさんのページをご覧下さい。
Power Automate の条件で式を使用する – Power Automate | Microsoft Learn
4
CSVテーブルの作成
■新しいステップを追加
「データ操作」→
「CSVテーブルの作成」
*設定値*
開始:本文(3のアレイのフィルター処理から選択)
■新しいステップを追加→「OneDrive」→「ファイル作成」
*設定値*
フォルダーのパス:保存先フォルダ
ファイル名:任意のファイル名
ファイルコンテンツ:出力(前ステップのCSVファイルの作成内)を選択する。


5
出来上がったファイルを開きます。
”東北”と”関東”でフィルターされていますが不要な文字が入ってます。
あとで、加工するのもありかもしれませんが、邪魔なのでこの場で解決します。


CSVファイルの仕上がりに不満がありますので、2点 修正します。
修正①
→アクション追加
3と4の間に「JSONの解析」を追加します。
下準備として、テストした結果から、JSONのサンプルとなる箇所を選択して、コピーします。
具体的なコピー元は、次を参照のこと。
JSONサンプルを作成するために
| 方法1 | 開いたファイルの [ から ] まで選択してコピー ※↓の場所。広範囲 |
| 方法2 | { から } を選択してコピー ※図では、青色反転している箇所 サンプルの作成する際にペーストする前に []を追加する |


JSONの解析
■新しいステップを追加
「データ操作」→
「JSONの解析」を選択
コンテンツ:「本文」(「アレイのフィルター処理」配下)
そして、「サンプルから生成」をクリック

*設定値*
サンプルJSONペーロードの挿入にペーストし、サンプルJSONを作成する(今回は方法2を実施)
→ 完了 をクリック


修正②
アクション修正
4で作成した「CSVテーブルの作成」を修正します。
*設定値*
開始:本文を JSONの解析 配下のものに変更します。
列:(オプションの表示ボタンを押し)自動→カスタムに変更
ヘッダ:任意のテキストを入力
値:番号、名前、地方、地域区分(以前の手順からパラメータを挿入「Jsonの解析」から選択
※ヘッダを好みのものに変更しました。

出来上がったファイル
ファイルをメモ帳で開きました。
希望の形で出力されています。

修正した、フローはこのようになりました。

選択の使い方
選択という項目は、これも使い勝手がよさそうです。
上記では、JSONの解析を実行して値を取り出してみましたが、「選択」でも同じような使い方ができることが分かりました。
選択
2 の「Excel Online(Business)「表内に存在する行を一覧表示」の後に「選択」を追加し図のように値を入れました。
JSONとして処理され、この後、「CSVテーブルの作成」に放り込むことができました。


では、フローの一部を以下のように「CSVテーブルの作成」から「HTMLテーブルの作成」に変更すると?
ファイルの作成で、ファイル名を〇〇〇〇.htmlにすると、html(テーブルタグだけでしたが)のファイルが出来上がり、ブラウザで開けました。
HTMLテーブルの作成
フローの一部を以下のように「CSVテーブルの作成」から「HTMLテーブルの作成」に変更します。
ファイルの作成で、ファイル名を〇〇〇〇.htmlにすると、html(テーブルタグだけでしたが)ファイルが出来上がり、ブラウザで開くと、テーブルとして表示されました。


結合と作成の使い方
作成
今回、「作成」は配列変数に入れた結果を表示させるために使いました。
しかし、本来は、同じ入力を繰り返し使う際に利用するようです。
結合
「作成」で出力された配列を図ように”ちゃん、” で結合しました。

結果が知りたいので、最後に、OneDriveにファイルを作成するアクションを追加し、ファイルを開いてみました。
文字列の並びのようになっています。

データ操作について、いろいろ調べてみたものの、「結合」については、よい使い方を思いつくことができませんでした。分からないなりに、「調べる→試してみる→失敗する」をループすることで、やっと成功にたどり着けたり、悩みながらも前進していけるので、今回も楽しかったです。
次回は、③コントロールですね。
以前少しチャレンジしましたが、予想通りの動作をしなかったので、調べる~失敗する、までのループを沢山繰り返す予感がします。頑張ろう。。。