なぜ今更?
意外に情報が無くて面倒なことをされてる方が居たので、
今は Parse JSON も不要になって、超楽々なんですよ!ってことを伝えたかった
参考
Office Scripts も使っていいなら、こっちの方が高速で手間ないかもです
概要
- 元となるExcel ファイルからテーブルの行を取得
- 下図で、左側のファイルから右側のファイルへ転記
- 対象となる行をフィルターして、一部のみ抽出
- 下図の Filter 列(Column4)
- 抽出した行に対し、コピー先となる Excel ファイルの対象行を更新
- 下図 Key列(column1) で紐付け
元となるExcel ファイルからテーブルの行を取得
-
list-rows-present-in-a-table で対象の Table を取得(日本語Doc:テーブル内に存在する行を一覧表示する)
対象となる行をフィルターして、一部のみ抽出
勿論、全行処理してもいいんですが、たぶんそんなことは余り無い筈
今回は、"Column4" という列で、True の行だけにフィルターする例を紹介
フィルター方法は2つ
1. 元のコネクターの設定:Filter Query
詳細は割愛。後日気が向いたら参考例を紹介するかも
FilterQuery
Column4 eq 'True'
2. filter-array-action でフィルター (日本語Doc)
以下の感じで設定
FilterQuery
@equals(item()?['Column4'], 'True')
警告
Excel内で Bool としていた場合(今回の例)以下のように、Advanced Mode で修正が必要
修正内容
- 普通にまずはポチポチ選択
- Advanced Mode 選択
- Boolの判断結果を以下のように、文字列化
抽出した行に対し、コピー先となる Excel ファイルの対象行を更新
update-a-row で更新対象の行を更新(日本語Doc:行を更新)
全体像
実行した場合の例はこんな感じ(Filter Arrayの右二つはごみですが)
最後に
Sample作って思ったのは、以下
- Filter するなら、Excel 側でBoolはやめておいた方が良い。上に記述したけど嵌るし、ポチポチで出来ないので。
- 以下は覚えておこう
item参照 | 用途 |
---|---|
items('Loop名')['列名'] | Loopで Current Item 利用する場合 |
item()['列名'] | Filter ArrayやSelectでItem 利用する場合 |
参考
今回は、Excel のデータ取得部分をテーブル化したが、もしテーブル化出来ない場合は以下のような取得・書き込みを利用します