Microsoft Formsで出張・旅行申請フォームを作ると、航空券・ホテル・食費など複数の数値入力を合算した「見積合計(Estimated Total)」をその場で表示したくなります。本記事では、Forms単体でできない理由と、Excel連携・Power Automateで確実に自動計算する方法を具体例つきで解説します。
やりたいことの整理:Q1〜Q3の数値を、Q4に自動合算して見せたい
出張・旅行申請フォームの代表例として、次のような質問構成を想定します。
| 質問 | 内容 | 入力形式のイメージ |
|---|---|---|
| Q1 | 航空券費用 | 数値(円) |
| Q2 | ホテル費用 | 数値(円) |
| Q3 | 食費・雑費 | 数値(円) |
| Q4 | 見積合計(Estimated Total) | Q1〜Q3を自動合算して表示(理想) |
この「Q4が自動で埋まる」「入力中に合計が見える」という体験は、経費申請の運用ではとても便利です。入力ミス(足し忘れ・ゼロの打ち間違い)を減らせるうえ、承認者も合計だけ見れば一次判断ができます。
結論:Microsoft Forms単体の入力画面では、リアルタイム計算(合算表示)はできない
結論から言うと、Microsoft Formsには、回答者が入力している最中に過去の入力値を参照して計算し、その結果をフォーム上の別項目に表示する「計算フィールド(Calculated field)」のような機能は用意されていません。
Microsoft Q&Aでも「フォーム内でリアルタイム計算はサポートされない」旨が案内されており、代替としてExcel連携やPower Automateでの処理が推奨されています。
つまり、Formsは「入力して送信する」ところまでが担当で、計算(合計の生成)は“送信後”に別の仕組み(Excel/Power Automate/SharePointなど)で行うのが現実解です。
よくある勘違い:Formsに「計算」があるように見える機能との違い
Formsにはクイズや分岐など、いかにも“ロジックが組めそう”な機能があります。そのため「合計もできそう」と誤解されがちですが、次のように目的が違います。
| 機能 | できること | 見積合計の自動表示に使える? |
|---|---|---|
| クイズの採点(スコア) | 正誤・配点に基づく採点 | 基本的に不可(経費の任意数値入力と相性が悪い) |
| 分岐(Branching) | 回答内容によって次の質問を変える | 不可(合計を計算して表示する機能ではない) |
| 回答後の集計・分析 | 送信済みの回答を集計・グラフ化 | 入力中表示は不可(送信後の集計) |
Tech Communityの議論でも「フォーム上で回答者が入力した値を使って見積や合計を作るような計算はできない」という趣旨で整理されています(“計算問題を作れる”ことと“入力値を計算する”ことは別)。
現実的な解決策の全体像:合計はExcelかPower Automateで作る
「入力中に合計を見せる」ことはForms単体では難しい一方で、送信後のデータ処理はMicrosoft 365の範囲でかなり強力に自動化できます。代表的な選択肢を整理すると次の通りです。
| 方式 | 合計が出るタイミング | 向いているケース | ポイント |
|---|---|---|---|
| Excel連携で合計列を作る | 送信後(Excelに反映後) | まずは堅実に運用したい/集計・印刷が主目的 | 式で自動計算、一覧性が高い |
| Power Automateで合計を計算して通知・保存 | 送信直後(フロー実行時) | 承認フロー、Teams通知、SharePoint台帳化までやりたい | 計算+配信+保存を一気通貫で自動化 |
| SharePointリスト+計算列(補助案) | 送信後(リスト保存後) | 申請台帳をSharePointで管理したい | 計算はリスト側に寄せると保守が楽 |
| Power Appsなど別フォームに乗り換え | 入力中にリアルタイム | どうしても入力中合計が必須 | Formsの守備範囲外なので設計変更が必要 |
Excel連携で「見積合計」列を作る方法
まず手堅く成功しやすいのが、Formsの回答をExcelに連携し、Excel側で合計列(Estimated Total)を計算する方式です。Microsoftのサポート情報でも、Formsの回答はExcelで開いて分析でき、フォームの作成場所(個人/グループ)によってOneDriveまたはSharePointにブックが保存されることが案内されています。
最重要ポイント:「Open results in Excel」は“接続付き”、「Download a copy」は“切り離し”
Excel連携を成功させるコツは、Formsの「回答」画面からOpen results in Excel(Excelで開く)を使うことです。Microsoftの案内では、Open results in Excelで作成されるブックはOneDrive/SharePointに保存され、フォームとライブ接続され、今後の回答が反映されると説明されています。一方、Download a copyはオフラインのコピーで、フォームとは連動しません。
| 操作 | ブックの性質 | 新しい回答の反映 | おすすめ度 |
|---|---|---|---|
| Open results in Excel(Excelで開く) | OneDrive/SharePointに自動保存+ライブ接続 | 反映される(接続更新) | 高(運用向き) |
| Open in Excel Desktop(デスクトップで開く) | ライブ接続のままデスクトップで開く(条件あり) | 反映される(条件あり) | 中(環境依存) |
| Download a copy(コピーをダウンロード) | 切り離されたオフラインファイル | 反映されない | 低(スナップショット用途) |
また、ライブ接続の更新トリガーは「フォーム所有者」や、ブックへの編集権限がある同一組織内ユーザーに限られ、外部ユーザーは更新をトリガーできない、という注意点も明記されています。外部回答者が多いフォームでは、更新担当(所有者)が定期的にExcelを開く運用が必要になります。
手順:Excel側に「Estimated Total」列を追加して自動合算する
フォーム送信中に合計が見えるわけではありませんが、送信後の台帳(Excel)には、回答が追加されるたびに合計が自動計算される状態を作れます。
- Microsoft Formsで対象フォームを開き、[回答]タブを開く
- Open results in Excel(Excelで開く)をクリックして、回答ブックを開く
- 回答一覧の右側に、新しい列を追加して列名をEstimated Total(見積合計)にする
- 合計列にSUM式を入れる(テーブル形式なら自動で全行に適用されやすい)
- 通貨表示(円)など書式を整える
列名はフォームの質問タイトルがそのままExcelの列名になることが多いので、例として「航空券費用」「ホテル費用」「食費・雑費」という列がある前提で、最もシンプルな式は次の通りです。
=SUM([@[航空券費用]],[@[ホテル費用]],[@[食費・雑費]])
このような構造化参照([@[列名]]) を使うと、回答が行として追加されたときに同じ計算が自動で適用されやすく、一覧管理に向きます。Microsoft Q&Aでも同様に、回答ブックへ合計列を追加してSUMで自動計算する方法が推奨されています。
空欄・未入力でも壊れにくい式(現場で効く)
申請フォームでは「航空券は未手配なので空欄」「ホテルは会社手配で0円」など、入力が揺れます。Excel側で集計を崩さないために、空欄や文字列混入に強い式にしておくのが実務向きです。
=IFERROR(VALUE([@[航空券費用]]),0)
+IFERROR(VALUE([@[ホテル費用]]),0)
+IFERROR(VALUE([@[食費・雑費]]),0)
ポイントは、VALUEで数値化→IFERRORで失敗時は0に落とすことです。Formsの設定や入力状況によっては、Excelに「文字列として」入ってくるケースもあるため、この形にしておくとトラブルが減ります(特に他部署展開するフォームで効きます)。
質問設計のコツ:列名(質問タイトル)を“計算しやすい名前”に寄せる
Excel式の運用を楽にするには、Forms側の質問タイトル(=Excelの列名)を最初から整えるのがおすすめです。例えば次のような方針が扱いやすいです。
| 設計観点 | おすすめ | 理由 | 例 |
|---|---|---|---|
| 列名の長さ | 短く | 式が読みやすい | Airfare / Hotel / Meals |
| 記号 | 極力少なく | 参照の崩れ・見づらさを回避 | 「食費・雑費」より「食費雑費」 |
| 単位の扱い | 列名に単位を入れすぎない | 表示は説明文で補える | 「航空券費用(円)」ではなく「航空券費用」 |
| 必須/任意 | 合計に入れる列は入力ルールを明確化 | 空欄や0円の意味が統一される | 「会社負担は0」「未定は空欄」など |
Excel連携でよくあるトラブルと対処
Excel連携は強い一方で、「更新されない」「誰が更新できるの?」で詰まりやすいです。Microsoftのサポート情報を踏まえて、現場で多い症状を表にまとめます。
| 症状 | よくある原因 | 対処 |
|---|---|---|
| Excelを開いても最新回答が反映されない | 「Download a copy」を使っている(接続なし) | Formsの回答タブから「Open results in Excel」で開き直す |
| 他のメンバーが更新できない | ブックに編集権限がない/更新トリガー権限がない | OneDrive/SharePoint側で編集権限を付与し、運用上の更新担当を決める |
| 外部回答者の回答がExcelに来ないと言われる | 外部ユーザーは更新をトリガーできない | 所有者が定期的にExcelを開いて更新する(運用設計で吸収) |
| 列が増えて式が壊れる | 質問タイトル変更で列名が変わる | 列名を変える場合は、Excel側の合計式も合わせてメンテする |
Power Automateで合計を計算して、台帳化・通知・承認まで自動化する
次に「合計を出すだけでなく、そのまま承認依頼やTeams通知に載せたい」「SharePointの申請台帳に保存したい」といった要件がある場合は、Power Automateが向いています。
Microsoft Learnでも、Formsをトリガーにして「Get response details」で回答を取得し、Excelに行追加したり承認アクションにつなげたりする代表シナリオが紹介されています。
代表的なフローパターン(どこに合計を残すかで選ぶ)
| パターン | 保存先 | 合計の作り方 | おすすめケース |
|---|---|---|---|
| 通知中心 | メール/Teams | フロー内で合算して本文に埋め込む | まずは承認者へ合計を見せたい |
| 台帳中心 | SharePointリスト | フローで計算して列に保存(または計算列) | 申請台帳・検索・フィルターを重視 |
| Excel中心 | Excelテーブル | フローで合計列も書き込み/Excel側で式 | Excelで集計し、Power BIに繋ぐ |
| 承認中心 | Approvals + 保存先 | 合計を承認カードに表示し、結果を保存 | 稟議・精算の入口を自動化したい |
基本構成:Forms送信 → 回答取得 → 合計算出 → 保存/通知
最も汎用的な構成は次の流れです(出張申請フォームにもそのまま使えます)。
- トリガー:Microsoft Forms「When a new response is submitted(新しい回答が送信されたとき)」
- アクション:Microsoft Forms「Get response details(回答の詳細を取得)」
- アクション:Data Operations「Compose(作成)」または「変数」を使って合計を計算
- アクション:SharePointにアイテム作成/Excelに行追加/メール送信/Teams投稿など
- 必要なら:Approvals「Start and wait for an approval(承認の開始と待機)」
フォーム回答の取得(Get response details)から、Excelへの行追加などに繋げる手順は、Microsoft Learnのシナリオ例でも説明されています。
合計計算の式例(空欄でも落ちにくい)
Power Automateでは、Formsの数値回答が「文字列」として扱われることがあります。そのため、計算前に数値変換し、空欄は0に寄せるのが安全です。下記は典型例です(質問名は環境に合わせて置き換えてください)。
add(
add(
float(coalesce(outputs('Get_response_details')?['body/Q1'], '0')),
float(coalesce(outputs('Get_response_details')?['body/Q2'], '0'))
),
float(coalesce(outputs('Get_response_details')?['body/Q3'], '0'))
)
考え方はシンプルで、coalesceで空欄を’0’に置換 → floatで数値化 → addで足し算です。これをComposeに入れておくと、後続アクション(メール本文やSharePoint列)へ「Estimated Total」として使い回せます。
承認メール/Teams通知に合計を載せるテンプレート
「合計が見えれば承認が速い」という現場は多いので、通知テンプレートを先に決めておくと運用がスムーズです。
件名:出張申請(見積合計:{Estimated Total} 円)
本文:
以下の出張申請が送信されました。
・航空券費用:{Q1} 円
・ホテル費用:{Q2} 円
・食費・雑費:{Q3} 円
・見積合計(Estimated Total):{Estimated Total} 円
申請者:{Responder}
申請ID:{Response Id}
Response Id(回答ID)を一緒に持っておくと、後から「どの回答だったか」を追跡しやすくなります。Microsoftのサポート情報でも、回答IDは各回答で一意であり、Excelに出力した場合は先頭列に含まれることが説明されています。
Excelに書き戻す場合の注意点
Power AutomateからExcelへ書き込む場合は、Excel側に「テーブル」を用意し、列が固定されていることが前提になります。Microsoft Learnのシナリオでも「Excel Online (Business) の Add a row into a table」を使う流れが例示されています。
実務上のポイントは次の通りです。
- Excelは「テーブル化」してから使う(列名が安定する)
- 合計列をExcelの式で計算するか、フローで計算して書き込むかを統一する(二重管理にしない)
- 大量回答が見込まれる場合は、ExcelよりSharePointリストの方が検索・権限・履歴が扱いやすい
合計を「SharePointの計算列」に寄せるという設計も強い
Power Automateで合計を計算して保存するのは便利ですが、運用が長くなると「計算ロジック変更(例えば、日当を追加)」「項目追加(例えば、現地交通費)」が発生します。そのとき、合計をフローに埋め込んでいると改修箇所が増えがちです。
そこで、申請台帳をSharePointリストで持ち、Q1〜Q3の値を保存したうえで、合計はSharePointの計算列(例:=航空券費用+ホテル費用+食費雑費)に寄せる設計も有力です。フローは「保存と通知」に集中し、計算は台帳側で一元管理できます。
どうしても「入力中に合計を表示」したい場合の代替案
改めて結論ですが、Microsoft Formsの回答画面だけで「入力中に合計を表示」することは難しいため、要件が強い場合はフォーム自体の選定・設計を見直す必要があります。
代替案は大きく次の方向性です。
| 代替案 | 入力中合計 | 向いている状況 | 注意点 |
|---|---|---|---|
| Power Appsで申請フォームを作る | 可能 | 社内申請をアプリ化したい/入力体験を重視 | 設計・保守の工数は増える(ただし柔軟) |
| SharePointリスト+Power Appsカスタムフォーム | 可能 | 台帳(リスト)を中心に業務を回したい | Formsの手軽さは減るが統制が効く |
| 計算機能を持つ外部フォームサービス | 可能(サービス次第) | 社外ユーザーにも計算付きで入力させたい | 契約・セキュリティ・データ保管場所の確認が必須 |
Microsoftのコミュニティでも、計算が必須ならPower Apps等の別アプローチが現実的という方向で議論されています。
出張・旅行申請フォームを“精算まで”つなぐ設計チェック
「合計の自動計算」だけ解決しても、申請〜承認〜精算で詰まると結局手戻りが発生します。出張申請フォームで実務的に効くチェック項目をまとめます。
| チェック項目 | なぜ重要? | 具体例 |
|---|---|---|
| 税込/税抜のルール | 合計の意味がブレると承認が止まる | 「入力は税込で統一」「税抜の場合は別項目」 |
| 通貨(外貨)の扱い | 換算ルールがないと精算が二度手間 | 「外貨は別欄」「レートは申請日固定」 |
| 会社手配の費用 | 個人負担/会社負担が混ざると合計が誤解される | 「会社手配は0」「会社手配チェック欄を追加」 |
| 添付(見積書/領収書) | 承認者の判断材料になる | 「見積書添付必須」「領収書は精算時」 |
| 申請ID(追跡キー) | 問い合わせ対応・差戻し管理で必須 | Response Idを台帳・通知に必ず含める |
特に申請IDは、Formsの回答をExcelに出したとき先頭列に入ることが明記されているため、台帳連携のキーとして扱いやすいです。
よくある質問
Q:Q4を自動入力(自動で数値が入る)にできませんか?
A:Formsの入力画面では、他の質問の入力値を参照して別の質問に自動入力する機能はありません。実現したい場合は、送信後にExcel/Power Automateで合計を作り、台帳や通知に載せる設計が現実的です。
Q:送信後に、回答者へ合計をすぐ返すことはできますか?
A:Formsの完了画面に動的な合計値を差し込むのは難しいですが、Power Automateで「送信直後にメール(またはTeams)で合計を返す」ことは可能です。承認者向けの通知と同じ要領で、回答者にも合計を送れます。
Q:Excel連携が不安定なときはどうすればいい?
A:まず「Open results in Excel(接続付き)」で開いているかを確認してください。Download a copyは接続がないため、更新されません。また、更新トリガー権限(所有者・編集権限者のみ)にも注意が必要です。
まとめ:Formsは入力、合計はExcel/Power Automateで自動化するのが最短ルート
Microsoft Formsは、入力のしやすさと回答の集計・可視化に強い一方で、フォーム入力中のリアルタイム計算には対応していません。そのため「見積合計(Estimated Total)を自動で作る」なら、送信後にExcelの合計列で計算するか、Power Automateで合算して台帳化・通知・承認に載せるのが王道です。
まずはExcel連携で合計列を作り、運用が固まったらPower Automateで承認・通知まで自動化する、という段階的な進め方にすると失敗しにくいです。

コメント