Appearance
How to Use Branching Logic in Microsoft Forms
Applies to: Microsoft 365 (Microsoft Forms on the web, Forms in Teams)
Article Type: How-To
Last Updated: 2026-07-29
Summary
Branching sends a respondent to a different next question depending on the answer they picked, so a 25-question form shows each person only the 8 questions that apply to them. This article shows you how to build it, how to end the form early for someone who does not qualify, how to test every path, and the two constraints that catch people out — branching only jumps forward, and branched forms produce gappy results.
Prerequisites
- A Microsoft 365 work or school account and a form you own or co-own. If you have not built one yet, start with How to Create and Manage a Survey with Microsoft Forms.
- At least two questions in the form. Branching needs somewhere to send people.
- Build the branching before you share the link. Adding it to a form that is already collecting responses leaves you with two differently-shaped sets of answers.
- No administrator rights required.
Instructions
1. Decide Whether Branching Earns Its Keep
Branching costs you setup time and clean results. It is worth paying when the form asks a lot of people about things that do not apply to them.
It earns its keep when:
- A screening question controls a whole block. "Do you work from the office?" — a No answer means the next six questions about the office coffee machine, parking, and desk booking are wasted keystrokes.
- Some respondents are not eligible at all. End the form the moment someone answers themselves out of it, rather than making them fill in eight more boxes for nothing.
- Roles diverge. Managers get one set of questions, individual contributors another, and neither should scroll past the other's.
- Length is costing you responses. Cutting a form from 25 visible questions to 8 is the difference between a 40% and a 70% completion rate on most internal surveys.
Skip it when:
- The form has six questions or fewer. The setup outlives the benefit.
- Every question applies to everyone.
- You need identical columns for every respondent because the results feed a report or a dashboard. Branching guarantees gaps — Step 7 covers what that does to your numbers.
2. Put Your Questions in the Order the Branches Need
This is the rule that trips almost everyone, so do it before you touch the branching editor.
Branching only ever jumps forward. When you open the branching view, the Go to dropdown offers only the questions that sit below the one you are branching from, plus End of the form. There is no way to send someone back up the form, and there is no setting that changes this.
Two consequences to design around:
- Screening questions go first. The question whose answer decides the path must sit above everything it routes to.
- Keep each path's questions together in one contiguous block, in the order that path will read them. Interleaving two paths' questions produces a form where every branch needs a destination on every question, which is where branching setups go wrong.
A workable layout for a two-path form looks like this:
- Question 1 — the screening question that branches.
- Questions 2 to 5 — the office block.
- Questions 6 to 9 — the remote block.
- Question 10 — the closing question everyone answers.
To move a question, hover over its card in the form editor and use the Move question up and Move question down arrows on the right edge of the card, or drag the card by its top edge.
Note: Do the reordering now. Moving a question after the branching is built can invalidate a branch that pointed at it, and Forms resets that branch to Next without telling you.
3. Add Branching to a Question
- Go to
https://forms.office.com, sign in with your work account, and click your form to open the editor. - Click the question you want to branch from so its card expands.
- Click the More settings for question button — the three dots (⋯) at the bottom-right corner of the question card.
- Select Add branching. The editor switches to the branching view: the form is listed top to bottom, and every answer choice on your question now has a Go to dropdown beside it.
- Open the Go to dropdown next to the first answer and pick the question that answer should lead to. Repeat for every answer choice.
- Leave any answer set to Next when that answer should continue in normal order.
- Click Back in the top-left to return to the form editor.
Verification: A small branching icon — a forked arrow — now appears on the question card. Any question in your form with branching applied carries this icon, so you can see at a glance which ones are routing people.
Which question types branch per answer. Choice and Rating questions give you one Go to per option, which is what most people mean by branching. Text, Date, and Ranking questions get a single Go to that applies to everyone who reaches them — still useful for jumping the whole group over a section, but it cannot read what someone typed.
4. End the Form Early for a Disqualifying Answer
- In the branching view, find the answer that disqualifies the respondent.
- Open its Go to dropdown and select End of the form.
- Click Back to return to the editor.
Anyone choosing that answer goes straight to the submit screen. Their response is still recorded, with blanks in every question they skipped.
To tell them why the form ended, give them something to land on first:
- In the form editor, click Add new, then click the More question types chevron and choose Section.
- Drag the section to the very bottom of the form.
- Title it something plain such as
Thanks — no further questionsand use the description field to explain in one line. - Point the disqualifying answer's Go to at that section instead of at End of the form.
A blank submit screen after one question reads like the form broke. A one-line explanation costs nothing and stops people re-submitting to see whether it worked.
5. Close Every Branch So Paths Do Not Bleed Into Each Other
This is the single most common branching bug, and it never shows up until someone else fills in the form.
Every answer you leave set to Next follows the normal top-to-bottom order. So when the last question of the office block finishes, the respondent falls straight into the first question of the remote block — because that is what comes next in the list. They answer both branches. Your export fills up with people who somehow work in the office and remotely.
The fix is to give the last question of every branch an explicit destination:
- Open Add branching on the last question of the first block.
- Set its Go to to the shared closing question that everyone answers, or to End of the form if there is nothing left.
- Repeat for the last question of every other block.
- Walk the list once more from top to bottom. Every block should terminate somewhere deliberate.
Tip: A shared closing question is worth adding for this reason alone. Something like "Anything else you want us to know?" gives every path one destination to aim at, and gives you one column that is populated for every respondent.
6. Test Every Path with Preview
- Click Preview in the top-right corner of the form editor.
- Use the Computer and Mobile toggle at the top of the preview to check the layout on both. Branched forms get long on a phone.
- Fill in the form choosing the first answer on your branching question. Confirm the next question that appears is the one you targeted, and that you never see a question belonging to another path.
- Continue to the submit screen and click Submit. Responses sent from Preview are not saved to your results, so this costs you nothing.
- Click Back, then Preview again, and repeat for every remaining answer option — including the disqualifying one.
- Return to the editor with Back and fix any path that went somewhere unexpected.
Verification: Count your answer options on the branching question. Run Preview that many times. A form with four options on the screening question needs four passes, not one.
7. Understand What Branching Does to Required Questions and Your Results
Branching changes two things after the responses arrive. Knowing them up front changes how you build the form.
Required questions are enforced per path, not per form. The Required toggle stops someone submitting while a question they can see is blank. A required question on a path they never took does not block anything and stays empty. So marking everything required does not give you complete data — it gives you complete data per path. Anything you need from every single respondent belongs above the first branch, or in the shared closing question from Step 5.
Your export comes out sparse. The Excel export has one column per question in the form, and every respondent's row is blank for the questions their path skipped. That has three practical effects:
- A blank means "not asked", not "declined to answer". You cannot tell the two apart from the export. If the difference matters, add a Prefer not to say option to the question rather than letting people skip it.
- Summary percentages are calculated against the people who saw the question. On the Responses tab, "80% said yes" on a branched question can mean 8 of the 10 people who reached it, out of 200 total responses. Read each question's own response count, not the headline figure at the top.
- PivotTables show a
(blank)row. Filter it out or it sits in your chart looking like a real answer category.
The habit that fixes all three: keep the branch-deciding question required and above every branch, so you can always segment your results by which path someone took. Full detail on reshaping the export is in How to Export and Analyze Microsoft Forms Results.
Troubleshooting
WARNING
Reordering questions after the branching is built can silently break it. Forms clears any branch whose destination has moved above its source, resetting it to Next with no warning and no error. After any move, reopen Add branching on every branching question and confirm each Go to still points where you intended.
| Symptom / Error | Potential Cause | Solution |
|---|---|---|
The question I want to branch to is not in the Go to list | The target sits above the source | Branching only moves forward. Move the target question below the branching question using the Move question down arrow, then reopen Add branching. |
| Respondents see questions meant for the other path | A branch block has no closing destination | The last question of every block falls through to whatever comes next in the list. Give each one an explicit Go to — see Step 5. |
Add branching is missing from the ⋯ menu | The question is the last one in the form | There is nowhere forward to send anyone. Add the questions that follow first, then branch. |
| My branching disappeared after I moved a question | The move invalidated the destination | Forms resets a branch whose target moved above its source. Reopen Add branching and set every Go to again. |
| A required question came back blank | It sat on a path the respondent never took | Required applies only to questions someone is shown. Put anything mandatory above the first branch or in the shared closing question. |
| Percentages on the Responses tab look wrong | They count only the people who saw the question | Compare each question's own response count against the total at the top of the Responses tab before quoting a percentage. |