Power Automateを使用してSharePointリストのデータを操作する際、特定の条件に合致する項目のみを取得したいケースがよくあります。そのような場合に便利なのが、SharePointコネクタの「複数の項目の取得」アクションと、そこで使用できるフィルタークエリです。
今回はPower AutomateでSharePointリストの「はい・いいえ」列をフィルタリングする際の注意点をご紹介します。
フィルタークエリとは
フィルタークエリは、SharePointリストから特定の条件に合致するアイテムのみを取得するための条件式です。基本的な構文は以下のようになります:
列名 演算子 値
よく使用される演算子には以下のようなものがあります:
- eq:等しい
- ne:等しくない
- gt:より大きい
- lt:より小さい
- ge:以上
- le:以下
例えば、「カテゴリー」列の値が「A」であるアイテムのみを取得したい場合、以下のようなフィルタークエリを使用します:
Category eq 'A'
「はい・いいえ」列のフィルタリング
SharePointリストの「はい・いいえ」列をフィルタリングする際には注意が必要です。
今回は以下のようなタスク管理リストで「タスク完了」列が「はい」のアイテムを取得したいと思います。
一見すると、以下のようなクエリで「はい」の値のみを取得できそうに思えます:
OData__x30bf__x30b9__x30af__x5b8c__x4e eq true
※日本語列のフィルタークエリでの指定方法は末尾に記載しています。
ところが、この方法では期待通りの結果が得られません。実際には、以下のようにfalseの項目が取得されてしまいます。
「はい・いいえ」列で「はい」の値のみを取得するための正しいフィルタークエリは以下のようになります:
OData__x30bf__x30b9__x30af__x5b8c__x4e eq 1
このように「true・false」ではなく、2進数で「1・0」を指定することで「はい」にチェックが入っている項目のみを取得することができます。
同様に、「いいえ」の値のみを取得したい場合は、以下のようなクエリを使用します:
OData__x30bf__x30b9__x30af__x5b8c__x4e eq 0
日本語の列名の内部名を確認する方法
SharePointリストの列名が日本語の場合、クエリフィルターの列名を指定するときに以下のように内部名の先頭に「OData_」を付ける必要があります。
OData_内部名 eq 1
なお、内部名は以下の手順で確認できます:
- リスト設定にアクセス:
- SharePointサイトで対象のリストを開き、右上の歯車アイコンをクリックして「リスト設定」を選択します。
- 列の編集画面を開く:
- 「リスト設定」ページで、確認したい列の名前をクリックします。
- URLから内部名を確認:
- 列の編集画面のURLを確認し、「Field=」以降の部分がその列の内部名です。例えば、URLが以下の場合、「_x30bfx30b9x30afx5b8cx4e」が内部名です。
https://XXXXX.sharepoint.com/sites/xxxxxx/_layouts/15/FldEdit.aspx?List=xxxxxx&Field=_x30bf__x30b9__x30af__x5b8c__x4e
- 列の編集画面のURLを確認し、「Field=」以降の部分がその列の内部名です。例えば、URLが以下の場合、「_x30bfx30b9x30afx5b8cx4e」が内部名です。
まとめ
Power AutomateでSharePointリストの「はい・いいえ」列をフィルタリングする際の注意点をご紹介しました。
「true・false」の値でフィルターすると逆の項目が取得されてしまいますが、2進数でクエリを設定すると期待通りの結果が返ってくるので、ぜひ試してみてください。