3 Ways to Select a Column in Google Sheets
Click the column letter. Click "C" in the header bar and the entire column highlights. Hold Shift and click another letter to extend the selection. Hold Ctrl (Cmd on Mac) to select non-contiguous columns.
Ctrl+Space. From any cell, press Ctrl+Space to select that column. Useful when your cursor is already deep in a dataset and scrolling to the header wastes time.
Name Box. Type a reference directly into the Name Box (top-left, where the cell address displays). Type C:C and press Enter for the full column. Type C2:C to start at row 2 - useful when you want to exclude the header before copying or formatting a range. According to Google's support documentation for named ranges (support.google.com/docs/answer/63175), the Name Box also accepts named range labels, so if you've named your revenue column Rev_Actuals, you can type that directly and jump straight to it.
Reference Types for Column Selection in Google Sheets
This is where the choice actually matters. Google Sheets supports 3 column reference patterns with meaningfully different behavior in formulas:
| Reference Type | Example | Behavior |
|---|---|---|
| Full column | C:C | Rows 1-1,048,576 - includes header row |
| Open-ended (no header) | C2:C | Row 2 to bottom - grows with data automatically |
| Bounded | C2:C5000 | Stops at row 5,000 - silent failure past that point |
Bounded references are the silent failure waiting to happen in any model with live data. If you hardcode C2:C5000 in a revenue bridge and the transaction log grows past row 5,000 two quarters later, your SUMIFS returns wrong numbers with no error. Google's "Limits for Google Sheets" support page (support.google.com/drive/answer/37603) puts the hard cap at 10 million cells per spreadsheet - your formulas break silently well before that if you've used bounded ranges.
Open-ended references (C2:C) solve this. As of June 2026, this syntax works correctly in SUMIFS, COUNTIFS, INDEX/MATCH, and ARRAYFORMULA, and auto-expands as rows are added.
Cross-Tab Column Selection in Multi-Sheet Models
Single-tab references are fine for tutorials. Real models have 8+ linked tabs. Here's what cross-tab column selection looks like in practice:
Revenue contribution by SKU, pulling from a transaction log:
=SUMIFS('Transactions'!C:C, 'Transactions'!B:B, 'P&L'!$A5, 'Transactions'!D:D, ">=" & Assumptions!$B$3)
Monthly EBITDA variance against budget:
=SUMIFS('Actuals'!E:E, 'Actuals'!A:A, ">=" & DATE(Assumptions!$C$2, Assumptions!$D$2, 1), 'Actuals'!A:A, "<" & EDATE(DATE(Assumptions!$C$2, Assumptions!$D$2, 1), 1)) - SUMIFS('Budget'!E:E, 'Budget'!A:A, ">=" & DATE(Assumptions!$C$2, Assumptions!$D$2, 1), 'Budget'!A:A, "<" & EDATE(DATE(Assumptions!$C$2, Assumptions!$D$2, 1), 1))
Revenue growth applied to a projection column:
=ARRAYFORMULA(IF('P&L'!C2:C<>"", 'P&L'!C2:C * (1 + Assumptions!$B$5), ""))
The SUMIFS examples use full-column references (C:C) because the criteria columns contain uniform numeric or text data and the header won't accidentally match a criterion. The ARRAYFORMULA uses C2:C to skip the header. Mixing those two conventions in the same formula is where things go wrong.
The ARRAYFORMULA C:C vs C2:C Gotcha That Breaks Board Packs
This is the one that costs 45 minutes during a board pack build. When you mix C:C (full column, starts at row 1) and C2:C (open-ended, starts at row 2) inside the same ARRAYFORMULA, the arrays are offset by exactly one row. No error fires. The formula returns values - just the wrong ones.
When it truncates vs when it errors
If the mismatch appears in a math operation - say =ARRAYFORMULA(C:C * D2:D) - Sheets calculates row 1 of the output as C1 * D2, row 2 as C2 * D3, and so on. The entire output column shifts down by one row relative to your period labels. In a projection model with 36 monthly periods (rows 2 through 37), this means your December period silently pulls November's growth assumption. Net revenue for a $4.2M base growing at 18% a year will look approximately right at a glance but won't tie to any manually verified period.
If the mismatch lives inside an IF condition - for example =ARRAYFORMULA(IF(C:C<>"", C2:C * Assumptions!$B$5, "")) - the IF evaluates across all rows including row 1, but the true-branch array (C2:C) starts at row 2. Sheets resolves this by filling the header row cell with the value from row 2, then offsetting everything below. The first data value appears in the header row. The last period in your range disappears from the output. Still no error message, still no red cell.
How to diagnose it
The fastest check: add a temporary column with =ARRAYFORMULA(ROW(C2:C)) and compare it to the row numbers your formula is outputting. If the formula is pulling row 3 data into row 2 cells, the row numbers won't match. A second approach is to compare period totals: run SUMIFS on the output column for the first and last periods and spot-check 3 rows manually. If the first period shows $380K against a manually calculated $360K for a month that should be $360K, a one-row shift is the likely cause. The mismatch is exactly one period of revenue - which in a revenue bridge with a -5% variance threshold will sail past review unless you're checking the top and bottom of the column.
The fix in a real projection model
Keep row references consistent throughout every formula on a tab. If data starts at row 2, use C2:C everywhere - in the condition argument, the value argument, and any nested functions. The correct and incorrect versions side by side:
// Wrong - C:C in the IF condition, C2:C in the value argument
=ARRAYFORMULA(IF(C:C<>"", C2:C * Assumptions!$B$5, ""))
// Right - C2:C throughout, consistent row start
=ARRAYFORMULA(IF(C2:C<>"", C2:C * Assumptions!$B$5, ""))
If you're inheriting a model that may already have this bug, press Ctrl+~ to show formulas across the projection tab and scan for any ARRAYFORMULA that mixes unqualified :C references with row-qualified 2:C references. Fix the condition argument first. Then verify that period totals in a SUMIFS summary tie before you close the file. For a board pack with 20+ aggregation formulas referencing a single revenue column, finding this before the CFO review is worth 10 minutes of grep-and-fix.
Selecting Non-Contiguous Columns in Google Sheets
Hold Ctrl and click additional column headers to select non-contiguous columns. This is practical for formatting multiple columns at once or copying scattered columns to a staging tab.
For formula work, non-contiguous column selection doesn't produce a single range reference. =SUM(A:A, C:C) is valid syntax in Google Sheets and will return the combined sum, but most other functions (SUMIFS, INDEX/MATCH, ARRAYFORMULA) expect contiguous ranges. If you need to reference a logical grouping of scattered columns repeatedly, a named range is the cleaner path.
Selecting Columns Programmatically with Apps Script
When your workflow requires programmatic column access - auto-expanding a projection tab when a new fiscal year starts, or clearing and rewriting a column on a schedule - Apps Script exposes column selection through getRange() with column index numbers:
// Select column C (index 3) on the P&L sheet, all populated rows
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('P&L');
var colC = sheet.getRange(1, 3, sheet.getLastRow(), 1);
// getLastRow() bounds the range dynamically - same intent as C2:C in a formula
The getLastRow() call expands the range as rows are added, which is the programmatic equivalent of an open-ended reference. ModelMonkey handles this through natural language: tell it to "apply 18% growth to the revenue column starting at row 2" and it writes the formula or the script without you touching the Apps Script editor.
Try ModelMonkey free for 14 days - it works in both Google Sheets and Excel.