You can measure how a new congressional map reshapes the vote without touching GIS software. A clean precinct table, a crosswalk that maps each precinct to both the old and new districts, and two formulas do most of the work: SUMIFS in Google Sheets and DSUM in Excel. We will also use QUERY for quick pivots and a couple of quality-of-life helpers.

What to assemble

  1. Precinct results
    Minimum columns: precinct_id, county, party, votes (or candidate), turnout.
  2. Crosswalk
    Columns: precinct_id, old_district, new_district.
  3. Lookup table
    Join the crosswalk to results by precinct_id. Every row now knows which district it belonged to before and after.

If you do not have precincts, you can repeat this process with counties or census tracts. Finer units are better.

Core rollups with SUMIFS (Sheets)

Create two district-level tables side by side:

  • Old map totals: sum votes into old_district buckets.
  • New map totals: sum votes into new_district buckets.

Example for Democratic votes under the old map:

=SUMIFS($E:$E, $A:$A, $H2, $C:$C, "DEM")

Where:

  • Column A = old_district
  • Column C = party
  • Column E = votes
  • Cell H2 = the district label you are aggregating

Repeat with "REP" for Republican votes. See the full guide to SUMIFS in Google Sheets.

Excel equivalent with DSUM

In Excel, DSUM can play the same role if you prefer database-style criteria ranges:

=DSUM($A$1:$E$500000, "votes", $G$1:$H$2)
  • Database: your big joined table
  • Field: "votes"
  • Criteria range: a small range where old_district = H2 and party = "DEM"

Need a refresher on criteria blocks and setup? See DSUM in Google Sheets for the database-style approach, which maps closely to Excel usage.

Quick pivots with QUERY (Sheets)

Prefer a single formula that produces a district x party table? Use QUERY:

=QUERY(A:E, "select A, C, sum(E) where C in ('DEM','REP') group by A, C label sum(E) ''", 1)

Here column A is old_district, C is party, E is votes. Swap A for the column that holds new_district to see the post-map picture. Learn more in the QUERY function guide and QUERY with multiple criteria.

What to measure

1) District partisanship shift

For each district, compute the two-party Democratic share before and after:

= DEM_votes / (DEM_votes + REP_votes)

Create ฮ”Share = NewShare - OldShare. This shows how much bluer or redder the district became.

2) Seat outlook under a neutral swing

If you want a crude seat count, mark districts where NewShare โ‰ฅ 0.50 as likely wins. A COUNTIF over those booleans gives a fast tally, or use COUNTIFS for thresholds like โ‰ฅ 0.52 to represent a safety margin. References: COUNTIF vs COUNTIFS in Google Sheets and COUNTIF in Excel.

3) Split counties

Voters notice when counties are split. Count distinct new_district values per county and flag counties with more than one. QUERY can return counts per county, or combine UNIQUE and COUNTIF. See UNIQUE in Google Sheets and count unique in Excel. For filtering by election type or party, use FILTER in Google Sheets or FILTER in Excel.

4) Turnout continuity

Compare total turnout by district before and after to ensure your joins are correct. Large unexplained changes often signal missing precincts rather than real effects.

Practical build order

  1. Join precinct results to the crosswalk.
  2. Validate with small spot checks. If you have official results pages, pull a few with IMPORTXML for comparison: IMPORTXML guide.
  3. Aggregate with SUMIFS or DSUM.
  4. Compare margins, shares, and seat counts.
  5. Visualize changes.

For visuals, a ready starter helps. Try the Create a Google Sheets Dashboard template for district rollups and change charts. If your source data lives in other files, wire it in with IMPORTRANGE.

Sanity checks and QC

  • Error handling: wrap outputs in IFERROR during development so partial ranges do not break your sheets. Browse the functions catalog starting at the Formulas Hub.
  • Cross-sheet data: use IMPORTRANGE with named ranges to keep references readable.
  • Multiple criteria at scale: combine FILTER, COUNTIF(S), and QUERY multiple criteria so your logic stays explicit.
  • Regex checks: use REGEXMATCH to flag malformed precinct IDs or nonstandard party labels.

Optional: Auditing and finance analogies

Election analysis benefits from light accounting discipline. If you want an audit trail of corrections or manual entries, adapt a ledger template as a change log: Free Google Sheets Ledger Template.

If your team wants to track analyst time or software costs tied to map reviews, keep a simple P&L or expense sheet:

Deliverables to save

  • A โ€œBefore vs Afterโ€ table with district, party, votes, share, and ฮ”Share.
  • A one-page dashboard with a bar chart of ฮ”Share and a table of seats above 50 percent, built with the dashboard starter.
  • A QC sheet with three IMPORTXML spot checks against official results.

For deeper walkthroughs, use these SpreadsheetPoint resources:

Who Should Use This?

This method fits analysts who live in spreadsheets and want defensible, repeatable rollups. Journalists, civic watchdogs, and academics can quantify how a map shifts partisan balance without specialized GIS tools. Campaigns and committees can use it for quick triage, identifying which districts gained or lost favorable precincts after a redraw. Finance and operations teams inside election offices can also adapt the workflow, since it mirrors standard reconciliation tasks they already know from ledgers and cost tracking.

Students and researchers will find it useful as a transparent baseline. Every step happens in the open, from the join, to the criteria, to the final sums. That makes it easy to audit the logic, share a copy, and invite replication.

When This Information is Helpful

Use it the moment a proposed or court-ordered map appears. Early pass results help you answer three urgent questions, which districts flipped from lean to toss up, which counties were split, and whether the new shapes create a durable advantage. The same tables also support pre-clearance style reviews, public testimony, and quick memos to stakeholders who need a plain language summary backed by numbers.

The approach stays useful after adoption. During candidate recruitment, it clarifies where a modest fundraising or turnout bump could change the outcome. In budget planning, it helps offices anticipate staffing and polling place needs when district lines move population between jurisdictions. On election night, it provides context for swings that are really map effects rather than voter sentiment.

Limitations of This Analysis

Results depend on the quality of your crosswalk and precinct returns. Split precincts can be messy, partial precinct splits require careful allocation rules, and missing precincts can skew totals. If parties beyond Democrat and Republican matter in your state, a two-party share can hide important shifts. Turnout changes between cycles can also mask or exaggerate a map effect, so treat static vote totals as a starting point, not an answer.

This is an ecological analysis, not a voter-level model. You are summing precincts, not predicting individual behavior, so you cannot make claims about specific groups without additional data. The formulas quantify how lines move past votes, they do not measure candidate quality, incumbency, or local issues. Treat the outputs as a first pass screen, then validate with fresh data, on the ground knowledge, and, when needed, full GIS checks.

Reference index