LoginSignup
1
5

More than 1 year has passed since last update.

Power Automate で Excel 転記を行う

Last updated at Posted at 2021-08-31

なぜ今更?

意外に情報が無くて面倒なことをされてる方が居たので、
今は Parse JSON も不要になって、超楽々なんですよ!ってことを伝えたかった

参考

Office Scripts も使っていいなら、こっちの方が高速で手間ないかもです

概要

  1. 元となるExcel ファイルからテーブルの行を取得
  • 下図で、左側のファイルから右側のファイルへ転記
  1. 対象となる行をフィルターして、一部のみ抽出
  • 下図の Filter 列(Column4)
  1. 抽出した行に対し、コピー先となる Excel ファイルの対象行を更新
  • 下図 Key列(column1) で紐付け

転記イメージはこんな感じ
image.png

元となるExcel ファイルからテーブルの行を取得

  1. list-rows-present-in-a-table で対象の Table を取得(日本語Doc:テーブル内に存在する行を一覧表示する
    image.png

対象となる行をフィルターして、一部のみ抽出

勿論、全行処理してもいいんですが、たぶんそんなことは余り無い筈

今回は、"Column4" という列で、True の行だけにフィルターする例を紹介

フィルター方法は2つ

1. 元のコネクターの設定:Filter Query

詳細は割愛。後日気が向いたら参考例を紹介するかも

FilterQuery
Column4 eq 'True'

image.png

2. filter-array-action でフィルター (日本語Doc

以下の感じで設定

FilterQuery
@equals(item()?['Column4'], 'True')

image.png

警告
Excel内で Bool としていた場合(今回の例)以下のように、Advanced Mode で修正が必要

修正内容

  1. 普通にまずはポチポチ選択
  2. Advanced Mode 選択
  3. Boolの判断結果を以下のように、文字列化
  • 変更前:@equals(item()?['Column4'], True)
  • 変更後:@equals(item()?['Column4'], 'True')

抽出した行に対し、コピー先となる Excel ファイルの対象行を更新

update-a-row で更新対象の行を更新(日本語Doc:行を更新
image.png

全体像

実行した場合の例はこんな感じ(Filter Arrayの右二つはごみですが)
image.png

最後に

Sample作って思ったのは、以下

  • Filter するなら、Excel 側でBoolはやめておいた方が良い。上に記述したけど嵌るし、ポチポチで出来ないので。
  • 以下は覚えておこう
item参照 用途
items('Loop名')['列名'] Loopで Current Item 利用する場合
item()['列名'] Filter ArrayやSelectでItem 利用する場合

参考

今回は、Excel のデータ取得部分をテーブル化したが、もしテーブル化出来ない場合は以下のような取得・書き込みを利用します

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5