How to Set Up Ranked Choice Voting in Google Forms (and Tally the Results)
Google Forms doesn't have a real ranked-choice question type.
There's a workaround using the Multiple Choice Grid, and there's a second workaround using a separate question for each rank. Both work for a quick team vote; neither scales past about 50 voters or 5 candidates without spreadsheet pain.
This guide shows both methods step by step, a worked tally example in Google Sheets (4 candidates, 18 voters, 3 elimination rounds), and where Formester's drag-and-drop Ranking field cleans up the parts Google Forms gets wrong: no duplicate-rank trap, no Google sign-in required, and a built-in response summary chart.
Ranked-choice voting is now used by nearly 14 million people across 51 U.S. jurisdictions, with over 800 elections held since 2004, so the workflow matters. The walkthrough below is the same one we use internally for Formester team decisions.
Ranked choice voting in Google Forms, demoed end to end
The Multiple Choice Grid setup, the “Limit to one response per column” toggle, and where Formester’s Ranking field picks up the parts the grid gets wrong.
Replace VIDEO_ID_PLACEHOLDER with the existing Formester YouTube video ID already embedded on the live blog. Pair with VideoObject schema for rich-result eligibility.
How Ranked Choice Voting Works?
Each voter ranks every option from most preferred to least preferred (1st, 2nd, 3rd, and so on). Counting happens in rounds.
Round 1: count every voter's first choice. If any option has more than 50%, it wins. Stop.
If nobody clears 50%, the option with the fewest first-choice votes is eliminated.
Every ballot that ranked the eliminated option first gets recounted using its second choice.
Repeat rounds until one option crosses 50% or only two options remain.
The two practical consequences: a candidate can lead Round 1 and still lose, and a ballot that doesn't rank enough options eventually "exhausts" out of the count. Both happen in real elections; both will happen in your team vote at scale.
Why Use Ranked Choice Voting?
No wasted votes. A ballot for the eliminated last-place candidate still counts because it transfers to that voter's second pick.
Stronger consensus. The winner has majority support after transfers, not a 27% plurality in a 5-way split.
Less strategic voting. Voters can rank their honest favorite first without "throwing away" the ballot if that favorite is unpopular.
Where RCV is overkill: a 2-option vote (a standard yes/no), or a 30-second team poll where rough consensus is fine. Use it when the choice matters and there are 3+ real contenders.
Where Teams Actually Use Ranked Choice Voting
Engineering team picking the next quarter's roadmap initiative from 6 candidates.
Marketing team voting on the next event sponsorship from 4 options.
HR running an employee award where 5 nominees each have a fanbase.
Community board selecting a new logo from designer submissions.
Student council elections (the original RCV use case, still the cleanest fit).
If your "vote" has only 2 options or one is the obvious favorite to 80% of voters, skip RCV; a Google Forms multiple-choice question is fine.
How to Use Google Forms and Sheets for Ranked Choice Voting (RCV)
Method 1: Multiple Choice Grid (the most common Google Forms workaround)
This is the method most teams use. One question, every candidate is a row, every rank is a column.
Step 1. Define the decision. Name the choice, the candidates, and who can vote. Lock the candidate list before sharing; adding a candidate mid-vote invalidates earlier ballots.
Step 2. Open a blank form at forms.google.com. Add a title and a one-line description explaining the rules ("rank every option once; do not skip ranks").
Step 3. Add a Multiple Choice Grid question.
- Rows: each candidate (Candidate A, Candidate B, Candidate C, Candidate D).
- Columns: each rank (1st choice, 2nd choice, 3rd choice, 4th choice).
- Toggle on Require a response in each row. Without this, voters can submit half-ranked ballots that exhaust early in the tally.
- Toggle on Limit to one response per column. This is the single most-missed setting. Without it, a voter can rank three candidates as their 1st choice; the ballot is unscorable.
Step 4. Add a short instruction at the top of the form:
Rank each option once. Don't reuse a rank. Don't skip ranks.
Step 5. Share. Use the form's link in Slack, email, or a QR code. For team votes where attribution matters, leave "Collect email addresses" on; for community votes where anonymity matters, turn it off (and note: turning it off means the form is open to ballot stuffing unless you also add a passcode question).
When to use this method: 3-5 candidates, fewer than 50 voters, one-off vote. When NOT to use it: 6+ candidates (the grid gets unreadable on mobile), 50+ voters (manual tally takes hours), or a recurring vote where you'd benefit from a real Ranking field.
Method 2 alt (call out below the grid steps):
A second workaround is to use a separate Multiple Choice question for each rank (one question per rank, candidates as options, "Limit to one response" per option enforced via Google Forms validation). It's slower to fill out but easier for voters to understand. Use it if the grid is visually overwhelming on mobile.
Examples of RCV in Action
Leadership selection: Teams can pick leaders that everyone supports.
Work prioritization: Focus on tasks that matter most to the group.
Awards and contests: Ensure the best entry wins fairly.
RCV helps make better decisions, respects everyone’s voice, and finds solutions with broad support.
How to Tally Ranked Choice Voting in Google Sheets (Worked Example)
Walking through a real tally is the only way this stops feeling abstract. The example below: 4 candidates (Alex, Bo, Casey, Devi), 18 voters, 3 elimination rounds.
Import responses
- In Google Forms, open the Responses tab and click the green Sheets icon to link a spreadsheet.
- Make a copy of that sheet before doing anything else; rounds get messy and you'll want the original.
Find the winning threshold
The threshold is Total votes / 2 + 1 (the 50%+1 rule). For 18 votes, the threshold is 10.
Round 1: count first-choice votes
Tally every voter's 1st-choice column.
| Candidate | Round 1 first-choice votes |
|---|---|
| Alex | 7 |
| Bo | 5 |
| Casey | 4 |
| Devi | 2 |
Round 2: redistribute Devi's ballots to their 2nd-choice
Look at the 2 voters who picked Devi 1st. Suppose their 2nd-choice is: 1 for Bo, 1 for Casey.
| Candidate | Round 2 votes |
|---|---|
| Alex | 7 |
| Bo | 6 |
| Casey | 5 |
| Devi | out |
Round 3: redistribute Casey's 5 ballots
Look at Casey's voters' next active preference (skip any rank that points to an already-eliminated candidate). Suppose: 3 to Alex, 2 to Bo.
| Candidate | Round 3 votes |
|---|---|
| Alex | 10 |
| Bo | 8 |
| Casey | out |
| Devi | out |
Handle ties
If two candidates tie for last place in a round, the standard methods are:
- Eliminate both simultaneously (only if it doesn't make the count impossible).
- Compare prior-round vote totals.
- Eliminate by random draw, declared in the rules before the vote.
Handle exhausted ballots
If a voter ranked only 2 of 4 candidates and both get eliminated, that ballot has no more preferences to transfer. It “exhausts” and stops counting in future rounds. The threshold doesn't change; the remaining active ballots still need 50%+1 of the remaining count.
For 50+ ballots, this gets tedious. Three faster options:
- Rankedvote.co, a Chrome extension that runs RCV directly on a linked Google Sheet.
- RCV123, a free spreadsheet calculator for Google Classroom, Forms, and Sheets.
- A pre-built RCV Apps Script (search “gform-rankvote” on GitHub).
Common Ranked-Choice Voting Mistakes (and How to Avoid Them)
Letting voters reuse a rank. A ballot with two "1st choices" is unscorable. Fix: turn on "Limit to one response per column" in Google Forms, or use Formester's Ranking field (enforced by design).
No clear winning threshold. Without 50%+1, you can land on a "plurality winner" by accident, which defeats the point of RCV. Fix: state the threshold in the form description.
Adding a candidate mid-vote. Earlier ballots can't rank a candidate they never saw. Fix: lock the candidate list before sharing the link.
Ignoring exhausted ballots. If voters can rank fewer than all candidates, plan for exhaustion in your tally rules. Fix: either require ranking every option (Google Forms: "Require a response in each row") or document how exhausted ballots are handled.
Tie-handling left to the moment. Decide tie rules before the vote runs. Coin-flip ties are fine if announced; surprise coin-flip ties are not.
Manual tally past 50 ballots. Past about 50 ballots and 4 candidates, the manual rounds become error-prone. Switch to one of the tally tools listed above.
How to Create a Ranked Choice Voting Form in Formester?
Google Forms' grid is a stand-in for a ranking question; Formester ships a proper Ranking field. The difference matters for two reasons: voters can't accidentally pick the same rank twice (the field enforces unique ordering), and the response view shows a distribution chart per option instead of a raw grid.
Step 1. Log in to Formester and start a new form. Pick "Blank" or the Poll Maker template.
Step 2. Add a Ranking field. Click the field menu, pick "Ranking," and list your candidates as the options. Voters drag-and-drop options into preference order, or click to rank.
Step 3. Add a description, for example: "Rank each option from most preferred to least preferred. Every position must be filled."
Step 4. (Optional) Add brand styling. Logo, brand colors, and custom subdomain on Personal plan and above, via the branding kit. Useful for community votes where the form represents an organization.
Step 5. Share via link, embed, or QR code. Formester forms don't require a Google account to respond, which is the deciding factor for any vote with external participants (community boards, customer councils, public elections).
Step 6. Review responses. Each option gets a summary distribution chart showing how many voters ranked it 1st, 2nd, 3rd, and so on. This is the fastest way to see the shape of the vote before you do the round-by-round tally.
Honest caveat: Formester does not auto-tally ranked-choice voting (round-by-round elimination is still a Google Sheets job, same as Google Forms). What Formester saves you is the data-capture mess: clean ordered preferences instead of grid cells you have to parse for duplicates.
Google Forms green-icon sync, or Formester’s Google Sheets integration
Internal form, low volume, no branding needed? Stick with native. Customer-facing forms that need branding, analytics, or pre-fill logic? Formester pulls ahead.
| Capability | Google Forms + Sheets (native) | Formester + Google Sheets |
|---|---|---|
| Auto-sync to a Sheet | Yes (green icon, one-click) | Yes (Settings → Integrations → Google Sheets) |
| Branded forms (logo, colors, custom domain) | No | Yes (Personal plan and up) |
| Built-in analytics dashboard | No (build pivots in Sheets manually) | Yes (form analytics) |
| Per-question conditional logic | Section-based only | Per-question (conditional logic) |
| File uploads | 1GB per response, files in Drive | 100MB Free / 1GB Personal / 50GB Business (file uploads) |
| Pre-fill from a Sheet on load | No (manual prefilled link only) | Yes (auto-fill from external data) |
| Webhooks + API | No | Yes |
| Free tier | Unlimited responses (Google account) | 10 forms, 100 responses/month |
Google Forms is fine for response collection. Formester’s Google Sheets integration pulls ahead when you need pre-fill from a sheet, branded forms, multi-form aggregation, or a dashboard you don’t have to build by hand.
Conclusion
For a small team vote, Google Forms' Multiple Choice Grid plus a Google Sheets tally is enough. For anything where voters expect a real ranking field, no Google sign-in, and a clean summary view, start a free Formester form or grab the Poll Maker template.
Google Forms to Google Sheets FAQ
Answers that mirror the FAQPage JSON-LD on the live page.
Can a Google Form auto-populate a Google Sheet?
Can Google Forms pull data from a Sheet (the reverse direction)?
How do I link an existing Google Sheet to a Google Form?
Can a Google Form update an existing row in a Google Sheet?
How do I unlink a Google Form from a Google Sheet?
How do I send responses from multiple forms into the same Google Sheet?
IMPORTRANGE() or QUERY() to consolidate into a master Sheet, or (b) use Formester or Zapier to route multiple forms to a single tab.Why are my Google Sheet formulas being erased after a form submission?
QUERY() or IMPORTRANGE(). Detailed thread on Stack Exchange.Is there a faster way than the green Sheets icon?
More from Formester on Google Forms and Sheets
Product pages, integrations, and Google Forms guides that pair with this walkthrough.



