久しぶりに嫌々ながらPower Automateを使います。今回はM365 Copilotの助けを借りながら進めていきたいと思います。
しかし、最初から結構騙されましたねぇ。MS製品なので特別に学習していると期待したのですが関係ないようです。
使い方のイメージ
Microsoft Listsに登録したい情報を記入したExcelを選択して、右クリックのメニューの中からフローを実行させる。
今回はインスタント クラウド フローを使います。
この中の選択したファイルの場合を使います
実際の設定はこんな感じです。
次に「作成」を使ってファイル名を格納します。ここでも騙されましたね。Idを使えって言われたけどエラーになるんですよねぇ。Googleで検索したらファイル名を使っているブログがあったので、今回は早く解決できたけど...
表内に存在する行を一覧表示ではこの上記「作成」の出力を使います。(Fileの入力で使います)
Excelのテーブルを「それぞれに適用する」を使って1レコードずつ処理します。
ExcelのBodyを入力に使ってループを回します
全体の感じは以下の通りです。
StartDateとEndDateは出力を使って値を変換します。
Microsoft Lists日付型の項目には''は入らないのでNullに変換します。
これはM365 Copilotの提案でOKでした。
Excelの日付は基準日からの日数が入っているみたいなので、このような形になるらしい。
if(equals(items('それぞれに適用する')?['運用開始日'], ''), null, addDays('1899-12-30', int(items('それぞれに適用する')?['運用開始日']), 'yyyy-MM-dd'))
Noは数値型の項目です。これがかなりやっかいでした。ここでもExcelからの値が無い場合には''になっているので、これをNullに変換する必要があります。
M365 Copilotを使ってもうエラーになりますね。数値が入っているときは機能するけど...
IF(
equals(int(items('それぞれに適用する')?['No']),null),
null,
int(items('それぞれに適用する')?['No'])
)
再度やり取りして、以下の式なら機能しました
if(
equals(coalesce(items('それぞれに適用する')?['No'], ''), ''),
null,
int(items('それぞれに適用する')?['No'])
)
項目の作成はこのような感じ。なんか項目の作成って名前よりはアイテムの作成の方がいいけどね。
関連資料
ユーザ型のフィールドの追加方法