やりたいコト
Forms の 誰でも回答可能 なアンケートに複数選択可能な設問があります。
Forms アンケートの回答はアンケート所有者が「応答を表示」を開かないと確認できません。これだと他の人と回答を共有するのに不便なので、SharePoint Lists へ自動転記がよく求められます。
その為、複数選択可能な回答を下図のようにカンマ区切りの文字列で SharePoint Lists に自動転記したいというのが、今回のやりたいことです。
Forms の応答の詳細を取得するアクション+ SharePoint の項目の作成で転記できる?
SharePoint Lists への転記自体は可能です。
ただ、複数選択の回答は Power Automate では以下のようなテキストとして取得されるため、
応答の詳細を取得するアクションで得た回答をそのまま項目の作成アクションで SharePoint Lists に入れると
" (ダブルクォーテーション)や [ (四角カッコ)などのノイズも一緒に転記されてしまいます。
- 回答をデータとして利活用したい
- 読みやすい回答がほしい
などと考える場合、これらのノイズは排除するのが自然です。
ご指摘いただいた、選択肢の値に [ や " が入っている時の対処方法を別記事でアップしました。選択肢の値に [ や " が入る方は以下をご確認ください。
回答のノイズを排除するには?
replace 関数という文字を置換する関数を利用して、ノイズを空白に置き換えます。
replace 関数は 1回につき、1種類の文字しか置換できません。
今回は以下の3種類を取り除きたいので、
- [ (四角カッコの開始)
- ](四角カッコの修了)
- " (ダブルクォーテーション)
replace 関数を3回ネストします。
関数を利用するには Fx ボタンを押して、
以下の式を書くと、ノイズとなる文字を空白に置換できます。
replace(
replace(
replace(
outputs('応答の詳細を取得する')?['body/設問Id'],
'[',
''
),
']',
''
),
'"',
''
)
設問Id の部分は動的コンテンツから指定すると楽ちんです。
【おまけ】社内アンケートの場合
SharePoint にはリストフォームという機能があります。
これは Forms のアンケート機能を持った SharePoint Lists です。
回答してほしい人に URL を共有すると、このように Forms アンケートが表示され
回答データは SharePoint Lists に自動で保存されます。
リストフォームが作成された SharePoint Site へのアクセス権限がある社内ユーザーへのアンケートの場合は、このリストフォーム機能を利用すると Power Automate を利用しなくても Forms アンケートの回答を結果を SharePoint Lists に保存できます。
Forms アンケートの複数選択の回答を SharePoint Lists に保存するならリストフォームを利用した方が簡単です。自動化する前に検討してみてくださいね!
まとめ
いかがでしたか?
- Forms → Power Automate → SharePoint では複数選択回答が JSON のまま渡されてノイズが出る
- replace 関数のネストで簡単にクリーニングできる
- 社内アンケートならリストフォームの方が手軽
Microsoft 365 にはたくさん機能があって、やりたいコトに対して複数の対処法を見つけられることが多いです。様々なツールに対して、アンテナを張っておくとできることの幅が広がりますので、ぜひいろいろと触ってみてくださいね!









